Storage resource broker
1 / 60

Storage Resource Broker - PowerPoint PPT Presentation

  • Uploaded on

Storage Resource Broker. USER INTERFACE George Kremenek C language API S-commands Unix, Win NT, W2000 Java GUI Win32 GUI WEB. Types of Interface. Programmatic API High-level API Low-level API SRB Manager API Command Level Interface - Scommands

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
Download Presentation

PowerPoint Slideshow about 'Storage Resource Broker' - duke

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Storage resource broker

Storage Resource Broker


George Kremenek

Types of interface

C language API

S-commands Unix, Win NT, W2000

Java GUI

Win32 GUI


Types of Interface

Srb api

Programmatic API

High-level API

Low-level API

SRB Manager API

Command Level Interface - Scommands

Graphical User Interface - srbBrowser

Web Utilities


Storage resource broker

SRB API Interface



SRB Master

High low level api

Low-level API

talks to resource drivers

no registration of data sets in MCAT

no authentication through MCAT

User provides all information

High-level API

Uses low-level API to access resources

Registers data management information in MCAT

Uses MCAT for authentication and meta information

Uses MCAT for resource and data discovery

Access/store data in remote SRB

High & Low-level API

Low level api

srbFileOpen(conn, storType, host, fileName, mode)

srbFileCreate(conn, storType, host, fileName, mode)

srbFileClose(conn, fd)

srbFileUnlink(conn, storType, host, fileName)

srbFileRead(conn, fd, buffer, length)

srbFileWrite(conn, fd, buffer, length)

srbFileSeek(conn, fd, offset, whence)

srbFileSync(conn, fd)

srbFileStat(conn, storType, host, fileName, statBuf)

srbFileMkdir(conn, storType, host, dirName, mode)

srbFileRmdir(conn, storType, host, dirName, mode)

srbFileChmod(conn, storType, host, fileName, mode)

Low-level API

Low level api contd

srbDbLobjOpen(conn, storType, resourceLoc, positionName, mode)

srbDbLobjCreate(conn, storType, resourceLoc, positionName, mode)

srbDbLobjClose(conn, dd)

srbDbLobjUnlink(conn, storType, host, fileName)

srbDbLobjRead(conn, dd, buffer, length)

srbDbLobjWrite(conn, dd, buffer, length)

srbDbLobjSeek(conn, dd, offset, whence)

Low-Level API (contd …)

Storage resource broker

srbBrowser - A SRB Graphical Interface mode)

  • A java GUI

  • Interface with SRB servers using the client API library.

  • Performs most SRB operations - cp, replicate, import, export, metadata query, etc.


Java GUI

Obtain user’s metadata information

via SRB.

Invoke SRB


SRB Agent


Proxy operation

Storage resource broker

SRB Command Line Interface mode)

Environment File


SRB “shell” commands: Sls, Scp, Scat, Sput, Sget, ...


SRB Agent

Proxy operation

High level api

srbObjOpen(conn, objChar, mode, collectionName) mode)

srbObjCreate(conn, objName, objType, resourceName, collectionName, pathName, size)

srbObjClose(conn, od)

srbObjUnlink(conn, objChar, collectionName)

srbObjRead(conn, od, buffer, length)

srbObjWrite(conn, od, buffer, length)

srbObjSeek(conn, od, offset, whence)

srbObjMove(conn, objChar, collectionName, newResourceName, newPathName)

srbObjReplicate(conn, objChar, collectionName, newResourceName, newPathName)

srbObjProxyOpr(conn, Operation, sourceDesc, targetDesc)

High-level API

High level api contd

srbGetDatasetInfo(conn, objChar, mode)collectionName, resultStruct, requiredNumber)

srbGetMoreInfo(resDesc, resultStruct, requiredNumber)

srbGetDataDirInfo(conn, conditionList, selectList, resultStruct)

srbModifyDataset(conn, objId, collectionName, newValue1, newValue2, modifyType, resourceName, pathName)

srbCreateCollect(conn, parentCollectionName, childCollectionName)

srbListCollect(conn, CollectionName, flag, resultStruct)

