blob: 4e4d349ab82a87b2c3d8e2478043292552abd8af [file] [log] [blame]
datint
------
This program checks for data integrity and retention on storage devices.
It writes data chunks that contain certain information used for verification.
Chunk data fields:
LBA - logical block address (offset into partition in multiples of block size)
GEN - chunk genration number (number of times the block was written)
TIM - timestamp of last write to block
RID - run id (unique identifier for this test)
Verification:
During the verification phase the LBA and GEN values are compared to what is
expected. For example, if the program writes LBA 3 seven times, then the
program expects that when it reads LBA 3, it has 7 for the GEN number.
In case that the data does not match what is expected, the other pieces of
information in the data chunk can give a hint to what might have caused the
data corruption.
Usage:
datint [options] file
Options:
-h print this menu
-s seed for random number gen. (default is 0)
-m random LBA (default is serialized)
-r read-only (default is read/write)
-w write-only (default is read/write)
-x random w/r (default is read/write)
-b <number> beginnig LBA (default is 0)
-e <number> bounding LBA (default is file size)
-i <number> number of test iterations (default is 1)
-z <number> i/o block size (multiple of default 512)
Example uses:
Serialized writes and reads. First write all LBAs and then read them back for
verification.
datint /dev/sda3
Randomized writes and reads. Do writes and reads at random. If trying to read
a block that was not previously written, the program will instead write the
block.
datint -x /dev/sda3
Like above, but randomized the blocks as well.
datint -x -m /dev/sda3
Specify block range.
datint -b 3 -e 37 /dev/sda3
Specify i/o block size (block size must be a multiple of 512).
datint -z 1024 /dev/sda3