Let me first give a bit of background on what CacheFS and why it can be 
so useful.

CacheFS has been around in Solaris for quite some time now.  It allows 
you to have a local cache of some other filesystem.  It officially 
supports caching of NFSv2, NFSv3 and hsfs (CDs).  The original intent 
was to avoid using the network because the network could for various 
reasons be slower than a local copy.  Yet at the same time get the 
benfits of a centrally managed NFS service (lets just ignore the use 
with removable media).

CacheFS was put to great use in the now dead AutoClient product, this 
allowed a Solaris system to be essentially a diskless client (so central 
control over the OS patch management and install) but get the 
performance of a locally installed system by caching / and /usr onto a 
local disk.  When you booted the system you could tell it to flush the 
cache and start from fresh, we even supported booing from the local 
cache when the network was done.

So where are we today ?

CacheFS still exists but it is effectively on "life support" at this 
time.  AutoClient isn't supported on Solaris 10 or Solaris Express and 
probably doesn't work post SMF even if you manually set it up.
CacheFS doesn't support NFSv4.

I think "we" need to do something about this.  CacheFS is a great 
technology for mobile users since it provides away to keep the same home 
directory on your laptop and on the network.

One of the major problems with CacheFS though is the internals of how it 
works and the layout of the cache since it is all block/inode based 
rather than full files (great idea for its original intended use though).

I'd like to propose that the laptop and NFS communities endorse a 
project to bring cachefs functionality into the current era.  The 
project will start by examining the current CacheFS functionality, also 
examine the functionality available on Linux and gather requirements for 
a current system.  Once we have that we can then determine how to proceed.

There are two things I'd like to consider for helping manage the cache 
one is using rsync the other is using ZFS send/recv.  But lets not 
preempt things yet and instead see if there is interest in starting such 
a project.

[ BTW for my sins I do have cachefs code experience, in fact my very 
first putback into Solaris was fixing a cachefs bug! ]

-- 
Darren J Moffat

Reply via email to