srbModifyCollect(conn, CollectionName, newValue1, newValue2, newValue2, modifyType)

srbModifyUser(conn, newValue1, newValue2, modifyType)

srbSetAuditTrail(conn, setValue)

High-Level API (contd …)

System manager api

srbChkMdasAuth(conn, userName, userAuth, domain) mode)

srbChkMdasSysAuth(conn, userName, userAuth, domain)

srbRegisterUser(conn, userName, domain, password, userType, userAddress, userPhone, userEmail)

srbRegisterUserGrp(conn, userGrpName, userGrpPassword, userGrpType, userGrpAddress, userGrpPhone, userGrpEmail)

System Manager API

Sinit v sexit

Sinit initializes client environment mode)

Sexit ends a SRB session started with Sinit

A client may communication with servers with different "release version", but they must have the same "API version”

See ~/.srb/.MdasEnv and environment variables

Sinit [-v], Sexit

Srb mdasenv file

mdasCollectionHome '/home/kremenek.sdsc' mode)

mdasDomainHome 'sdsc'

srbUser 'kremenek'

srbHost ’'

~/.srb/.MdasEnv file

Mdasenv mdasauth

setenv srbPort '5566' mode)

# valid schemes are : 'PASSWD_AUTH', 'SEA_AUTH', 'SEA_ENCRYPT',



defaultResource 'dl1-unix-sdsc’

.MdasEnv, .MdasAuth

Scd collection

changes the working SRB collection mode)

without a collection the mdasCollectionHome value in the

~/.srb/.MdasEnv file will become the new working collection.

Scd [collection]

Sannotate switches

{-w position annotation dataName} mode)

{-u timestamp newAnnotation dataName}

{[-R] [-t timestamp] [-p position] [-U userName@domainName] [-Y n] [-L n] [-T dataType] dataName|collectionName}

facility for annotations on data objects

Sannotate {switches}

Sappend switches

{ localFileName srbTarget} mode)

{-i srbTarget}

{-s srbObj srbTarget}

appends a local file, stdin, SRB object

to an existing SRB object

Sappend {switches}

Scat switches list

{[-C n] [-T ticketFile | -t ticket] [-A condition] srbObj …}

reads each srbObj from SRB to stdout

-A option, only srbObj which conform to the condition are chosen

If using a ticket, one need not give a srbObj name

Scat {switches + list}

Schmod switches list

{[-c] [-a] [-p] [-r] [-d|c] w|a|r|n newUserName domainName collection| srbObj …}

grants/changes access permits for the operand collection or srbObj ... for newUserName in domainName

granted new permission for all replica

Schmod {switches+list}

Scp switches list

{[-n n ] [-fpra] [-c container] [-S newResourceName] [-P newPathName]

srcObj destObj

srcObj ... target collection

-r source collection... target collection }

-p prompts, -f force, -a force all replica, -r copy recursively, -n replica number

Scp {switches + list}

Serror number

describes SRB errors newPathName]

takes an error number generated by SRB/MCAT system and displays a text human readable message relating to the error

Serror number

Sget switches list

{[-n n] [-pfr] [-A condition] srbObj|Collection ... localFile|localDirectory}

exports one or more objects from SRB space into local file system

-A option, only srbObj which conform to the condition are chosen.

Sget {switches+list}

Sgetcoll switches list

