skip to main content
article

Versatility and Unix semantics in namespace unification

Published:01 February 2006Publication History
Skip Abstract Section

Abstract

Administrators often prefer to keep related sets of files in different locations or media, as it is easier to maintain them separately. Users, however, prefer to see all files in one location for convenience. One solution that accommodates both needs is virtual namespace unification---providing a merged view of several directories without physically merging them. For example, namespace unification can merge the contents of several CD-ROM images without unpacking them, merge binary directories from different packages, merge views from several file servers, and more. Namespace unification can also enable snapshotting by marking some data sources read-only and then utilizing copy-on-write for the read-only sources. For example, an OS image may be contained on a read-only CD-ROM image---and the user's configuration, data, and programs could be stored in a separate read-write directory. With copy-on-write unification, the user need not be concerned about the two disparate file systems.It is difficult to maintain Unix semantics while offering a versatile namespace unification system. Past efforts to provide such unification often compromised on the set of features provided or Unix compatibility---resulting in an incomplete solution that users could not use.We designed and implemented a versatile namespace unification system called Unionfs. Unionfs maintains Unix semantics while offering advanced namespace unification features: dynamic insertion and removal of namespaces at any point in the merged view, mixing read-only and read-write components, efficient in-kernel duplicate elimination, NFS interoperability, and more. Since releasing our Linux implementation, it has been used by thousands of users and over a dozen Linux distributions, which helped us discover and solve many practical problems.

References

  1. AT&T Bell Laboratories. 1995. Plan 9---Programmer's Manual. AT&T Bell Laboratories.]]Google ScholarGoogle Scholar
  2. Ellard, D. and Seltzer, M. 2003. NFS tricks and benchmarking traps. In Proceedings of the Annual USENIX Technical Conference, FREENIX Track (San Antonio, Tex.), 101--114.]] Google ScholarGoogle Scholar
  3. Flouris, M. D. and Bilas, A. 2004. Clotho: Transparent data versioning at the block I/O level. In Proceedings of the 12th NASA Goddard, 21st IEEE Conference on Mass Storage Systems and Technologies (MSST 2004). College Park, Md. 315--328.]]Google ScholarGoogle Scholar
  4. Fraser, T., Badger, L., and Feldman, M. 1999. Hardening COTS software with generic software wrappers. In Proceedings of the 1999 IEEE Symposium on Security and Privacy, 2--16.]]Google ScholarGoogle Scholar
  5. 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, 63--71.]]Google ScholarGoogle Scholar
  6. Heidemann, J. S. and Popek, G. J. 1994. File system development with stackable layers. ACM Trans. Comput. Syst. 12, 1 (Feb.), 58--89.]] Google ScholarGoogle Scholar
  7. Hendricks, D. 1990. A filesystem for software development. In Proceedings of the USENIX Summer Conference (Anaheim, Calif.), 333--340.]]Google ScholarGoogle Scholar
  8. Hitz, D., Lau, J., and Malcolm, M. 1994. File system design for an NFS file server appliance. In Proceedings of the USENIX Winter Technical Conference (San Francisco, Calif.), 235--245.]] Google ScholarGoogle Scholar
  9. Joukov, N., Wright, C. P., and Zadok, E. 2004. FSprof: An in-kernel file system operations profiler. Tech. Rep. FSL-04-06, Computer Science Department, Stony Brook University. www.fsl.cs.sunysb.edu/docs/aggregate_stats-tr/aggregate_stats.pdf.]]Google ScholarGoogle Scholar
  10. Kamp, P. H. and Watson, R. N. M. 2000. Jails: Confining the omnipotent root. In Proceedings of the 2nd International System Administration and Networking Conference (SANE2000). Maastricht, The Netherlands.]]Google ScholarGoogle Scholar
  11. Katcher, J. 1997. PostMark: A new filesystem benchmark. Tech. Rep. TR3022, Network Appliance. www.netapp.com/tech_library/3022.html.]]Google ScholarGoogle Scholar
  12. Korn, D. G. and Krell, E. 1990. A new dimension for the Unix file system. Softw. Prac. Expe., 19--34.]] Google ScholarGoogle Scholar
  13. McKusick, M. K. and Ganger, G. R. 1999. Soft updates: A technique for eliminating most synchronous writes in the fast filesystem. In Proceedings of the Annual USENIX Technical Conference, FREENIX Track (Monterey, Calif.), 1--18.]] Google ScholarGoogle Scholar
  14. OpenBSD. 2005. OpenSSH. www.openssh.org.]]Google ScholarGoogle Scholar
  15. 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, 25--33.]] Google ScholarGoogle Scholar
  16. Pendry, J. S., Williams, N., and Zadok, E. 2003. Am-utils User Manual, 6.1b3 ed. www.am-utils.org.]]Google ScholarGoogle Scholar
  17. Peterson, Z. and Burns, R. 2005. Ext3cow: A time-shifting file system for regulatory compliance. Trans. Storage 1, 2, 190--212.]] Google ScholarGoogle Scholar
  18. Roselli, D., Lorch, J. R., and Anderson, T. E. 2000. A comparison of file system workloads. In Proceedings of the Annual USENIX Technical Conference (San Diego, Calif.), 41--54.]] Google ScholarGoogle Scholar
  19. Rosenthal, D. S. H. 1990. Evolving the Vnode interface. In Proceedings of the Summer USENIX Technical Conference, 107--18.]]Google ScholarGoogle Scholar
  20. Spadavecchia, J. and Zadok, E. 2002. Enhancing NFS cross-administrative domain access. In Proceedings of the Annual USENIX Technical Conference, FREENIX Track (Monterey, Calif.), 181--194.]] Google ScholarGoogle Scholar
  21. 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, Tex.), 197--210.]]Google ScholarGoogle Scholar
  22. Zadok, E. and Nieh, J. 2000. FiST: A language for stackable file systems. In Proceedings of the Annual USENIX Technical Conference (San Diego, Calif.), 55--70.]] Google ScholarGoogle Scholar

Index Terms

  1. Versatility and Unix semantics in namespace unification

            Recommendations

            Comments

            Login options

            Check if you have access through your login credentials or your institution to get full access on this article.

            Sign in

            Full Access

            PDF Format

            View or Download as a PDF file.

            PDF

            eReader

            View online with eReader.

            eReader