release notes | Book: 1.9.5, 1.9.12 (opt, FHS), 2.11 (FHS), 2.12 (FHS), 2.13 (FHS), 2.14 (FHS), | Wiki | Q&A black_bg
Web: Multi-page, Single page | PDF: A4-size, Letter-size | eBook: epub black_bg

Enabling checksums

[return to top]

How to enable checksums

The following section describes how to enable checksum calculation on write transfers with maximum security. Two checksums will be computed on different points for each transfer: on the fly during file arrival and once the file was completely written to disk . Both checksums are compared with each other and (if available) with another checksum sent by the client. If, and only if, all of them match, the transfer is considered to be successful and the checksum is stored in pnfs.

To enable checksumming (independent from access protocol type), make sure the following option appears in the pool.batch-file:

define context startPools endDefine
  create diskCacheV111.pools.MultiProtocolPool2 ${0} \
  -calculate-transfer-crc \

Additionally, the checksum policy must be customized accordingly. This is done by modifying the pool-setup-file (found at <poolPath>/pool/setup) such that it contains the following line:

csm set policy -onwrite=on -ontransfer=on -enforcecrc=on

Now a restart of the pool should activate all changes. Please repeat the upper procedure on all write-pools you want to have checksum-enabled.


Please note that the following policy options should not be touched:


this option is tailored to DESY’s HSM and won’t work anywhere else


reserved for future use, no checksum handling on read transfers for now.


reserved for future use (recalculating checksums for files residing in the pool on a regular basis).

[return to top]

The default pool behavior

When setting up a pool from scratch, the default policy is to calculate only the checksum on the file written to disk, but not on the fly upon arrival. In case there is a client checksum available (always true for dCap), they get compared and must match. Otherwise, the checksum computed on the written disk file will be stored in pnfs instead.

To reset the default behavior, set the following line in the pool-setup-file and restart the pool:

csm set policy -onwrite=on -enforcecrc=on