Use case: verify manually that integrity verifier job wasn't a transient I/O failure.
Current manual process
Take CRC32 (IEEE) for the blob:
$ cd /mnt/varasto/<volume>/<volume>-varasto
$ ref="04c59c83f..."
$ fsPath=$(sto debug localfsblobstore-path "$ref") && python3 -c "import zlib; print(f'{zlib.crc32(open('.$fsPath','rb').read()) & 0xffffffff:08x}')" && echo "refBase64: " $(echo -n "$ref" | xxd -r -p | base64 -w0)
5c27176e
refBase64: BMWcg/a95lup...
Compare this to the checksum from database:
$ grep BMWcg/a95lup... varasto-test.export
{"Ref":"BMWcg/a95lup...","EncryptionKeyID":"Atg9bvskec4","Volumes":[7,19],"VolumesPendingReplication":[],"Referenced":true,"IsCompressed":false,"Size":4194304,"SizeOnDisk":4194304,"Crc32":"XCcXbg=="}
$ echo -n XCcXbg==|base64 -d | xxd -p
5c27176e
We see that crc32 matches with what's in the database.
Automation
TODO: plan
Use case: verify manually that integrity verifier job wasn't a transient I/O failure.
Current manual process
Take CRC32 (IEEE) for the blob:
Compare this to the checksum from database:
We see that crc32 matches with what's in the database.
Automation
TODO: plan