In order to enable the SRM
SpaceManager
you need to add
the spacemanager
service to your layout file
[<dCacheDomain>] [<dCacheDomain>/spacemanager]
and add the following definition in the file
/etc/dcache/dcache.conf
dcache.enable.space-reservation=true
Unless you have reason not to, we recommend placing the
spacemanager
service in the same domain as the
poolmanager
service.
Each SRM
space reservation is made against the total
available disk space of a particular link group. If
dCache is configured correctly each byte of disk space,
that can be reserved, belongs to one and only one link
group. See the section called “SpaceManager
configuration” for a detailed
description.
Important
Make sure that no pool belongs to more than one pool group, no pool group belongs to more than one link and no link belongs to more than one link group.
If a space reservation is specified during upload, the file will be stored in it.
Files written into a space made within a particular link group will end up on one of the pools belonging to this link group. The difference between the link group’s free space and the sum of all its space reservation’s unused space is the available space of the link group. The available space of a link group is the space that can be allocated for new space reservations.
The total space in dCache that can be reserved is the sum of the available spaces of all link groups. Note however that a space reservation can never span more than a single link group.
dCache can perform implicit space reservations for
non-SRM
transfers, SRM
Version 1 transfers and
for SRM
Version 2.2 data transfers that are not given
the space token explicitly. The parameter that enables
this behavior is
srm.enable.space-reservation.implicit
, which
is described in the section called “SRM
configuration for experts”.
If no implicit space reservation can be made, the transfer
will fail.
Implicit space reservation means that the srm
will create
a space reservation for a single upload while negotiating
the transfer parameters with the client. The space reservation
will be created in a link group for which the user is
authorized to create space reservations, which has enough
available space, and which is able to hold the type of
file being uploaded. The space reservation will be short lived.
Once it expires, it will be released and the file it held
will live on outside any space reservation, but still within
the link group to which it was uploaded. Implicit space
reservations are thus a technical means to upload files to
link groups without using explicit space reservations.
The reason dCache cannot just allow the file to be uploaded to the link group without any space reservation at all is, that we have to guarantee, that space already allocated for other reservations isn’t used by the file being uploaded. The best way to guarantee that there is enough space for the file is to make a space reservation to which to upload it.
In case of SRM
version 1.1 data transfers, where the
access latency and retention policy cannot be specified,
and in case of SRM
V2.2 clients, when the access latency
and retention policy are not specified, default values
will be used. First SRM
will attempt to use the values
of access latency and retention policy tags from the directory
to which a file is being written. If the tags are not present,
then the access latency and retention policy will be set on basis of
pnfsmanager
defaults controlled by
pnfsmanager.default-retention-policy
and
pnfsmanager.default-access-latency
variables in
/etc/dcache/dcache.conf
.
You can check if the AccessLatency
and
RetentionPolicy
tags are present by
using the following command:
[root] #
/usr/bin/chimera lstag /path/to/directory
Total: numberOfTags tag1 tag2 .. AccessLatency RetentionPolicy
If the output contains the lines
AccessLatency
and
RetentionPolicy
then the tags are
already present and you can get the actual values of these
tags by executing the following commands, which are shown
together with example outputs:
Example:
[root] #
/usr/bin/chimera readtag /data/experiment-a AccessLatency
ONLINE[root] #
/usr/bin/chimera readtag /data/experiment-a RetentionPolicy
CUSTODIAL
The valid AccessLatency
values are
ONLINE
and NEARLINE
,
valid RetentionPolicy
values are
REPLICA
and
CUSTODIAL
.
To create/change the values of the tags, please execute :
[root] #
/usr/bin/chimera writetag /path/to/directory AccessLatency "<New AccessLatency>"
[root] #
/usr/bin/chimera writetag /path/to/directory RetentionPolicy "<New RetentionPolicy>"
Note
Some clients also have default values, which are used when not explicitly specified by the user. In this case server side defaults will have no effect.
Note
If the implicit space reservation is not enabled, pools in link groups will be excluded from consideration and only the remaining pools will be considered for storing the incoming data, and classical pool selection mechanism will be used.