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.
Warning
Please note that the following policy options should not be touched:
- getcrcfromhsm
this option is tailored to DESY’s HSM and won’t work anywhere else
- onread
reserved for future use, no checksum handling on read transfers for now.
- frequently
reserved for future use (recalculating checksums for files residing in the pool on a regular basis).
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