[email protected]
[Top] [All Lists]

[nfs-discuss] CacheFS project proposal

Subject: [nfs-discuss] CacheFS project proposal
From: Darren J Moffat
Date: Wed, 30 May 2007 10:30:51 +0100
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
nfs-discuss mailing list
[email protected]

<Prev in Thread] Current Thread [Next in Thread>