{[-ahc] [-I] [-W | -U userName] [-Y number] [-L number] [-A condition] [collName]{

display information about SRB data objects

-a display permissions, -W all users, -c container, -U for usr/group,-I in all collections, -Y output format, -A condition option "<Attr> <CompOp> <Value>"

SgetColl {switches+list}

Sgetd switches list

{[-phPrReasdDc] [-I] [-W | -U userName] [-Y number] [-L number] [-P dataType] [-A condition] [dataName]}

display information about SRB data objects

-p basic parameters, -r storage information, -a permissions, -d audit info., -c collection info., -W for all users, -Y [number] format

SgetD {switches+list}

Sgetr switches list

{[-lhdDp] [-L number] [-Y number] [-T resourcTy pe] [resourceName]}

display information about SRB resource(s)

-l display comprehensive list, -d list objects, -D with details, -p for physical resources only,-T resource type list for the given type, -Y [number] controls display format

SgetR {switches+list}

Sgett switches list

{[-h] [-u] [-v] [-L n] [-Y n] [ -F fileName | -T ticket | -D dataName | -C collection | -U [-c] userName domainName ]}

display information about SRB tickets for a given ticket, dataName or collection

-u ticket-users perspective,-F file for the ticket, -T ticket, -D dataName, -C collection, -U userName

SgetT {switches+list}

Sgetu switches list

{[-pPhdatg] [-L number] [-Y number] [-T userType] [userName@domainName]}

displays information about a group or user userName@domainName

-p user/group name, -a access permissions, -d domain(s), -t audit info. -g group(s), -c collection access, -T info. for user type

SgetU {switches+list}

Sgetappend s l

{[-C n ] [-p] [-A condition] srbObj ... localFile} [userName@domainName]}

exports object(s) into local file system

-p prompts before operation, -C replica number, -A condition list (‘&’ separated) the form "<Attr> <CompOp> <Value>”

Sgetappend {s+l}

Sls s l

{[-hl] [-L number] [-r|-f] [-A condition] [collection|srbObj ...]}

display and properties of objects

-r recursively for sub-collections, -f force argument to be interpreted as a collection.-l long format, giving owner, replica #, physical resource, siz, time of creation

Sls {s+l}

Slscont s l

{[-a] [-l]} or {container} [collection|srbObj ...]}

display metadata of SRB containers

“Slscont” displays all containers

“Slscont XYZ” all inContainer objects will be listed

-l metadata in long format,-a accessible by the user rather than owned by the user

Slscont {s+l}

Smeta s l

modifies metadata information about SRB data objects [collection|srbObj ...]}

{-i -I metaAttrNameEqValue [ [-I metaAttrNameEqValue] ... ] dataName}

{-u metadataIndex metaAttrNameEqValue dataName}

{-d metadataIndex dataName}

{-c -i -I metaAttrNameEqValue [ [-I metaAttrNameEqValue] ... ] collectionName}

{-c -u metadataIndex metaAttrNameEqValue collectionName}

Smeta {s+l}

Smeta cont

{-c -d metadataIndex collectionName} [collection|srbObj ...]}

{[-R] [-I metaAttrNameOrCondition [-I metaAttrNameOrCondition] ... ] [-Y n] [-L n] [-T dataType] dataName|collectionName}

{-c [-R] [-I metaAttrNameOrCondition [-I metaAttrNameOrCondition] ...] [-Y n] [-L n] [-T dataType] [collectionName]}

Smeta cont.

Smeta cont1

Smeta provides facility for inserting,deleting, updating and accessing meta-data on data object dataName or collection collectionName

Currently, we support 10 string attributes and two integer attributes

'all’ permission for modify, 'read’ for view

Smeta cont.

Smkcont s l

{[-S resourceName] [-D dataType] [-s containerSize] container}

creates a new SRB container

“container" may be an absolute path or a relative path (will be created in the user's container collection path - /container/userName.domainName)

Smkcont {s+l}

Smkdir s l

{[-N] collection} container}

creates a new SRB collection is a format <path_name>/<new_collection_name>.

-N option overrides the default association with container of its parent collection

Smkdir {s+l}

Smodcoll s l

{[-dh] -c value collName} container}

modifies information about collections in collName

-h help, -d delete, -c container_name is updated

SmodColl {s+l}

Smodd s l

{-s|-t|-c newValue dataName} container}

modifies metadata information about SRB data objects

-s change size

-t change type

-c insert comments

SmodD {s+l}

Smv s l

{srbObj targetObj} container}

{collection newcollection}

{srbObj ... Collection}

Smv {s+l}


changes password of current user container}

changes the current user's password both in the Meta Catalog as well as in the Client Authorization Environment file

password change persists across sessions with SRB


Spcommand s l

{[-h] [-H hostAddr] command} container}

