llverfs(8)

NAME
llverfs - filesystem verification tool for ldiskfs based on ext3vt

SYNOPSIS
llverfs [-c CHUNKSIZE_MB ] [-h] [-o OFFSET_KB] [-l] [-p] [-r] [-s SIZE_MB] [-t TIMESTAMP] [-v] [-w] DEVICE

DESCRIPTION
This program tests the correct operation of large filesystems and the underlying block storage device(s). This tool has two working modes: In full mode, the program creates a subdirectory in the test filesystem, writes n (files_in_dir, default=32) large (4GB) files to the directory with the test pattern at the start of each 4KB block. The test pattern contains a timestamp (to detect data written in a prior run), relative file offset and per-file unique identifier (inode number, to detect data written to the wrong location on disk). This continues until the whole filesystem is full and then the tool verifies that the data in all of the test files is correct. In partial mode, the tool creates test directories with the EXT2_TOPDIR_FL flag set (if supported) to spread the directory data around the block device instead of localizing it in a single place. The number of directories equals to the number of block groups in the filesystem (e.g. 65536 directories for 8TB ext3/ext4 filesystem) and then writes a single 1MB file in each directory. The tool then verifies that the data in each file is correct.

OPTIONS

-c|--chunksize CHUNKSIZE_MB
    IO chunk size in megabytes (default=1), with optional KMG suffix.

-h|--help
    Display a brief help message.

-l|--long|--full
    Run a full check, 4GB files with 4k blocks

-o|--offset OFFSET_KB
    offset of IO start in kilobytes (default=0), with optional KMGTP suffix.

-p|--partial
    Run a partial check, with 1MB files

-r|--read
    Run test in read (verify) mode only, after having run the test in -w mode previously. The flag --timestamp is also needed in this case, using the timestamp printed out during the --write run.

-s|--filesize SIZE_MB
    File size in megabytes to use for the test, with optional KMGTP suffix. The default is 4096MB.

-t|--timestamp TIMESTAMP
    Set test start time as printed at the start of a previously interrupted test. This is to ensure that read phases (or multiple read phases) after a separate write phase will be able to check the validation data. (default=current time())

-v|--verbose
    Run test in verbose mode, listing each read and write operation.

-w|--write
    Run test in write (test-pattern) mode (default run both read and write)

SEE ALSO
llverdev(8)