TSM - Checksum Feature FAQ

1. When do we create the checksum of the file on tape?

 

Once the store occurs, if we do not get back a SCSI error or check condition, it is stored in the filecompX table.

We generate a checksum for each 'segment' of the file, so we are really generating the checksum twice - once for each copy (since they could each be written at different times (or even on different libraries, etc).

Each copy of the checksum is stored according to the file_key+segment+copy+version.

 

 

Example:

 

You can view the checksum for each copy, and each segment via "fsfileinfo -c <filename>"

But if it had 2 segments for 2 copies it would look like the following, with 2 entries for each copy (one entry each

for each copy and each segment of the most current version).

 

# fsfileinfo -c /stornext/snfs1/pc1/A_Big_File

-------------------------------------------------------------------------------

File Information Report                       Tue Jun 26 11:22:04 2012

Filename:    /stornext/snfs1/pc1/A_Big_File

Stored path: <same>

-------------------------------------------------------------------------------

      Last Modification: 02-may-2012 10:36:39

      Owner:             root               Location:        DISK AND TAPE

      Group:             root               Existing Copies: 1

      Access:            664                Target Copies:   1

      Target Stub:       0 (KB)             Existing Stub:   n/a

      File size:         1,066,025,676      Store:           MINTIME

      Affinity:          n/a                Reloc:           MINTIME

      Class:             pc1                Trunc:           MINTIME

                                            Clean DB Info:   YES

      Media:   000026(1)

      Checksum:          0f6cb2cbab362d5d02743091509fd9d2(1,1)   ### copy(1) segment(1)

                         0fblah_blah_blah_blah0000000xxxx(1,2)   ### copy(1) segment(2)

                         0f6cb2cbab362d5d02743091509fd9d2(2,1)   ### copy(2) segment(1)

                         0fblah_blah_blah_blah0000000xxxx(2,2)   ### copy(2) segment(2)

 

 

2. When do we compare the checksum of the copy written to tape with the checksum of the file on disk?


Once it is retrieved, it is validated as to the same checksum for that  file_key+segment+copy+version. 

 

 

3. How do we make sure the File has been correctly written to Tape?

 

Regrettably, it does not check on the actual  write. If we do not get an indication back that the write was somehow unsuccessful, then we don’t know.

The sum is generated (per segment) and stored (per segment) as the write occurs, but not on what actually gets written to tape media. It is validated only on the retrieves.

 

 

4. If we would hit a corruption in between MDC -> SAN -> Drive Buffer Cache, when would we recognize the corruption?

 

On retrieval only. There was talk about “read after write” type scenarios, but due to the impact on performance that idea was shot down. The overhead of a verify after write is a huge performance penalty.


Note: The Drive is still doing a Read-after-Write from its Buffer Cache.

 

 

5. What’s the difference between our checksum feature and eg. manual md5sum ( beside that SN  creates checksum for Segments )

 

It is just automated to some extent.

 

 

6. We recently added a bug (Bug44464) with a task of denying truncation on a file with two different checksums. That way the disk copy would always be there – but then who would know unless a retrieve occurred?

 

Note: Bug 44464 only works when > 1 copy is stored. It still does not guarantee that both copies are not corrupted but it does minimize the risk to a very large degree.



Other Enhancement Request which requires your feedback!

 

Bug 29707 - "fsretrieve -n" does not validate checksums

Bug 37955 - Alternate File Retrieval feature does not verify checksum

Bug 44464 - Prevent TSM from truncating files if the stored checksums do not match

Bug 50611 - Add option to validate checksums during medcopy

 

 

Bugs, Product Alerts & Bulletins


Bug 40169 - Checksum information for file is lost during fsmedcopy ( Product Alert 86 )

Bug 54321 - Stores to S3 media fail if checksums set in fs_sysparm



This page was generated by the BrainKeeper Enterprise Wiki, © 2018