Let me first give a bit of background on what CacheFS and why it can be
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
[ 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
nfs-discuss mailing list