[glue-wg] Some thoughts on storage objects

Maarten.Litmaath at cern.ch Maarten.Litmaath at cern.ch
Sun Mar 30 18:48:16 CDT 2008


Hi Paul,
various comments inline.

> [...]
> 
> BTW, I'm implicitly assuming that StorageEnvironment.RetentionPolicy can be 
> multivalued.  If this isn't true and we have the use-case of the same 
> physical disks being part of, for example, both Custodial and Output storage, 
> then it starts to get complicated.

I think it is OK if the RetentionPolicy _can_ be multivalued, but in WLCG
it would be published single-valued, viz. along with an AccessLatency to
describe the Storage Class that is implemented by the Environment.

> [...]
> 
> StorageEnvironment:
> 
>  A StorageEnvironment is a collection of one or more StorageCapacities
>  with a set of associated (enforced) storage management policies.
>  Examples of these policies are Type (Volatile, Durable, Permanent)
>  and RetentionPolicy (Custodial, Output, Replica).

Note that we should get rid of the obsolete, confusing Type and Lifetime
attributes in favor of the ExpirationMode copied from SRM v3.

> [...]
> 
> StorageResource:
> 
>  A StorageResource is an aggregation of one or more
>  StorageEnvironments and describes the hardware that a particular
>  software instance has under its control.

See my reply to Sergio: we may rather want to allow an Environment
to be linked to multiple Resources, e.g. a disk and a tape Resource,
such that we can publish the back-end implementation name and version
for each of them.

>  A StorageResource must have at least one StorageEnvironment,
>  otherwise there wouldn't be much point publishing information
>  about it. [This isn't a strict requirement, but I think it makes sense
>  to include it.]

OK.

>  All StorageEnvironments must be part of precisely one
>  StorageResource.  SoftwareEnvironments may not be shared between
>  StorageResources.  This means that all physics hardware must
>  be published under precisely one StorageResource.

See my comment above.

> StorageShare:
> 
>  A StorageShare is a logical partitioning of one or more
>  StorageEnvironments.
> 
>  Perhaps the simplest example of a StorageShare is one
>  associated with a single StorageEnvironment with a single
>  associated StorageCapacity, and that represents all
>  the available storage of that StorageCapacity.  An example of
>  a storage that could be represented by this trivial
>  StorageShare is the classic-SE.
> 
>  StorageSpaces must have one or more associated StorageCapacities.
|         ^^^^^^
|         Shares

>  These StorageCapacities provide a complete description of the different
>  homogeneous underlying technologies that are available under the space.
> 
>  In general, the number of StorageCapacities associated with a
>  StorageShare is the sum of the number of StorageCapacities associated
>  with each of the StorageShare's associated StorageEnvironments.
> 
>  Following from this, there is an implicit association between the
>  StorageCapacity associated with a StorageShare and the corresponding
>  StorageCapacity associated with a StorageEnvironment.  Intuitively, this
>  association is from the fact that the two StorageCapacities share the
>  same underlying physical storage.  This implicit association is not
>  recorded in GLUE.
> 
>  StorageSpaces may overlap.  Specifically, given a StorageCapacity
|         ^^^^^^
|         Shares

>  (SC_E) that is associated with some StorageEnvironment and which has
>  totalSize TS_E, let the sum of the totalSize attributes for all
|                  ^^^
|                  let TS_S be .....

>  StorageCapacities that are:
> 	1. associated with a StorageSpace, and
|                                   ^^^^^
|                                   Share

> 	2. that are implicitly associated with SC_E
>  be TS_S.  If the StorageSpaces are covering then TS_S = TS_E.  If
|  ^^^^^^^                 ^^^^^^
|  XXXXXXX                 Shares

>  the StorageSpaces overlap, then TS_S > TS_E.
|             ^^^^^^
|             Shares

>   [sorry, I couldn't easily describe this with just words without it sounding
>   awful!]
> 
>  StorageSpaces may be incomplete.  Following the same definitions
|         ^^^^^^
|         Shares

>  as above, this is when TS_S < TS_E.  Intuitively, this happens if
>  the site-admin has not yet assigned all available storage.
> 
>  End-users within a UserDomain may wish to store or retrieve files.  The
>  StorageShares provides a complete, abstract description of the
>  underlying storage at their disposal.  No member of a UserDomain may
>  interact with the physical hardware except through a StorageShare.
> 
>  The partitioning is persistent through file creation and deletion.  The
>  totalSize attributes (of a StorageSpace's associated StorageCapacties)
|                                    ^^^^^
|                                    Share

>  do not change as a result of file creation or deletion.  [Does GLUE need to
>  stipulate this, or should we leave this vague?]

Why mention it at all?  You do not make statements about the behavior
of the other sizes, and I think there is no need to go there...

>  A single StorageShare may allow multiple UserDomains to access
>  storage; if so, the StorageShare is "shared" between the different
>  UserDomains.  Such a shared StorageShare is typical if a site
>  provides storage described by the trivial StorageShare (one that
>  covers a complete StorageEnvironment) whilst supporting multiple
>  UserDomains.
> 
> [...]
> 
> StorageAccessProtocol:
> 
>  A StorageAccessProtocol describes how data may be sent or received.
>  The presence of a StorageAccessProtocol indicates that data may be
>  fetched or stored using this interface.
> 
>  Access to the interface may be localised; that is, only available
>  from certain computers.  It may also be restricted to specified
>  UserDomains.  However, neither policy restrictions are published in
>  GLUE.  On observing a StorageAccessProcol, one may deduce only that
>  it is valid for at least one user of one supported UserDomain.

..... from at least one computer.

Thanks,
	Maarten



More information about the glue-wg mailing list