TEXEXPAND = texexpand
SUFFIXES = .lin .lyx .pdf .ps .sgml .html .txt .tex .fig .eps .dvi
+MANFILES = lustre.7 lfs.1 mount.lustre.8 mkfs.lustre.8 tunefs.lustre.8 lctl.8 \
+ llverdev.8
+
if UTILS
-man_MANS = lustre.7 lfs.1 mount.lustre.8 mkfs.lustre.8 tunefs.lustre.8 lctl.8
+man_MANS = $(MANFILES)
endif
LYXFILES= $(filter-out $(patsubst %.lin,%.lyx,$(wildcard *.lin)),\
CLEANFILES = *.aux *.tex *.log *.pdf
-EXTRA_DIST = tex2pdf lustre.7 mount.lustre.8 mkfs.lustre.8 tunefs.lustre.8 \
- $(LYXFILES) lfs.1 lctl.8
+EXTRA_DIST = tex2pdf $(MANFILES) $(LYXFILES)
all:
--- /dev/null
+.\" -*- nroff -*-
+.\" Copyright 2006 by Cluster FileSystems. All Rights Reserved.
+.\" Copyright 2008 by Sun Microsystems. All Rights Reserved.
+.\" This file may be copied under the terms of the GNU Public License, v2.
+.\"
+.TH llverdev 8 "2008 Mar 15" Lustre "configuration utilities"
+.SH NAME
+llverdev - verify a block device is functioning properly over its full size
+.SH SYNOPSIS
+.BI llverdev
+.RB [ -c
+.IR chunksize ]
+.RB [ -f "] [" -h ]
+.RB [ -o
+.IR offset ]
+.RB [ -l "] [" -p "] [" -r ]
+.RB [ -t
+.IR timestamp ]
+.RB [ -v "] [" -w ]
+.I device
+.SH DESCRIPTION
+Sometimes kernel drivers or hardware devices have bugs that prevent them from
+accessing the full device size correctly, or possibly have bad sectors on disk
+or other problems which prevent proper data storage. There are often defects
+associated with major system boundaries such as 2^32 bytes, 2^31 sectors,
+2^31 blocks, 2^32 blocks, etc.
+.PP
+The
+.B llverdev
+tool will write and verify a unique test pattern across the entire device in
+order to ensure that not only is data accessible after it was written, but
+also that data written to one part of the disk is not overwriting data on
+another part of the disk.
+.PP
+It is expected that llverdev tool will be run on large size devices (TB),
+so it is always better to run llverdev tool in verbose mode, so that one
+can easily restart device testing from the point at which it had stopped.
+.PP
+Running a full verification can be time consuming for very large devices,
+so it is advisable to start with a partial verification to ensure the
+device is minimally sane before investing the time in a full verification.
+.SH OPTIONS
+.TP
+.BR -c | --chunksize
+IO chunk size in bytes (default=1048576).
+.TP
+.BR -f | --force
+force test to run without confirmation that the device will be overwritten
+and all data therein will be permanently destroyed.
+.TP
+.BR -h | --help
+display a brief help message.
+.TP
+.BI -o offset
+offset in kilobytes of start of test (default=0).
+.TP
+.BR -l | --long
+Run a full check, writing and then reading and verifying every block on the
+disk.
+.TP
+.BR -p | --partial
+Run a partial check, only doing periodic checks across the device (1GB steps).
+.TP
+.BR -r | --read
+Run test in read (verify) mode only, after having run the test in
+.B -w
+mode previously.
+.TP
+.BI -t timestamp
+Set test start time as printed at the start of a previously interrupted test
+to ensure that the validation data is the same across the whole filesystem
+(default=current time())
+.TP
+.BR -v | --verbose
+Run test in verbose mode, listing each read and write operation.
+.TP
+.BR -w | --write
+Run test in write (test-pattern) mode (default run both read and write)
+.SH EXAMPLES
+.TP
+Run a partial device verification on \fB/dev/sda\fR:
+.B llverdev -v -p /dev/sda
+.br
+llverdev: permanently overwrite all data on /dev/sda (yes/no)? y
+.br
+llverdev: /dev/sda is 4398046511104 bytes (4096.0 GB) in size
+.br
+Timestamp: 1009839028
+.br
+Current write offset: 4096 kB
+.TP
+Continue an interrupted verification at offset \fB4096\fRkB from the start of the device, using the same timestamp as the previous run:
+.B llverdev -f -v -p --offset=4096 --timestamp=1009839028 /dev/sda
+.br
+llverdev: /dev/sda is 4398046511104 bytes (4096.0 GB) in size
+.br
+Timestamp: 1009839028
+.br
+write complete
+.br
+read complete
+.SH SEE ALSO
+.BR llverfs (8)
+++ /dev/null
-BLOCK DEVICE VERIFICATION TOOL. ( bdevt )
-==========================================
-
-Building tool:
- To build this tool you just need to invoke make at command prompt.
- e.g. $ make
-
- this will compile the sources and build bdevt in this directory.
-
-Usage:
-Syntax:
-
-./bdevt [OPTION]... <device-name> ...
-
-[OPTION]
- -t {seconds} for --timestamp, set test time (default=current time())
- -o {offset} for --offset, offset in kB of start of test (default=0)
- -r run test in read (verify) mode
- -w run test in write (test-pattern) mode (default=r&w)
- -v for verbose
- -p for --partial, for partial check (1GB steps)
- -l for --long, full check (default 4k)
- -c for --chunksize, IO chunk size (default=1048576)
- -f for --force, force test to run without confirmation
- --help to display help.
-
-Guide lines for using this tool:
- It is expected that bdevt tool will be run on large size devices (TB),
-So it is always better to run bdevt tool in verbose mode, So that one can easily
-restart device testing from the point at which it had stoped.
-for example:
-
- [root@tucker bdevt]# ./bdevt -v -f -w --timestamp=1009839028 /dev/hda5
- Number of sectors: 49158837, this makes 23.441 GB
- Timestamp: 1009839028
- Current write offset: 5078016 kB
-
-If due to some reason sombody breaks execution at this point then one can
-easily restart device from the same point by picking the same offset
-displayed in by verbose as explained below.
-
- [root@tucker bdevt]# ./bdevt -v -f -w --offset=5078016 --timestamp=1009839028 /dev/hda5
- Number of sectors: 49158837, this makes 23.441 GB
- Timestamp: 1009839028
- Current write offset: 9726208 kB
-
-One can use similar things for read only and read write modes also.
-