ACM Home Page
Please provide us with feedback. Feedback
On incremental file system development
Full text PdfPdf (260 KB)
Source ACM Transactions on Storage (TOS) archive
Volume 2 ,  Issue 2  (May 2006) table of contents
Pages: 161 - 196  
Year of Publication: 2006
ISSN:1553-3077
Authors
Erez Zadok  Stony Brook University, Stony Brook, NY
Rakesh Iyer  Stony Brook University, Stony Brook, NY
Nikolai Joukov  Stony Brook University, Stony Brook, NY
Gopalan Sivathanu  Stony Brook University, Stony Brook, NY
Charles P. Wright  IBM T. J. Waston Research Center, Yorktown Heights, NY
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 28,   Downloads (12 Months): 217,   Citation Count: 6
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Review this Article  
Save this Article to a Binder    Display Formats: BibTex  EndNote ACM Ref   
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1149976.1149979
What is a DOI?

ABSTRACT

Developing file systems from scratch is difficult and error prone. Using layered, or stackable, file systems is a powerful technique to incrementally extend the functionality of existing file systems on commodity OSes at runtime. In this article, we analyze the evolution of layering from historical models to what is found in four different present day commodity OSes: Solaris, FreeBSD, Linux, and Microsoft Windows. We classify layered file systems into five types based on their functionality and identify the requirements that each class imposes on the OS. We then present five major design issues that we encountered during our experience of developing over twenty layered file systems on four OSes. We discuss how we have addressed each of these issues on current OSes, and present insights into useful OS and VFS features that would provide future developers more versatile solutions for incremental file system development.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
Anderson, D., Chase, J., and Vadhat, A. 2000. Interposed request routing for scalable network storage. In Proceedings of the 4th USENIX Symposium on Operating System Design and Implementation (OSDI) (San Diego, CA). 259--272.
 
2
Appavoo, J., Auslander, M., DaSilva, D., Edelsohn, D., Krieger, O., Ostrowski, M., Rosenburg, B., Wisniewski, R., and Xenidis, J. 2002. K42 overview. www.research.ibm.com/K42/
 
3
4
 
5
Ayers, L. 1997. E2compr: Transparent file compression for Linux. Linux Gazette 18. www.linuxgazette.com/issue18/e2compr.html
 
6
Balzer, R. and Goldman, N. 1999. Mediating connectors. In Proceedings of the 19th IEEE International Conference on Distributed Computing Systems Workshop (Austin, TX). 72--77.
7
 
8
 
9
Cluster File Systems, Inc. 2002. Lustre: A scalable, high-performance file system. www.lustre.org/docs/whitepaper.pdf
10
11
12
 
13
Ghormley, D. P., Petrou, D., Rodrigues, S. H., and Anderson, T. E. 1998. SLIC: An extensibility system for commodity operating systems. In Proceedings of the Annual USENIX Technical Conference. (Berkeley, CA). 39--52.
 
14
Goh, E.-J., Shacham, H., Modadugu, N., and Boneh, D. 2003. Sirius: Securing remote untrusted storage. In Proceedings of the 10th Network and Distributed System Security (NDSS) Symposium. (San Diego, CA). 131--145.
 
15
Guy, R. G., Heidemann, J. S., Mak, W., Page Jr., T. W., Popek, G. J., and Rothmeier, D. 1990. Implementation of the Ficus replicated file system. In Proceedings of the Summer USENIX Technical Conference. (Anaheim, CA). 63--71.
 
16
Halcrow, M. A. 2004. Demands, solutions, and improvements for Linux filesystem security. In Proceedings of the 2004 Linux Symposium (Ottawa, Canada). 269--286.
 
17
Harder, B. 2001. Microsoft Windows XP system restore. http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnwxp/html/windowsxpsystemrestore.asp
 
18
Heidemann, J. S. and Popek, G. J. 1991. A layered approach to file system development. Tech. Rep. CSD-910007, UCLA.
19
20
 
21
Hofmeyr, S. A., Somayaji, A., and Forrest, S. 1998. Intrusion detection using sequences of system calls. J. Comput. Security 6, 151--180.
 
22
Indra Networks. 2004. StorCompress. www.indranetworks.com/StorCompress.pdf
23
 
24
Joukov, N., Rai, A., and Zadok, E. 2005. Increasing distributed storage survivability with a stackable raid-like file system. In Proceedings of the 2005 IEEE/ACM Workshop on Cluster Security, in conjunction with the 5th IEEE/ACM International Symposium on Cluster Computing and the Grid (CCGrid) (Cardiff, UK). 82--89.
 
25
Kashyap, A., Dave, J., Zubair, M., Wright, C. P., and Zadok, E. 2004. Using the Berkeley database in the Linux kernel. www.fsl.cs.sunysb.edu/project-kbdb.html
 
26
 
27
Katcher, J. 1997. PostMark: A new filesystem benchmark. Tech. Rep. TR3022, Network Appliance. www.netapp.com/tech_library/3022.html
28
29
 
30
Kleiman, S. R. 1986. Vnodes: An architecture for multiple file system types in Sun UNIX. In Proceedings of the Summer USENIX Technical Conference. (Atlanta, GA). 238--247.
 
