nfstest_delegation (1) - Linux Manuals

nfstest_delegation: Delegation tests

NAME

nfstest_delegation - Delegation tests

SYNOPSIS

nfstest_delegation --server <server> [--client <client>] [options]

DESCRIPTION

Basic delegation tests verify that a correct delegation is granted when opening a file for reading or writing. Also, another OPEN should not be sent for the same file when the client is holding a delegation. Verify that the stateid of all I/O operations should be the delegation stateid. Reads from a different process on the same file should not cause the client to send additional READ packets when the client is holding a read delegation. Furthermore, a LOCK packet should not be sent to the server when the client is holding a delegation.

Recall delegation tests verify the delegation is recalled when a conflicting operation is sent to the server from a different client. Conflicting operations are reading, writing and changing the permissions on the same file. Note, that reading a file from a different client can only recall a read delegation. Also, verify that a delegation is not recalled when a different client is granted a read delegation. After a delegation is recalled, the client should send an OPEN with CLAIM_DELEGATE_CUR before returning the delegation and the stateid should be the same as the original OPEN stateid. Also, a delegation should not be granted when re-opening the file right before returning the delegation. Verify client flushes all written data before returning the WRITE delegation. The LOCK should be sent as well right before returning a delegation which has been recalled. A delegation should not be granted on the second client who cause the delegation recall on the first client.

OPTIONS

--version
show program's version number and exit
-h, --help
show this help message and exit
-f FILE, --file=FILE
File where options are specified besides the system wide file /etc/nfstest, user wide file $HOME/.nfstest or in the current directory .nfstest file

NFS specific options:

-s SERVER, --server=SERVER
Server name or IP address
-e EXPORT, --export=EXPORT
Exported file system to mount [default: '/']
--nfsversion=NFSVERSION
NFS version, e.g., 3, 4, 4.1, etc. [default: 4.1]
-m MTPOINT, --mtpoint=MTPOINT
Mount point [default: '/mnt/t']
-p PORT, --port=PORT
NFS server port [default: 2049]
--proto=PROTO
NFS protocol name [default: 'tcp']
--sec=SEC
Security flavor [default: 'sys']
-o MTOPTS, --mtopts=MTOPTS
Mount options [default: 'hard,rsize=4096,wsize=4096']
--datadir=DATADIR
Data directory where files are created, directory is created on the mount point [default: '']

Logging options:

-v VERBOSE, --verbose=VERBOSE
Verbose level for debug messages [default: 'none']
--tverbose=TVERBOSE
Verbose level for test messages [default: '1']
--createlog
Create log file
--warnings
Display warnings
--tag=TAG
Informational tag, it is displayed as an INFO message [default: '']

Packet trace options:

--createtraces
Create a packet trace for each test
--tbsize=TBSIZE
Capture buffer size for tcpdump [default: '50000']
--trcdelay=TRCDELAY
Seconds to delay before stopping packet trace [default: 0.0]
--keeptraces
Do not remove any trace files [default: remove trace files if no errors]
--rmtraces
Remove trace files [default: remove trace files if no errors]
-i INTERFACE, --interface=INTERFACE
Device interface [default: automatically selected]

File options:

--nfiles=NFILES
Number of files to create [default: 2]
--filesize=FILESIZE
File size to use for test files [default: 65536]
--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]

Path options:

--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']

Debug options:

--nocleanup
Do not cleanup created files
--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 and run the tests on local disk space
--basename=BASENAME
Base name for all files and logs [default: automatically generated]
--nfsdebug=NFSDEBUG
Set NFS kernel debug flags and save log messages [default: '']
--rpcdebug=RPCDEBUG
Set RPC kernel debug flags and save log messages [default: '']

Test options:

--runtest=RUNTEST
Comma separated list of tests to run, if list starts with a '^' then all tests are run except the ones listed [default: 'all']
--client=CLIENT
Remote NFS client used for recall tests
--lock-offset=LOCK_OFFSET
Starting offset for lock [default: 0]
--lock-len=LOCK_LEN
Number of bytes to lock [default: 0]
--truncate
Truncate file when writing from the second file for the recall tests

TESTS

basic

Run all basic delegation tests: read, write, read_stat, write_stat,
read_lock, write_lock

read

Basic read delegation test

write

Basic write delegation test

read_stat

Basic read delegation test with file stat

write_stat

Basic write delegation test with file stat

read_lock

Basic read delegation test with file lock

write_lock

Basic write delegation test with file lock

recall

Run all recall delegation tests: read_recall_write, write_recall_write,
read_recall_write_lock, write_recall_write_lock, write_recall_read,
write_recall_read_lock, read_recall_setattr, write_recall_setattr,
read_recall_setattr_lock, write_recall_setattr_lock

read_recall_write

Recall read delegation by writing from a second client

write_recall_write

Recall write delegation by writing from a second client

read_recall_write_lock

Recall read delegation by writing from a second client with file lock

write_recall_write_lock

Recall write delegation by writing from a second client with file lock

write_recall_read

Recall write delegation by reading from a second client

write_recall_read_lock

Recall write delegation by reading from a second client with file lock

read_recall_setattr

Recall read delegation by changing the permissions to the file

write_recall_setattr

Recall write delegation by changing the permissions to the file

read_recall_setattr_lock

Recall read delegation by changing the permissions to the file with file lock

write_recall_setattr_lock

Recall write delegation by changing the permissions to the file with file lock

EXAMPLES

The only required option is --server but only the basic delegation tests will be run. Use the --client option to run the recall tests as well
$ nfstest_delegation --server 192.168.0.11 --client 192.168.0.20

NOTES

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

The user id must be able to 'ssh' to remote host without the need for a password.

BUGS

No known bugs.

AUTHOR

Jorge Mora (mora [at] netapp.com)