Daemon rucio-reaper

The Reaper daemon is responsible for replica deletion. It deletes them by checking if there are replicas that are not locked and have a tombstone to indicate that they can be deleted.

usage: rucio-reaper [-h] [--run-once] [--total-workers TOTAL_WORKERS] [--threads-per-worker THREADS_PER_WORKER] [--chunk-size CHUNK_SIZE] [--scheme SCHEME]
                    [--greedy] [--exclude-rses EXCLUDE_RSES] [--include-rses INCLUDE_RSES] [--rses RSES [RSES ...]] [--vos VOS [VOS ...]]
                    [--delay-seconds DELAY_SECONDS]

Named Arguments

--run-once

One iteration only

Default: False

--total-workers

Total number of workers per process

Default: 1

--threads-per-worker

Total number of threads created by each worker

--chunk-size

Chunk size

Default: 10

--scheme

Force the reaper to use a particular protocol, e.g., mock.

--greedy

Greedy mode

Default: False

--exclude-rses

RSEs expression to exclude RSEs

--include-rses

RSEs expression to include RSEs

--rses

List of RSEs

--vos

Optional list of VOs to consider. Only used in multi-VO mode.

--delay-seconds

Delay to retry failed deletion

Default: 3600

Upload a file and prepare the rules and replicas for deletion by using the judge-cleaner daemon:

$ rucio upload --rse MOCK --scope mock --name file filename.txt
$ rucio add-rule mock:file 1 MOCK2 --lifetime 1
$ rucio-judge-cleaner --run-once

Check if the replica was created:

$ rucio list-file-replica mock:file
+---------+--------+------------+-----------+---------------------------------------------------------+
| SCOPE   | NAME   | FILESIZE   | ADLER32   | RSE: REPLICA                                            |
|---------+--------+------------+-----------+---------------------------------------------------------|
| mock    | file   | 1.542 kB   | 1268ee71  | MOCK: file://localhost:0/tmp/rucio_rse/mock/15/58/file  |
+---------+--------+------------+-----------+---------------------------------------------------------+

Run the daemon:

$ rucio-reaper --run-once

Check if the replica exists:

$ rucio list-file-replica mock:file
+---------+--------+------------+-----------+---------------------------------------------------------+
| SCOPE   | NAME   | FILESIZE   | ADLER32   | RSE: REPLICA                                            |
|---------+--------+------------+-----------+---------------------------------------------------------|
+---------+--------+------------+-----------+---------------------------------------------------------+

When run in multi-VO mode, by default the Reaper will run on RSEs from all VOs:

$ rucio-reaper --run-once
2020-07-28 15:15:14,110 5461    INFO    main: starting processes
2020-07-28 15:15:14,151 5461    INFO    Reaper: This instance will work on VOs: def, abc, xyz, 123

By using the --vos argument only the VO or VOs specified will be affected by the Reaper:

$ rucio-reaper --run-once --vos abc xyz
2020-07-28 15:16:36,022 5474    INFO    main: starting processes
2020-07-28 15:16:36,066 5474    INFO    Reaper: This instance will work on VOs: abc, xyz

Note that attempting the use the --vos argument when in single-VO mode will have no affect:

$ rucio-reaper --run-once --vos abc xyz
2020-07-28 15:21:33,348 5488    INFO    main: starting processes
2020-07-28 15:21:33,349 5488    WARNING Ignoring argument vos, this is only applicable in a multi-VO setup.