31
Klotzbücher, M. 2004. Development of a Linux overlay filesystem for software updates in embedded systems. M.S. thesis, Universität Konstanz, Konstanz, Germany.
 
32
MacDonald, J., Reiser, H., and Zarochentcev, A. 2002. Reiser4 transaction design document. www.namesys.com/txn-doc.html
 
33
 
34
Microsoft Corporation. 2004a. File system filter manager: Filter driver development guide. www.microsoft.com/whdc/driver/filterdrv/default.mspx
 
35
Microsoft Corporation. 2004b. Installable file system development kit. www.microsoft.com/whdc/devtools/ifskit/default.mspx
 
36
Microsoft Corporation. 2004c. Microsoft MSDN WinFS documentation. http://msdn.microsoft.com/data/winfs/
 
37
Miretskiy, Y., Das, A., Wright, C. P., and Zadok, E. 2004. Avfs: An on-access antivirus file system. In Proceedings of the 13th USENIX Security Symposium (Security) (San Diego, CA). 73--88.
 
38
 
39
 
40
Network Associates Technology, Inc. 2004. McAfee. www.mcafee.com
 
41
Nugent, J., Arpaci-Dusseau, A., and Arpaci-Dusseau, R. 2003. Controlling your PLACE in the file system with gray-box techniques. In Proceedings of the Annual USENIX Technical Conference (San Antonio, TX). 311--323.
 
42
 
43
Pendry, J. S. and McKusick, M. K. 1995. Union mounts in 4.4BSD-Lite. In Proceedings of the USENIX Technical Conference on UNIX and Advanced Computing Systems (New Orleans, LA). 25--33.
 
44
Phillips, D. 2001. A directory index for EXT2. In Proceedings of the 5th Annual Linux Showcase and Conference (Oakland, CA). 173--182.
 
45
Rosenthal, D. S. H. 1990. Evolving the Vnode interface. In Proceedings of the Summer USENIX Technical Conference. (Anaheim, CA). 107--118.
 
46
Rosenthal, D. S. H. 1992. Requirements for a “stacking” vnode/VFS interface. Tech. Rep. SD-01-02-N014, UNIX International.
 
47
Schaefer, M. 2000. The migration filesystem. www.cril.ch/schaefer/anciens_projets/mfs.html
 
48
Seltzer, M. and Yigit, O. 1991. A new hashing package for UNIX. In Proceedings of the Winter USENIX Technical Conference (Dallas, TX). 173--184.
 
49
Shanahan, D. P. 2000. CryptosFS: Fast cryptographic secure nfs. M.S. thesis, University of Dublin, Dublin, Ireland.
 
50
Shepler, S., Callaghan, B., Robinson, D., Thurlow, R., Beame, C., Eisler, M., and Noveck, D. 2000. NFS version 4 protocol. Tech. Rep. RFC 3010, Network Working Group. Dec.
 
51
 
52
Skinner, G. C. and Wong, T. K. 1993. “Stacking” vnodes: A progress report. In Proceedings of the Summer USENIX Technical Conference (Cincinnati, OH). 161--174.
 
53
SMCC. 1992. Lofs---Loopback Virtual File System. Sun Microsystems, Inc. SunOS 5.5.1 Reference Manual, Section 7.
 
54
 
55
Sophos. 2004. Sophos Plc. www.sophos.com
 
56
SunSoft. 1994. Cache file system (CacheFS). Tech. rep., Sun Microsystems, Inc. (Feb.)
 
57
Symantec. 2004. Norton antivirus. www.symantec.com
 
58
Szeredi, M. 2005. Filesystem in userspace. fuse.sourceforge.net
 
59
Tzachar, N. 2003. SRFS kernel module. Tech. Rep., Ben Gurion University (Sept.) www.cs.bgu.ac.il/~srfs/publications/implementation_report.pdf
60
 
61
Wright, C. P., Martino, M., and Zadok, E. 2003. NCryptfs: A secure and convenient cryptographic file system. In Proceedings of the Annual USENIX Technical Conference. (San Antonio, TX). 197--210.
 
62
 
63
 
64
Zadok, E. and Bădulescu, I. 1999. A stackable file system interface for Linux. In Proceedings of the LinuxExpo Conference. (Raleigh, NC). 141--151.
 
65
Zadok, E., Bădulescu, I., and Shender, A. 1999. Extending file systems using stackable templates. In Proceedings of the Annual USENIX Technical Conference. (Monterey, CA). 57--70.
 
66
Zadok, E. and Nieh, J. 2000. FiST: A language for stackable file systems. In Proceedings of the Annual USENIX Technical Conference. (San Diego, CA). 55--70.
 
67
Zadok, E., Osborn, J., Shater, A., Wright, C. P., Muniswamy-Reddy, K., and Nieh, J. 2004. Reducing storage management costs via informed user-based policies. In Proceedings of the 12th NASA Goddard, 21st IEEE Conference on Mass Storage Systems and Technologies (MSST) (College Park, MD). 193--197.


Collaborative Colleagues:
Erez Zadok: colleagues
Rakesh Iyer: colleagues
Nikolai Joukov: colleagues
Gopalan Sivathanu: colleagues
Charles P. Wright: colleagues