NFSTEST_PNFS(1)
π NFSTEST_PNFS π
okay bestie, welcome to nfstest_pnfs β it's part of the nfstest fam, version 1.5, and it's the girl who checks that your pNFS setup is actually doing the thing. pull up a chair, grab a strawberry π, and let's get into it.
β¨ NAME β¨
nfstest_pnfs β basic pNFS functional tests. that's it, that's the vibe. it runs the tests, it tells you if pNFS is slaying or flopping.
πΈ SYNOPSIS πΈ
nfstest_pnfs --server <server> [options]
π¦ DESCRIPTION π¦
okay so here's the whole point of her: she verifies basic pNFS functionality for a file β and yes, that means both READ and WRITE, no picking favorites. π
she also checks what happens when you open a second file within the same mount and when you have a lock on the file. because pNFS gotta behave even when things get complicated, you know?
and then β this is the part I'm obsessed with β she verifies basic pNFS functionality for a file opened for both READ and WRITE at the same time, while reading the file first and then writing to it, or the other way around: writing to the file first and then reading the file. both directions, both orders, no cap. π«Ά
all of these tests verify that pNFS and NFSv4.1 are functioning properly. so like, if something's broken, she WILL find it. main character energy fr fr.
π OPTIONS π
general girly options
--versionβ shows the program's version number and dips. bye! π-h,--helpβ shows this help message and exits. iconic of her tbh.-f FILE,--file=FILEβ the file where options are specified, besides the system wide file/etc/nfstest, the user wide file$HOME/.nfstest, or the.nfstestfile in the current directory. so many places to spill your settings β¨
π NFS specific options π
-s SERVER,--server=SERVERβ server name or IP address. the whole reason we're here bestie.-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']--nconnect=NCONNECTβ multiple TCP connections option [default:'1']-o MTOPTS,--mtopts=MTOPTSβ mount options [default:'hard,rsize=4096,wsize=4096']--datadir=DATADIRβ data directory where files are created; the directory is created on the mount point [default:'']
π Logging options π
-v VERBOSE,--verbose=VERBOSEβ verbose level for debug messages [default:'opts|info|dbg1|dbg2|dbg3']--tverbose=TVERBOSEβ verbose level for test messages [default:'1']--createlogβ create log file--rexeclogβ create rexec log files--warningsβ display warnings--tag=TAGβ informational tag, it is displayed as an INFO message [default:'']--nottyβ do not use terminal colors on output--isattyβ use terminal colors on output β useful when running withnohup
π Packet trace options π
--createtracesβ create a packet trace for each test--tbsize=TBSIZEβ capture buffer size fortcpdump[default:192k]--trcdelay=TRCDELAYβ seconds to delay before stopping packet trace [default:2.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:64k]--rsize=RSIZEβ read size to use when reading files [default:4k]--wsize=WSIZEβ write size to use when writing files [default:4k]--iodelay=IODELAYβ seconds to delay I/O operations [default:0.1]--offset-delta=OFFSET_DELTAβ read/write offset delta [default:4k]
π§ Path options π§
--sudo=SUDOβ full path of binary forsudo[default:'/usr/bin/sudo']--kill=KILLβ full path of binary forkill[default:'/usr/bin/kill']--nfsstat=NFSSTATβ full path of binary fornfsstat[default:'/usr/sbin/nfsstat']--tcpdump=TCPDUMPβ full path of binary fortcpdump[default:'/usr/sbin/tcpdump']--iptables=IPTABLESβ full path of binary foriptables[default:'/usr/sbin/iptables']--messages=MESSAGESβ full path of log messages file [default:'/var/log/messages']--trcevents=TRCEVENTSβ full path of tracing events directory [default:'/sys/kernel/debug/tracing/events']--trcpipe=TRCPIPEβ full path of trace pipe file [default:'/sys/kernel/debug/tracing/trace_pipe']--tmpdir=TMPDIRβ temporary directory [default:'/tmp']
π Debug options π
--nocleanupβ do not cleanup created files--notimestampsβ do not display timestamps in debug messages--bugmsgs=BUGMSGSβ file containing test messages to mark as bugs if they failed--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:'']--tracepoints=TRACEPOINTSβ list of trace points modules to enable [default:'']--nfsstatsβ get NFS stats [default:'False']--pktdispβ display main packets related to the given test--nfserrorsβ fail every NFS error found in the packet trace--client-ipaddr=CLIENT_IPADDRβ IP address of localhost
π Reporting options π
--xunit-reportβ generate xUnit compatible test report--xunit-report-file=XUNIT_REPORT_FILEβ path to xout report file
π§ͺ Test options π§ͺ
--runtest=RUNTESTβ comma separated list of tests to run; if the list starts with a'^'then all tests are run except the ones listed [default:'all']
π TESTS π
read
verify basic pNFS functionality on a couple of files opened for reading within the same mount. π
write
verify basic pNFS functionality on a couple of files opened for writing and then re-opening the first file for writing within the same mount. βοΈ
read_write
verify basic pNFS functionality on a couple of files opened for reading and then re-opening the first file for writing within the same mount. π
write_read
verify basic pNFS functionality on a couple of files opened for writing and then re-opening the first file for reading within the same mount. π
read_lock
verify traffic for locked file opened for reading using pNFS. π
write_lock
verify traffic for locked file opened for writing using pNFS. π
setattr
verify setattr traffic for file using pNFS. π«
setattr_lock
verify setattr traffic for locked file using pNFS. π«π
rw_read
verify traffic for file opened for read and write: reading file first. πβ‘οΈβοΈ
rw_write
verify traffic for file opened for read and write: writing file first. βοΈβ‘οΈπ
one_ds
verify client only connects to the DS with I/O. π―
rsize
verify traffic for file using pNFS when mount option rsize < 4096. π
wsize
verify traffic for file using pNFS when mount option wsize < 4096. π
rwsize
verify traffic for file using pNFS when mount option rsize < 4096 and wsize < 4096. ππ
nfsvers
verify file created with pNFS is read correctly from different versions of NFS. also, verify files created with different versions of NFS are read correctly from pNFS. π
all
run all tests: read, write, read_write, write_read, read_lock, write_lock, setattr, setattr_lock, rw_read, rw_write, one_ds, rsize, wsize, rwsize, nfsvers. the full lineup bestie, she's doing ALL of it. π
π EXAMPLES π
the only required option is --server. that's the one thing you can't skip, periodt.
$ nfstest_pnfs --server 192.168.0.11
look at her go. π
β οΈ 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. like, it has to just work, no password prompt, no drama. set that up first or she's gonna be stuck at the door. π
π SEE ALSO π
formatstr(3), nfstest.test_util(3), nfstest_alloc(1), nfstest_cache(1), nfstest_delegation(1), nfstest_dio(1), nfstest_fcmp(1), nfstest_file(1), nfstest_interop(1), nfstest_io(1), nfstest_lock(1), nfstest_pkt(1), nfstest_posix(1), nfstest_rdma(1), nfstest_sparse(1), nfstest_ssc(1), nfstest_xattr(1), nfstest_xid(1), packet.nfs.nfs4_const(3)
the whole friend group, all linked up. π«Άβ¨
π BUGS π
no known bugs. she said she's flawless and honestly? we believe her. π β¨
π AUTHOR π
jorge mora (mora@netapp.com) β the legend who wrote her. π
and that's the whole page bestie!! this is NFStest 3.2, dated 21 March 2023 β go run some pNFS tests, you're gonna eat. π½οΈππ¦ no cap.
π¦ where this page comes from
- debian trixie: nfstest 3.2-3
- fedora 43: NFStest 3.2-14.fc43 Β· GPL-2.0-or-later
- fedora 44: NFStest 3.2-16.fc44 Β· GPL-2.0-or-later
- ubuntu noble: nfstest 3.2-2
- ubuntu questing: nfstest 3.2-3
- ubuntu resolute: nfstest 3.2-3build1
- ubuntu stonking: nfstest 3.2-5
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms