Enstore to CTA mapping
Enstore |
CTA |
Comment |
|---|---|---|
|
|
|
|
|
|
volume.storage_groupvolume.file_family |
|
This is needed so that dCache can
communicate to CTA and still use
storage_classfor data steering within dCache.
|
|
|
|
|
|
Sequence in CTA |
|
|
|
if bfid has entry in
file_copies_map |
storage_class.nb_copiesarchive_route.copy_nbAnd extra entries in
tape_file |
The
storage_class.nb_copies is set to 2if
volume.file_family ~ '.*_copy_1'and or each enry in
file_copies_mapan extra entry is made in
file_copies_mapcorresponding to file copy
|
The script enstore2cta.py running with --all options performs the following steps:
creates
disk_instancewith name corresponding to"disk_instance_name"key in configuration fileenstore2cta.yaml;selects distinct names of
volume.storage_group-> creates entries invirtual_organization;selects distinct names of
volume.library-> creates CTAlogical_libraryentries with the same names;selects distinct
volume.storage_group||'.'||volume.file_family||'@cta'-> creates corresponding entries instorage_classtable. Ifvolume.file_family ~ '.*_copy_1thenb_copiesis set to 2;for each vo creates
tape_poolentry;for each storage class and corresponding tape_pool (by vo) creates
archive_routeentry;selects all Enstore volumes, that do not have
"_copy_1"suffix and puts them on the Queue;spawns number of processes (default - number of cores), each process takes volume to process from Queue;
each process:
inserts volume into
tapetable;selects all active direct files, together with all their copies (if there are copies)
from the
file,volume,file_copies_mapjoin and loops over them inserting entries intoarchive_fileandtape_file, for each copy, it also makes an entry intotapefor copy volume (does it only once for each new copy volume) andtape_filefor file copies;
calculates CTA file location and inserts in into Chimera
t_locationinfotable;
when Queue drops to 0, the processes shutdown and a single bootstrap query is run to updtate copy counts on all entries in
tapetable.