nfstest man page on RedHat

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

NFSTEST(1)			   NFStest			    NFSTEST(1)

NAME
       NFStest - NFS Test Suite

DESCRIPTION
       Provides	 a  set	 of tools for testing either the NFS client or the NFS
       server, included tests focused mainly  on  testing  the	client.	 These
       tools include the following:

   Test utilities package (nfstest)
       Provides	 a  set	 of tools for testing either the NFS client or the NFS
       server, most of the functionality is  focused  mainly  on  testing  the
       client.	These tools include the following:

	   - Process command line arguments
	   - Provide functionality for PASS/FAIL
	   - Provide test grouping functionality
	   - Provide multiple client support
	   - Logging mechanism
	   - Debug info control
	   - Mount/Unmount control
	   - Create files/directories
	   - Provide mechanism to start a packet trace
	   - Provide mechanism to simulate a network partition
	   - Support for pNFS testing

   Packet trace package (packet)
       Testing	NFS  has  mostly  been done using test tools like connectathon
       test suite, filebench, iozone and others. But mostly using the  connec‐
       tathon test suite.  These are good tools for testing, but they are out‐
       dated and they also cannot be used for testing pNFS thoroughly.

       For example, you can run the connectathon test suite on pNFS, it	 runs,
       it  passes  all	the tests -- but how can we make sure that pNFS worked
       properly. How can we verify that a layout is granted, but not only that
       a  layout  is  granted, what type of layout was granted (read, rw). Did
       the client sent IO to the data servers or to the metadata server.

       The Packet trace module takes a	trace  file  created  by  tcpdump  and
       unpacks	the  contents  of  each packet. You can decode one packet at a
       time, or do a search for specific packets. The main difference  between
       this modules and other tools used to decode trace files is that you can
       use this module to completely automate your tests.

       How does it work? It opens the trace file and reads  one	 record	 at  a
       time keeping track where each record starts. This way, very large trace
       files can be opened without having to wait for the  file	 to  load  and
       avoid loading the whole file into memory.

       Packet layers supported:
	   - Ethernet II (RFC 894)
	   - IP layer (supports v4 only)
	   - TCP layer
	   - RPC layer
	   - NFS v4.0
	   - NFS v4.1 including pNFS file layouts

REQUIREMENTS AND LIMITATIONS
       In order to run the included tests, the user id in all the client hosts
       must have access to run commands as root using the 'sudo' command with‐
       out  the	 need for a password, this includes the host where the test is
       being executed.	 This  is  used	 to  run  commands  like  'mount'  and
       'umount'.  Furthermore, the user id must be able to ssh to remote hosts
       without the need for a password if test requires the  use  of  multiple
       clients.

       Network	partition  is  simulated  by  the use of 'iptables', please be
       advised that after every test is run the iptables is flushed and	 reset
       so  any	rules  previously  setup  will be lost. Currently, there is no
       mechanism to restore the iptables rules to their original state.

TESTS
   nfstest_cache
       Verify consistency of attribute caching by varying acregmin,  acregmax,
       acdirmin,  acdirmax  and	 actimo. Verify consistency of data caching by
       varying acregmin, acregmax, acdirmin, acdirmax and actimo.

       Valid for any version of NFS

   nfstest_delegation
       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 con‐
       flicting operation is sent to the server from a different client.  Con‐
       flicting	 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_DELE‐
       GATE_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 dele‐
       gation. The LOCK should be sent as well right before returning a	 dele‐
       gation  which  has been recalled. A delegation should not be granted on
       the second client who cause the delegation recall on the first client.

       Valid for any version of NFS granting delegations

   nfstest_dio
       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

   nfstest_pnfs
       Verify basic pNFS functionality for file (both READ and WRITE), includ‐
       ing  opening  a	second file within the same mount and having a lock on
       the file.  Also, verify basic pNFS functionality for a file opened  for
       both READ and WRITE while reading the file first and then writing to it
       or the other way around by writing to the file fist  and	 then  reading
       the  file.  These tests verify proper functionality of pNFS and NFSv4.1
       as well:

	   - Verify EXCHANGE_ID is sent to MDS
	   - Verify CREATE_SESSION is sent to MDS
	   - Verify LAYOUTGET is sent to MDS (check layout type, iomode,  lay‐
       out range)
	   - Verify GETDEVICEINFO is sent to MDS
	   - Verify EXCHANGE_ID is sent to the correct DS
	   - Verify CREATE_SESSION is sent to DS
	   -  Verify  READ/WRITE is sent to DS (check correct stateid, correct
       offset and size)
	   - Verify no GETATTR is sent to DS

       Only valid using NFSv4.1 with pNFS enabled and file layout type

   nfstest_posix
       Verify POSIX file system level access over  the	specified  path	 using
       positive and negative testing.

       Valid for any version of NFS

