NFSTEST_DIO(1)

NAME
nfstest_dio - Direct I/O tests

SYNOPSIS
nfstest_dio --server <server> [options]

DESCRIPTION
Functional direct I/O tests verify that every READ/WRITE is sent to the server instead of the client caching the requests. Client bypasses read ahead by sending the READ with only the requested bytes. Verify the client correctly handles eof marker when reading the whole file. Verify client ignores delegation while writing a file. Direct I/O on pNFS tests verify the client sends the READ/WRITE to the correct DS or the MDS if using a PAGESIZE aligned buffer or not, respectively. Direct I/O data correctness tests verify that a file written with buffered I/O is read correctly with direct I/O. Verify that a file written with direct I/O is read correctly with buffered I/O. Vectored I/O tests verify coalescence of multiple vectors into one READ/WRITE packet when all vectors are PAGESIZE aligned. Vectors with different alignments are sent on separate packets. Valid for NFSv4.0 and NFSv4.1 including pNFS.

OPTIONS

--version
    show program's version number and exit

-h, --help
    show this help message and exit

-f FILE, --file=FILE
    Options file

-s SERVER, --server=SERVER
    Server name or IP address

-p PORT, --port=PORT
    NFS server port [default: 2049]

--nfsversion=NFSVERSION
    NFS version [default: 4]

--minorversion=MINORVERSION
    Minor version [default: 1]

-e EXPORT, --export=EXPORT
    Exported file system to mount [default: '/']

-m MTPOINT, --mtpoint=MTPOINT
    Mount point [default: '/mnt/t']

--datadir=DATADIR
    Data directory where files are created [default: '']

-o MTOPTS, --mtopts=MTOPTS
    Mount options [default: 'hard,intr']

-i INTERFACE, --interface=INTERFACE
    Device interface [default: 'eth0']

-v VERBOSE, --verbose=VERBOSE
    Verbose level [default: 'none']

--nocleanup
    Do not cleanup

--rmtraces
    Remove trace files [default: remove trace files if no errors]

--keeptraces
    Do not remove any trace files [default: remove trace files if no errors]

--createlog
    Create log file

--bugmsgs=BUGMSGS
    File containing test messages to mark as bugs if they failed

--ignore
    Ignore all bugs given by bugmsgs

--nomount
    Do not mount server

--basename=BASENAME
    Base name for all files and logs [default: automatically generated]

--tverbose=TVERBOSE
    Verbose level for test messages [default: '1']

--filesize=FILESIZE
    File size to use for test files [default: 262144]

--nfiles=NFILES
    Number of files to create [default: 2]

--rsize=RSIZE
    Read size to use when reading files [default: 4096]

--wsize=WSIZE
    Write size to use when writing files [default: 4096]

--iodelay=IODELAY
    Seconds to delay I/O operations [default: 0.1]

--offset-delta=OFFSET_DELTA
    Read/Write offset delta [default: 4096]

--warnings
    Display warnings

--nfsdebug=NFSDEBUG
    Set NFS kernel debug flags and save log messages [default: '']

--rpcdebug=RPCDEBUG
    Set RPC kernel debug flags and save log messages [default: '']

--sudo=SUDO
    Full path of binary for sudo [default: '/usr/bin/sudo']

--tcpdump=TCPDUMP
    Full path of binary for tcpdump [default: '/usr/sbin/tcpdump']

--iptables=IPTABLES
    Full path of binary for iptables [default: '/sbin/iptables']

--messages=MESSAGES
    Full path of log messages file [default: '/var/log/messages']

--tmpdir=TMPDIR
    Temporary directory [default: '/tmp']

--runtest=RUNTEST
    Comma separated list of tests to run [default: 'all']

--iotype=IOTYPE
    List of I/O types to test [default: 'read,write']

--biotype=BIOTYPE
    List of buffered I/O types to test [default: 'none,read,write']

--withdeleg=WITHDELEG
    Use delegation on tests [default: both without and with delegation]

TESTS

  eof
Verify eof marker is handled correctly when reading the end of the file.

  correctness
Verify data correctness when reading/writing using direct I/O. File created with buffered I/O is read correctly with direct I/O. File created with direct I/O is read correctly with buffered I/O.

  fstat
Verify fstat() gets correct file size after writing.

  read
Verify READ is sent after writing when the file is open for both read and write.

  read_ahead
Verify READ is sent with only the requested bytes bypassing read ahead.

  basic
Verify a packet is sent for each I/O request.

  rsize
Verify multiple READ packets are sent for each read request having request size > rsize.

  wsize
Verify multiple WRITE packets are sent for each write request having request size > wsize

  aligned
Verify packet is sent to correct DS server when using a memory which is PAGESIZE aligned.

  nonaligned
Verify packet is sent to the MDS when using a memory which is not PAGESIZE aligned.

  diffalign
Verify packets are sent to both the MDS and correct DS on same open using buffers with different alignments.

  stripesize
Verify multiple packets are sent for each request having the request size greater than stripe size.

  vectored_io
Verify vectored I/O functionality.

EXAMPLES
The only required option is --server
$ nfstest_dio --server 192.168.0.11

NOTES
The user id in the local host must have access to run commands as root using the 'sudo' command without the need for a password.

SEE ALSO
nfstest.test_util(1), nfstest_cache(1), nfstest_delegation(1), nfstest_pnfs(1), nfstest_posix(1)

BUGS
No known bugs.

AUTHOR
Jorge Mora (mora@netapp.com)