- CacheFS
CacheFS is the name used for several similar software technologies designed to speed up
Network file system file access for networked computers. These technologies all operate in similar ways: they store (cache ) copies of files on a localHard disk so that if a file is accessed again, it can be done locally at much higher speeds than networks typically allow.CacheFS software is used on several
Unix-like operating systems. The original version was developed bySun Microsystems in 1993. Another version was written for Linux and released in 2003.Network filesystems are dependent on a network link and a remote server; obtaining a file from such a filesystem can be significantly slower than getting the file locally. For this reason, it can be desirable to cache data from these filesystems on a local disk, thus potentially speeding up future accesses to that data by avoiding the need to go to the network and fetch it again. The software has to check that the remote file has not changed since it was cached, but this is much faster than reading the whole file again.
Sun version
The first CacheFS implementation was developed by
Sun Microsystems and released in the Solaris 2.3 operating system release in 1993, as part of an expanded feature set for the NFS or Network File System suite known as Open Network Computing Plus (ONC+). [http://docs.sun.com/app/docs/doc/802-1985/6i5vtjeid?a=view#02.Whats_New_Quick_Reference-6 New Features in Solaris 2.4] in the Solaris 2.4 AnswerBook documentation, Sun Microsystems, 1994. Accessed Sept 10, 2007] It was subsequently used in other UNIX operating systems such asIrix (starting with the 5.3 release in 1994). [http://techpubs.sgi.com/library/tpl/cgi-bin/getdoc.cgi/0650/bks/SGI_Admin/books/ONC3NFS_AG/sgi_html/ch01.html IRIX 6.5 ONC3/NFS Administrators Guide] , Silicon Graphics, 2005. Accessed Sept 10, 2007] [http://ryan.tliquest.net/sgi/irix_versions.html#I5 History of IRIX] , Ryan Thoryk, revision of January 18, 2007. Accessed Sept 10, 2007]Linux version
Linux operating systems now commonly use a new version of CacheFS developed by David Howells. Howells appears to have rewritten CacheFS from scratch, not using Sun's original code.The Linux CacheFS currently is designed to operate on
Andrew File System and Network File System filesystems.Terminology
Because of its similar naming to FS-Cache, CacheFS'
terminology is confusing to outsiders. CacheFS is a backend for FS-Cache and handles the actual data storage and retrieval. FS-Cache passes the requests from netfs to CacheFS.FS-Cache
The cache facility/layer between the cache backends, like CacheFS, and NFS or AFS.
Cache Backends
CacheFS
CacheFS is a Filesystem for the FS-Cache facility. A block device can be used as cache by simply mounting it. Needs no special activation and is deactivated by unmounting it.
Cachefiles(daemon)
Daemon using an existing filesystem (
Ext3 with user_xattr) as cache. Cache is bound with "cachefilesd -s".Project status
Project status unknown.
Features
The facility can be conceptualised by the following
diagram :The facility (known as FS-Cache) is designed to be as transparent as possible to a user of the system. Applications should just be able to use NFS files as normal, without any knowledge of there being a cache.
References
See also
* [http://people.redhat.com/~dhowells/fscache/fscache-ols2006.odp Fscache-ols2006 Presentation]
* [http://people.redhat.com/~dhowells/cachefs/ D.Howells@Red Hat]
* [http://people.redhat.com/steved/fscache/ Steve D.@Red Hat]
* [http://www.redhat.com/mailman/listinfo/linux-cachefs Red Hat CacheFS mailinglist]
* [http://gentoo-wiki.com/HOWTO_FS-Cache Gentoo FS-Cache howto] Outdated articles?
* [http://lwn.net/Articles/100321/ LWN.NET] A general caching filesystem
* [http://lwn.net/Articles/99597/ LWN.NET ] open source fork of the
Wikimedia Foundation. 2010.