ChucksProjects
From Linux NFS
Revision as of 17:25, 15 October 2007 by Chucklever  (Talk | contribs)
				
			Stuff I'm playing with, thinking about, or watching admiringly...
Mount
Testing and documentation
- Add real unit testing
 - Construct a set of specifications for mount behavior
 - Rewrite nfs(5)
 - Test "-o remount" -- handled by /usr/sbin/mount instead of /sbin/mount.nfs?
 
UI clean up
-  Make error reporting more useful
- Some error messages are too specific ("RPC Error: RPC program not available" is meaningless to most users)
 - Some error messages are too general ("mount.nfs: mount failed" doesn't explain how to rectify the problem)
 
 - Complete internationalization
 
New features
- Implement support for IPv6
 - Implement support for server failover options
 - Add scalable mounting (more efficient use of network resources; mountd connection caching)
 - Properly implement break-back retries
 
NFS support for IPv6 networking
- First step to getting the NFS client is getting the delegation / NLM stuff working
 - Port and send in RPC client stuff
 - Review svcauth_unix stuff to remove open-coded IPv4 address dependencies
 - Discuss on list whether generic address support (rather than only IPv4/6 support) is desired in the RPC server
 - Track where we are with user-space tools and libraries
 - Existing NFS IPv6 code for the client
 
Rebuild the NFS server and client XDR layer from the ground up
- More complete type checking and error reporting
 - Each function called with a simplified virtual API
 - All functions re-entrant so we can remove the BKL
 
Eliminate BKL from NFS client
- Remove BKL dependency from attribute cache
 - Remove BKL usage from XDR layer
 - Remove BKL usage from RPC client and GSS
 - Eliminate BKL in NFS client proper
 
From OmniOutliner
-  Bruce found that the BKL is held while calling normal XDR encoding and decoding functions
- Why did I miss the existence BKL around XDR encoding?
 - Generic xdr.c: look for anything caching an xdr_buf, especially during decode
 -  Still need an audit of NFSv4 XDR
- Copying state ids
 - Migration - file handles can change
 - Theoretically the client ID is in danger as well
 
 
 - Trond has RCU'd lots of stuff shared with NFSv4 XDR
 - and also the RPC auth cache
 - Radix trees are now RCU -- so write path locking might be relaxed
 
NFS client build testing
- Builds kernel with "allmodconfig" and "allyesconfig"
 - Automated - no user intervention once started
 - Tests all patches in a series
 - Later add more static analysis for each patch
 - Need to add post-analysis tool that compares the build logs
 - Need to eliminate as many spurious warnings generated by the tool chain as possible
 
Advanced file sync tool
- multi-purpose generic file system syncer - a file synchronization tool that runs on most Unix-flavored operating systems
 - one-way or bidirectional data synchronization
 - syncs file changes periodically or continuously
 - supports disconnected operation (later playback of changes)
 - can use advanced file system features to improve efficiency
 - the basic idea is to use an inotify-like mechanism to make the detection of file and directory modification more efficient
 
Unifying storage management on Linux
- A easy-to-use graphical tool that can manage storage devices and pools, and file systems
 - Includes a wizard (like Roxio or Toast) that can start different applications depending on what is to be accomplished
 - Make it easy to create, manage, and back up very large data storage pools
 - Make it easy to export and secure data
 - Provide a framework for thinking about and documenting data management
 
Linux De-duplication appliance
- Provide high capacity near-line storage for inexpensive disk-based backup
 - Based on content-addressable storage on top of RAID 6
 - Looks like one or more very large OSD LUNs or a very large NFS server
 
NFS client performance tools
- Replace jiffies-based timestamps with ktime in the RPC client for more precise latency measurement
 - Consider adding existing Python utilities to nfs-utils
 - Update vmstat and iostat tools to provide statistics about NFS mount points
 - Construct new tools that provide fine-grained data about NFS mount points