ChucksProjects

From Linux NFS

Revision as of 02:45, 19 August 2007 by Chucklever (Talk | contribs)
Jump to: navigation, search

Stuff I'm playing with, thinking about, or watching admiringly...

Contents

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

More notes

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

More notes

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


More notes

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

More notes

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

More notes

Construct NFS client performance tools based on /proc/self/mounstats

  • Update vmstat and iostat tools to provide statistics about NFS mount points
  • Construct new tools that provide fine-grained data about NFS mount points

Learn more about Object Storage Devices

Personal tools