dits man page on DragonFly

Man page or keyword search:  
man Server   44335 pages
apropos Keyword Search (all sections)
Output format
DragonFly logo
[printable version]

dits(1)			   FreeBSD Reference Manual		       dits(1)

NAME
	dits - Data Integrity Test Tool

SYNOPSIS
       dits -i [-HvX] [-o skip] [-S max] partition [nblocks]
       dits -t [gHnv] [-a naioreqs] [-b bps] [-C nprocs] [-E type:prob] [-I iter] [-o skip] [-r] [-S max] [-s min] [-T ttmax] partition
       dits -c [-HRv]  [-a naioreqs] [-o skip] [-r] [-S max] partition
       dits -D sfrom sto
       dits -d [-Hv] [-o skip] [-S max] partition [start [stop]]
       dits -h
       dits -V


DESCRIPTION
       dits is a tool for validating disk drivers, file systems, and lock man‐
       agers. More than a simple exerciser, dits is able  to  verify  that  no
       detectable data integrity errors have occurred.

       The tool does its work in three mutually exclusive phases:

       (1) Init - Write a unique ID to each sector in the test bed.

       (2) Test - Continuously select arbitrary non-overlapping ranges of sec‐
       tors and swap them. File range locking is used to ensure mutual	exclu‐
       sion  amongst concurrently executing processes working in the same test
       bed.

       (3) Check - Verify that each and every unique ID written in  phase  (1)
       is intact and neither missing nor duplicated.

OPTIONS
       -a nreqs
	      use AIO, limit to nreqs outstanding requests

       -b bps limit throughput to bps blocks/sec

       -C nprocs
	      set concurrency (default: 4)

       -c     check the test bed

       -D sfrom sto
	      duplicate session 'sfrom to 'sto

       -d     dump the given range of device blocks

       -E type:prob
	      inject errors of the given type and probability

       -g     put the master and workers into their own process group

       -H     suppress column headers

       -h     show this help list

       -I iter
	      max iterations

       -i     initialize test bed

       -N name
	      specify the session name

       -n     don't perform write operations

       -o skip
	      skip first skip number of blocks in partition

       -R     attempt to repair a corrupted test bed

       -r     disable run time sanity checking

       -S max maximum device blocks to swap (default: 2048)

       -s min minimum device blocks to swap (default: 1)

       -T ttmax
	      specify the test mode maximum running time

       -t     run the swap test

       -V     print version

       -v     increase verbosity

       -X     use directIO

       partition
	      a disk partition, volume, file, etc, ...

       nblocks
	      number of blocks in test bed

       prob   a probability in the interval [0.0-1.0]

       start  starting block number

       stop   ending block number

       type   one of {rtck,before,during,after}

       ttmax  maximum test mode run time in seconds

EXAMPLES
       Typically, one runs dits over a raw device, but it will run over a file
       in a file system. Given a raw device, one  must	first  initialize  the
       test  bed  in  which  dits  will work. The larger the bed the longer it
       takes to initialize and check.

       To initialize the test bed, choose some number of sectors. For example,
       a test bed that is 128MB in size requires 262144 512-byte sectors.

       Given a logical volume named lvtest on AIX:

       $ dits -vi 262144 /dev/rlvtest

       Next,  run the test process. By default this process will fork and gen‐
       erate four test process that will access the test bed concurrently.

       $ dits -tv /dev/rlvtest

       This process will run until interrupted with  <CTRL>-C,	generating  as
       much I/O as possible within the constraints of the block swapping algo‐
       rithm.

       Finally, kill the test process (with <CTRL-C> and verify the  integrity
       of the test bed:

       $ dits -cv -a2 /dev/rlvtest

       If successful, the check process will report statistics on the state of
       the test bed and exit with a zero result code. If  any  data  integrity
       errors  are  detected, the check process will produce error messages to
       that effect and return a non-zero result.

       To use POSIX AIO, give dits the -a flag during the  test	 process.  The
       parameter  to the -a flags is the maximum number of concurrent requests
       that you wish for the test process to have outstanding at any one time.
       Note:  AIO mode currently only works with one test process because of a
       locking problem.

       $ dits -v -a32 /dev/rlvtest

       To use dits on a file system, first create a file that will be used  as
       the test bed:

       $ dd if=/dev/zero of=/tmp/testbed bs=1024k count=128

       Then  simply  run  dits	as  before,  but  give it the name of the file
       (/tmp/testbed) instead of /dev/rlvtest.

DIAGNOSTICS
       The dits utility exits 0 on success, and non-zero if an error occurs.

CAVEATS
       Be warned that because of file system caching and such, the behavior of
       running	dits on a file in a file system or on a block device will pro‐
       duce significantly different results than running on a raw  device.  In
       particular,  if the machine crashes while dits is running in test mode,
       the test bed will most likely be corrupted beyond repair.

AUTHORS
       Greg Becker greg@codeconcepts.com

       Thanks to Jeff d'Arcy for explaining the functional concept and inspir‐
       ing  the	 first of a number of predecessors to this particular incarna‐
       tion.

src				 01 July 2013			       dits(1)
[top]

List of man pages available for DragonFly

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net