proxy command operation. Request a remote SRB server to execute arbitrary commands on behalf of client on the “hostAddr” (or “srbHost” in the .MdasEnv)

the proxy commands should be installed in the /usr/local/srb/bin/commands directory

Spcommand {s+l}

Sphymove s l

{[-C n] [-p] [-P newpathName] srbObj ... newresourceName} container}

moves one or more SRB objects to the newresourceName at new path newpathName (if given ). The old copy is deleted and the MCAT catalog is also updated

Sphymove {s+l}

Sput s l

{[-fpra] [-c container] [-D dataType] [-S resourceName] [-P pathName] localFileName|localDirectory ... TargetName}

imports one or more local files and/or directories

-p prompts, -f force, -a force all replica,-r recursively, -c container

Sput {s+l}

Sregister s l

{[-p] [-D dataType] [-S size] [-R resourceName] RegisteringObjectPath ... TargetName}

{-c [-p] [-D dataType] [-S size] [-R resourceName] RegisteringObjectPath srbObjectName}

registers one or more files into SRB space

Sregister {s+l}

Sreplcont s l

{-S resource container} RegisteringObjectPath ... TargetName}

replicate a container copy to a specific resource

For containers that have multiple "permanent" and "cache" copies, this is a way to put a copy of the container on a specific resource

Sreplcont {s+l}

Sreplicate s l

{-n replicaNum] [-pr] [-S resourceName] [-P pathName] srbObj|collection …}

makes one more copy of srbObj or collection

-p prompts, -r recursively, -n replicaNum, -P full or relative newpathName to move the object, -S new resourcename

Sreplicate {s+l}

Srm s l

{[-p] [-A condition] srbObj …} srbObj|collection …}

{[-p] [-A condition] -r srbObj|collection …}

remove files from SRB space

-p prompts, -r recursively (the collection will be emptied of datasets and removed), -A condition options(“"<Attr><CompOp> <Value>””)

Srm {s+l}

Srmcont s l

{[-f] container} srbObj|collection …}

remove an empty existing SRB container

-f Force the removal of all inContainer objects stored in this containe before removing the container

Srmcont {s+l}

Srmdir collection

deletes an existing SRB collection srbObj|collection …}

Srmdir collection

Srmticket s l

{ [-F fileName] | ticket } srbObj|collection …}

removes a previously issued ticket. One has to own the ticket to remove it

-F fileName specifies the file in which the ticket is stored

Srmticket {s+l}

Ssyncont s l

{[-d] [-p] container} srbObj|collection …}

synchronize the "permanent" copies of the container with the "cache" copy.

when an inContainer object is created or opened for I/O, all I/O are done only to the "cache" copy

-d delete cache copy, -p to primary only

Ssyncont {s+l}

Stcat s l

{[-T ticketFile | -t ticket] [-A condition] hostName srbObj …}

display files read from SRB space for a ticketuser

-T option to give a filename containing a ticket, -t option for giving a ticket directly, -A condition "<Attr> <CompOp> <Value>"

Stcat {s+l}

Sticket s l

{ [-F fileName] [-B beginTime] [-E endTime] [-N AccessCount] { -D dataName | -C collName | -R collName } user@domain …}

issue tickets for SRB objects and collections

-D option for asingle data object, -C option for SRB collection, -R option recursively

Sticket {s+l}

Stls s l

{[-v] [-L number] [-Y number] { [-F fileName] | ticket } [-A condition] hostName}

display objects and sub-collections in SRB collection for a given ticket

-v verbose, -F fileName specifies the file in which the ticket is stored

Stls {s+l}

Stoken s l

{[-L number] [-Y number] typeName} condition] hostName}

isplays information about metadata type typeName

typeName can be one of : ResourceType, DataType (default), UserType, Domain, Action, AccessConstraint

Stoken {s+l}

SRBIO condition] hostName}


Open condition] hostName}























Web utilities

Sgetw - copies a SRBobject into server site condition] hostName}

Sputw - copies local file in SRBspace

Scatw - displays SRBobject on browser (handles types)

Slsw - displays information of SRBobjects

Web Utilities