Testing forecast roadmap
From Linux NFS
Linux NFSv4 Testing Roadmap
As of May 2005, we've completed a detailed itemization of testing work necessary for NFSv4, in a spreadsheet "Test Matrix", identifying items as High, Medium, and Low.
This document seeks to divide the high priority work into achievable chunks that we as a community can strive to attain.
I tried to prioritize for things that look reasonably easy to complete in the near term, that have owners, and/or are most likely to reveal issues that developers want to know about.
Contents |
Milestone 0: Developer Testing Support
These testing tasks seek to put into place tools and practices that will help support development activities (including testing) on an ongoing basis.
Functionality:
I.B.1 [X] [OSDL] Automate running applicable existing functionality
tests on codebase periodically: cthon, pynfs,
iozone
I.B.3 [X] [OSDL] Automate cross-compile testing for major platforms
on each NFSv4 patchset
I.C.2 [ ] [ ] Test install on Fedora Core of NFSv4 server &
client, krb5, ldap, et al
I.E.9 [ ] [ ] Verify ability to force operations (close files,
change states, unmount)
I.G.5 [ ] [Bull] Test compilation and functionality on IA-64
I.G.7 [ ] [Bull] Test compilation and functionality on PPC-64
I.K.2 [ ] [ ] Check that NFS HOWTO is updated with sufficient
nfsv4 info
Interop:
II.A.1 [ ] [Bull] Kerberos (MIT) - verify basic functionality. Mount
w/ krb5, etc.
Robustness:
III.A.3 [ ] [OSDL] Run NFS server for 2 wks with random configuration
changes
III.C.1 [ ] [Bull] Run LTP NFS fstress in a std config on each release
Performance:
IV.A.1 [ ] [Bull] Time to perform sequence of unique read/write
operations
IV.A.2 [ ] [Bull] Time to perform sequence of cacheable read/write
operations
IV.F.4 [ ] [Bull] Measure memory/network/CPU efficiency of client for
fixed workload
IV.G.3 [ ] [Bull] Measure effects of scaling up number of
connections with exportfs/mount. Measure number of
mounts per second on client and server.
IV.J.2 [ ] [Bull] Measure performance when operating with Kerberos 5
integrity and privacy
Security:
V.A.6 [ ] [ ] Audit the mountd code
V.B.4 [ ] [OSDL] Run sparse as regression test periodically
V.L.1 [ ] [ ] Ensure there is high level design documentation of
NFSv4 security
V.L.2 [ ] [ ] Ensure there is inline documentation for security
related code in kernel
V.L.3 [ ] [ ] Ensure there is inline documentation for GSS API
(libgssapi, librpcsecgss)
Misc:
* [X] [OSDL] Establish bug tracking process for NFSv4
Milestone 1: Distro Quality Assurance
This milestone strives to attain a "Top Ten" list of testing that is felt will emphasize that NFSv4 is stable enough to be included in all enterprise distros. The focus is robustness, and items that would cause distros the most headaches if they're busted.
I.A.5 [ ] [ ] Protocol implementation interoperability between
Linux server and client
I.C.5 [ ] [ ] Test install on SLES of NFSv4 server & client,
krb5, ldap, et al
I.C.6 [ ] [ ] Test install on RHEL of NFSv4 server & client,
krb5, ldap, et al
I.H.1 [ ] [ ] Verify compatibility with glibc
I.H.9 [ ] [ IBM] Verify compatibility with automounter
I.H.11 [ ] [ ] Verify compatibility with basic system tools
(file utils, core utils, util-linux, mount, sar,
iostat, etc.)
I.K.4 [ ] [ ] Check that Network Admin Guide at tldp.org is
updated for nfsv4
II.E.2 [ ] [ ] Verify features of the Ext3 file system work under
NFSv4
III.A.1 [ ] [Bull] Run iozone for 2 wks on basic client/server
operations
III.A.2 [ ] [ ] Run automounter use case for 2 wks on amd, autofs,
and autong
III.A.4 [ ] [ ] Run connectathon locking tests against NFS server
for 2 weeks
III.E.1 [ ] [OSDL] Test short & long term local network failure
(unplugged cable, ifdown eth0, etc.)
III.E.2 [ ] [OSDL] Test short & long duration remote network partition
III.E.3 [ ] [OSDL] Test behavior during crash/reboot of server with
clients holding various states
V.D.1 [ ] [ ] Review Authentication/ACL feature design
V.E.1 [ ] [ ] Ensure a functionality test sufficiently tests
Authentication/ACL
Milestone 2: Drill Down for One Use Case
This milestone strives to push NFSv4 through one complete use case, to give it some thorough exercise and scaling, and to establish a "case study" we can use as an example of NFSv4's value.
I.E.5 [ ] [ ] Verify sufficient monitoring functionality within
Ethereal
I.F.1 [ ] [ ] Client notification to server of locking, write,
read, etc.
I.P.1 [ ] [OSDL] Database functionality on NFS
I.L.1 [ ] [ ] Test compatibility with TCP protocol
IV.A.7 [ ] [ ] NFSv3 vs. v4: Metadata - open/close intensive
workload
IV.A.8 [ ] [ ] NFSv3 vs. v4: Metadata - directory scanning
IV.A.9 [ ] [ ] NFSv3 vs. v4: Metadata - create/delete
IV.A.10 [ ] [ ] NFSv3 vs. v4: Metadata - changing attributes
(chown, chmod) while dir scanning
IV.E.1 [ ] [Bull] Test performance with large numbers of small (<4k)
files
IV.E.2 [ ] [Bull] Test performance with a few very large (>1G) files
IV.F.4 [ ] [Bull] Measure memory/network/CPU efficiency of client
for fixed workload
IV.G.1 [ ] [ ] Verify server scalability with clients generating
various basic requests (ACCESS, GETATTR, et al)
IV.G.2 [ ] [ ] Verify server scalability with clients using
compound requests
V.D.6 [ ] [ ] Penetration testing for client callback
implementation
V.E.6 [ ] [ ] Ensure a functionality test sufficiently covers
penetration testing for client callback
implementation
Milestone 3: Enterprise Usability
This milestone focuses on testing that verifies "basic" usability of NFSv4 in data centers. It strives to establish that NFSv4 is able to perform basic functions in enterprise-class deployments.
I.F.2 [ ] [ ] Reboot recovery
I.F.4 [ ] [ ] Open with shares / deny
I.F.5 [ ] [ ] Bumping a sequence ID
I.F.6 [ ] [ ] Network partition recovery
I.F.8 [ ] [ ] Locking (Non-blocking locks)
I.H.3 [ ] [ ] Verify compatibility with Kerberos
I.H.4 [ ] [ ] Verify compatibility with Ipsec
I.H.5 [ ] [ ] Verify compatibility with POSIX ACLs
I.H.6 [ ] [ ] Verify compatibility with NFS ACLs
II.B.1 [ ] [Bull] Interoperability between 32-bit and 64-bit for
client and server: IA32/AIX-PPC, IA32/Linux-PPC
II.B.2 [ ] [Bull] Interoperability between little endian and big
endian
II.C.1 [ ] [Bull] Interoperability for Linux IA-32 client ? Solaris
10 server
II.C.4 [ ] [Bull] Interoperability for Linux IA-32 client ? AIX 5.3
server
III.D.7 [ ] [ ] Test correctness of NFS client when backed by a
large (>100GB) cachefs
IV.E.5 [ ] [ ] NFS "Cluster" scenario with 1000+ clients and
several servers
V.A.7 [ ] [ ] Audit the RPC authentication code (gssd, authsys,
etc.)
V.D.2 [ ] [ ] Review each security flavor feature design:
Krb5, Spkm
V.E.2 [ ] [ ] Ensure a functionality test sufficiently covers
each security flavor
Milestone 4: Enterprise Readiness
This milestone builds on the previous one by ensuring that NFSv4 will behave well and perform robustly under typical enterprise-class loads.
III.B.2 [ ] [ ] Test stability of client in out of memory
situation
III.B.3 [ ] [ ] Test stability of client in out of disk space on
server situation
III.B.4 [ ] [ ] Test stability of client in out of inode situation
III.B.5 [ ] [ ] Test stability of client in out of swap space
situation
III.B.6 [ ] [ ] Test stability of server in out of pid situation
III.B.7 [ ] [ ] Test stability of server in out of memory
situation
III.B.8 [ ] [ ] Test stability of server in out of disk space
situation
III.B.9 [ ] [ ] Test stability of server in out of inode situation
III.B.10 [ ] [ ] Test stability of server in out of swap space
situation
III.D.1 [ ] [ ] Find maximum number of connections to Linux IA-32
server
III.D.4 [ ] [Bull] Find maximum number of mounted file systems on
client
III.E.4 [ ] [ ] Test multiple clients using, locking, etc. same
files
III.E.5 [ ] [ ] Test behavior of server with failed storage device
III.E.6 [ ] [ ] Test behavior during crash of client with open
delegations and locks
III.E.7 [ ] [ ] Test recovery from denied permission
III.E.8 [ ] [ ] Test recovery from JUKEBOX/DELAY
III.E.9 [ ] [ ] Test recovery from ESTALE
III.E.10 [ ] [ ] Test server callback mechanism (c.f. III.E.1,
III.E.2)
III.G.2 [ ] [ ] Test concurrent access tests for races in
automounter
IV.G.4 [ ] [Bull] Measure effects of increasing number of files
IV.G.5 [ ] [Bull] Measure effects of increasing file size
(with/without cache)
IV.G.6 [ ] [Bull] Measure effects when increasing size of
on-the-wire NFS read or write operations
V.J.1 [ ] [Bull] Identify security issues assuming attack from
client-side