You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This guide outlines the steps to run the file invalidation tool for Rucio and DBS using Docker image. The tool assists in invalidating specific files, datasets or containers within these systems, to ensure data consistency. Additionally, it has a running mode to check the integrity of files in a given RSE(checksum validation), and invalidate the corrupted replicas. Finally, the tool can also be used to invalidate all files in a given site.
5
+
6
+
## Prerequisites, Folder Structure and tool input
7
+
8
+
### Tool Input
9
+
10
+
The tool has 5 running modes. It's important that your cert and key (decrypted) have enough permissions to invalidate on DBS and declare replicas as corrupted on Rucio, additionally to this it they require the following inputs and parameters:
| Global Invalidation | Invalidate all files from received files, datasets or containers list on Rucio and DBS |`global`|`<filename>.txt`: txt file containing list of files, datasets or containers |`--reason <reason>`: comment for invalidation<br>`--dry-run`(**optional**): Simulate the execution without actually performing the file invalidation<br>`--erase-mode`(**optional**): Erase empty DIDs |`./certs/usercert.pem`<br>`./certs/userkey.pem`<br>`./secrets/dmtops.keytab`|
15
+
| DBS Invalidation | Invalidate all files from received files, datasets or containers list only on DBS |`only-dbs`|`<filename>.txt`: txt file containing list of files, datasets or containers |`--reason <reason>`: comment for invalidation<br>`--dry-run`(**optional**): Simulate the execution without actually performing the file invalidation<br>`--erase-mode`(**optional**): Erase empty DIDs |`./certs/usercert.pem`<br>`./certs/userkey.pem`<br>`./secrets/dmtops.keytab`|
16
+
| Rucio Invalidation | Invalidate all files from received files, datasets or containers list only on Rucio |`only-rucio`|`<filename>.txt`: txt file containing list of files, datasets or containers |`--reason <reason>`: comment for invalidation<br>`--dry-run`(**optional**): Simulate the execution without actually performing the file invalidation<br>`--erase-mode`(**optional**): Erase empty DIDs |`./certs/usercert.pem`<br>`./certs/userkey.pem`<br>`./secrets/dmtops.keytab`|
17
+
| Integrity Validation | Validate integrity of files in the given RSE |`integrity-validation`|`<filename>.csv`: csv file containing list of files and RSE [FILENAME,RSE_EXPRESSION]|`--dry-run`(**optional**): Simulate the execution without actually performing the file invalidation in case of being corrupted |`./certs/usercert.pem`<br>`./certs/userkey.pem`|
18
+
| Site Invalidation | Invalidate in Rucio all files from received list at a specific site |`site-invalidation`|`<filename>.txt`: txt file containing list of files, datasets or containers |`--rse <rse>`: RSE to invalidate at<br>`--reason <reason>`: comment for invalidation<br>`--dry-run`(**optional**): Simulate the execution without actually performing the file invalidation |`./certs/usercert.pem`<br>`./certs/userkey.pem`<br>`./secrets/dmtops.keytab`|
Some files could be heavy and may lead to exceed your lxplus quota. In case of seeing this error move your working directory to `/eos/user/<first_username_letter>/<username>/` directory.
32
+
```Bash
33
+
gfal-copy error: 122 (Disk quota exceeded) - errno reported by local system call Disk quota exceeded
34
+
```
35
+
36
+
### Environment
37
+
38
+
This script is thought to be run on **lxplus** or CERN server with access to `registry.cern.ch` and `/cvmfs/` directory.
39
+
40
+
Setting all together, the working directory structure can change a bit, but it should look like this:
- `-P`: Publishes all exposed ports to the host interfaces.
81
+
- Volumes mounted:
82
+
- `-v "$(pwd)/<input_file>:/input/<input_file>"`: Mounts the containers_inv.txt file from the host to /input/dids.txt within the container.
83
+
- `-v "$(pwd)/certs:/certs"`: Mounts the certs directory from the host to /certs within the container. It must contain the usercert.pem and userkey.pem.
84
+
- `-v "$(pwd)/secrets:/secrets"`: Mounts the secrets directory from the host to /secrets within the container. It must contain the keytab file.
85
+
- `--mount type=bind,source=/cvmfs/,target=/cvmfs/,readonly`: Binds the /cvmfs/ directory on the host as read-only within the container.
86
+
- `--mount type=bind,source=/etc/gfal2.d/,target=/etc/gfal2.d/,readonly`: Binds the /etc/gfal2.d/ directory on the host as read-only within the container. Necessary for the integrity-validation mode.
87
+
- `--mount type=bind,source=/etc/grid-security/certificates/ ,target=/etc/grid-security/certificates/,readonly`: Binds the /etc/grid-security/certificates/ directory on the host as read-only within the container. Necessary for the proxy-init command.
88
+
- `--network host`: Uses the host's network stack within the container.
89
+
- `--rm`: Automatically removes the container when it exits.
90
+
- `registry.cern.ch/cmsrucio/file_invalidation_tool`: Name of the Docker image to run.
- The tool's output will provide details about the invalidation process.
126
+
- User Authorization: Ensure you have the necessary permissions to invalidate on DBS.
127
+
- The provided certificates will be used forDBS invalidation,incase of authorization errors, rucio invalidation will not be executed.
128
+
- Rucio Invalidation will be done using the the dmtops certificate and transfer_ops account since many users will not have permissions to develop this operation.
0 commit comments