Storage classes, copy_nb

Hi there,

Is it intentional that files on the same tape pool are flushed on the same tape regardless of having a different storage class/vo or is there sth wrong with the set up? e.g

devdb13=# select * from get_tape_files('J00790');
 archive_id | copy_nb |  vol   | fseq | block_id | instance |    size    | creation_time |  checksum  |  storage_class  | tape_pool
------------+---------+--------+------+----------+----------+------------+---------------+------------+-----------------+-----------
         64 |       1 | J00790 |   10 |    12376 | eosdev   | 1073741824 |    1635246732 | 3224174593 | ctaStorageClass | ctatest
        105 |       1 | J00790 |   22 |    32971 | eosdev   | 1073741824 |    1635254510 | 3224174593 | ctaStorageClass | ctatest
        106 |       1 | J00790 |   26 |    37106 | eosdev   | 1073741824 |    1635254751 | 3224174593 | ctaStorageClass | ctatest
        107 |       1 | J00790 |   27 |    41211 | eosdev   | 1073741824 |    1635254751 | 3224174593 | ctaStorageClass | ctatest
        108 |       1 | J00790 |   28 |    45316 | eosdev   | 1073741824 |    1635254751 | 3224174593 | ctaStorageClass | ctatest
        162 |       2 | J00790 |   37 |    49501 | eosdev   | 1073741824 |    1637170655 | 3224174593 | osmtest         | ctatest
        182 |       2 | J00790 |   40 |    53626 | eosdev   |  251694756 |    1637173934 | 2253734414 | osmtest         | ctatest
        201 |       2 | J00790 |   41 |    54596 | eosdev   |  251694756 |    1637174822 | 2253734414 | osmtest         | ctatest

and just for clarification, could someone kindly explain what exactly the copynb defined in the archiveroute is and the difference between that and numberofcopies defined on the storageclass.
As seen on the query above for example, both storage classes are set up with a different value for copy_nb - so in this case what does it imply?

thank you,
mwai

Hi Mwai,

Yes, this is the expected behaviour, if you want to split data by storage class you should map each to a separate tape pool via an archive route.

To set up a dual replica pool you would define numberofcopies in your storage class (as you mention). You then need to set up two archive routes, one for each replica, and these are differentiated by copyNumber, which is just a label.

The output of cta-admin ar ls could look like this

{
  "storageClass": "atlas_dual",
  "copyNumber": 1,
  "tapepool": "r_atlas_1",
   ...
}
{
  "storageClass": "atlas_dual",
  "copyNumber": 2,
  "tapepool": "r_atlas_2",
   ...
}

Oliver.

1 Like