INSTALLATION
       1. Install package using one of the following methods:
	  a. Install the rpm as root:
	     # rpm -i NFStest-1.0.1-1.noarch.rpm

	     All manual pages are available
	     $ man nfstest

	     Run tests:
	     $ nfstest_pnfs --help

	  b. Untar the tarball:
	     $ cd ~
	     $ tar -zxvf NFStest-1.0.1.tar.gz

	     The tests can run without installation, just set the python path
	     environment variable:
	     $ export PYTHONPATH=~/NFStest-1.0.1
	     $ cd NFStest-1.0.1/test
	     $ ./nfstest_pnfs --help

	     Or install to standard python site-packages and executable direc‐
       tories:
	     $ cd ~/NFStest-1.0.1
	     $ sudo python setup.py install

	     All manual pages are available
	     $ man nfstest

	     Run tests:
	     $ nfstest_pnfs --help

	  c. Clone the git repository:
	     $ cd ~
	     $ git clone git://git.linux-nfs.org/projects/mora/nfstest.git

	     The tests can run without installation, just set the python path
	     environment variable:
	     $ export PYTHONPATH=~/nfstest
	     $ cd nfstest/test
	     $ ./nfstest_pnfs --help

	     Or install to standard python site-packages and executable direc‐
       tories:
	     $ cd ~/nfstest
	     $ sudo python setup.py install

	     All manual pages are available
	     $ man nfstest

	     Run tests:
	     $ nfstest_pnfs --help

       2. Make sure user running the tests can run commands using 'sudo' with‐
       out
	  the need for a password.

       3. Make sure user running the tests can	run  commands  remotely	 using
       'ssh'
	  without the need for a password. This is only needed for tests which
	  require multiple clients.

       4.  Create the mount point specified by the --mtpoint (default: /mnt/t)
       option
	  on all the clients.
	  $ sudo mkdir /mnt/t
	  $ sudo chmod 777 /mnt/t

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

       Required options are --server and --client
       $ nfstest_cache --server 192.168.0.11 --client 192.168.0.20

       Testing with different values of --acmin and --acmax (this takes a long
       time)
       $  nfstest_cache	 --server  192.168.0.11	 --client 192.168.0.20 --acmin
       10,20 --acmax 20,30,60,80

       The only required option is --server  but  only	the  basic  delegation
       tests will be run. In order to run the recall tests the --client option
       must be used
       $ nfstest_delegation --server 192.168.0.11 --client 192.168.0.20

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

       The only required option is --server
       $ nfstest_posix --server 192.168.0.11

USEFUL OPTIONS
       --help All tests have this option  to  display  usage  information  and
	      options available

       --createlog
	      Create log file when specified

       --keeptraces
	      Do not remove any trace files at the end of execution

       --verbose <none|opts|info|debug|all|intbitmask>
	      Verbose level for info/debug messages

	      Example:
		  $ nfstest_posix --server 192.168.0.11 --verbose all
		  $ nfstest_posix --server 192.168.0.11 --verbose 0x0F

       --runtest <[^]testname1[,testname2[,...]]>
	      Comma  separated list of tests to run, if the first character on
	      the list is '^' then run all the tests except the ones listed.

	      Example:
		  Run only the access, chdir, creat and fcntl tests
		  $    nfstest_posix	--server    192.168.0.11     --runtest
	      access,chdir,creat,fcntl

		  Run all the tests except for open and chmod
		  $ nfstest_posix --server 192.168.0.11 --runtest ^open,chmod

       --tverbose <group|normal|verbose>
	      Verbose  level  for  test	 messages (default: normal) When tver‐
	      bose=group, only the test groups are displayed as	 PASS  if  all
	      the  tests  in the group passed, otherwise it will FAIL. In some
	      of the tests tverbose could be 'verbose' for a greater level  of
	      verbosity in which a particular test have many sub-tests (>100)

	      Example:
		  $ nfstest_posix --server 192.168.0.11
		  *** Verify POSIX API access() on NFSv4
		      PASS: access - file access allowed with mode F_OK
		      PASS:  access  -	file access not allowed with mode F_OK
	      for a non-existent file
		      PASS: access - file access allowed with  mode  R_OK  for
	      file with permissions 0777
		      PASS:  access  -	file access allowed with mode W_OK for
	      file with permissions 0777
		      PASS: access - file access allowed with  mode  X_OK  for
	      file with permissions 0777
		      ...

		  $ nfstest_posix --server 192.168.0.11 --tverbose group
		      PASS:  Verify  POSIX API access() on NFSv4 (58 passed, 0
	      failed)

       --bugmsgs <filename>
	      File containing test messages to mark as bugs  if	 they  failed.
	      When  at least one of the tests fails the exit code is set to 1.
	      When this option is specified, all known bugs are not counted as
	      failures so the whole test execution is not failed. If the known
	      bugs actually passed, using this option will fail	 the  test  to
	      let the user know that the bug has been fixed.

       --ignore
	      Ignore  all  bugs	 given by bugmsgs. If this option is specified
	      all failures given by bugmsgs are ignored. On the other hand, if
	      a	 test  passes  which is marked as a bug, using this option the
	      test will not failed as when using the bugmsgs option alone.

       --nfsdebug <flags>
	      Set NFS kernel debug flags and save log messages. Use any of the
	      valid flags given for module 'nfs' on command 'rpcdebug'.

       --rpcdebug <flags>
	      Set RPC kernel debug flags and save log messages. Use any of the
	      valid flags given for module 'rpc' on command 'rpcdebug'.

SEE ALSO
       nfstest_cache(1),	nfstest_delegation(1),	       nfstest_dio(1),
       nfstest_pnfs(1), nfstest_posix(1)

BUGS
       No known bugs.

AUTHOR
       Jorge Mora (mora@netapp.com)

NFStest 1.0.2			 10 April 2013			    NFSTEST(1)
[top]

List of man pages available for RedHat

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