skip to main content
research-article

File system virtual appliances: Portable file system implementations

Published:20 September 2012Publication History
Skip Abstract Section

Abstract

File system virtual appliances (FSVAs) address the portability headaches that plague file system (FS) developers. By packaging their FS implementation in a virtual machine (VM), separate from the VM that runs user applications, they can avoid the need to port the file system to each operating system (OS) and OS version. A small FS-agnostic proxy, maintained by the core OS developers, connects the FSVA to whatever OS the user chooses. This article describes an FSVA design that maintains FS semantics for unmodified FS implementations and provides desired OS and virtualization features, such as a unified buffer cache and VM migration. Evaluation of prototype FSVA implementations in Linux and NetBSD, using Xen as the virtual machine manager (VMM), demonstrates that the FSVA architecture is efficient, FS-agnostic, and able to insulate file system implementations from OS differences that would otherwise require explicit porting.

References

  1. Abd-El-Malek, M., Wachs, M., Cipar, J., Sanghi, K., Ganger, G. R., Gibson, G. A., and Reiter, M. K. 2009. File system virtual appliances: Portable file system implementations. Tech. rep., Parallel Data Lab, Carnegie Mellon University.Google ScholarGoogle Scholar
  2. Barham, P., Dragovic, B., Fraser, K. , Hand, S., Harris, T., Ho, A., Neugebauer, R., Pratt, I., and Warfield, A. 2003. Xen and the art of virtualization. In Proceedings of the 9th ACM Symposium on Operating Systems Principles. 164--177. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Bershad, B. N. and Pinkerton, C. B. 1988. Watchdogs: Extending the UNIX File System. In Proceedings of the USENIX Annual Technical Conference. 267--275.Google ScholarGoogle Scholar
  4. Borden, T. L., Hennessy, J. P., and Rymarczyk, J. W. 1989. Multiple operating systems on one processor complex. IBM Syst. J. 28, 1, 104--123. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Burtsev, A., Srinivasan, K., Radhakrishnan, P., Bairavasundaram, L. N., Voruganti, K., and Goodson, G. R. 2009. Fido: Fast inter-virtual-machine communication for enterprise appliances. In Proceedings of the USENIX Annual Technical Conference. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Callaghan, B. and Lyon, T. 1989. The automounter. In Proceedings of the USENIX Annual Technical Conference. 43--51.Google ScholarGoogle Scholar
  7. Carns, P. H., Ligon III, W. B., Ross, R. B., and Thakur, R. 2000. PVFS: A parallel file system for Linux clusters. In Proceedings of the Annual Linux Showcase and Conference. 317--327. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Clark, C., Fraser, K., Hand, S., Hansen, J. G., Jul, E., Limpach, C., Pratt, I., and Warfield, A. 2005. Live migration of virtual machines. In Proceedings of the USENIX Symposium on Networked Systems Design and Implementation. 273--286. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Clements, P. and Northrop, L. 2001. Software Product Lines: Practices and Patterns. Addison-Wesley, Boston, MA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Ebling, M., Mummert, L., and Steere, D. 1994. Overcoming the network bottleneck in mobile computing. In Proceedings of the IEEE 1st Workshop on Mobile Computing Systems and Applications (WMCSA). Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Eifeldt, H. 1997. POSIX: A developer's view of standards. In Proceedings of the USENIX Annual Technical Conference. 24--24. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Eisler, M., Corbet, P., Kazar, M., Nydick, D. S., and Wagner, C. 2007. Data ONTAP GX: A scalable storage cluster. In Proceedings of the USENIX Conference on File and Storage Technologies. 23--23. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Fraser, K., Hand, S., Neugebauer, R., Pratt, I., Warfield, A., and Williams On, M. 2004. Reconstructing I/O. Tech. rep., Computer Laboratory, University of Cambridge.Google ScholarGoogle Scholar
  14. FUSE. FUSE: Filesystem In userspace. http://fuse.sourceforge.net.Google ScholarGoogle Scholar
  15. Gingell, R. A., Moran, J. P., and Shannon, W. A. 1987. Virtual memory architecture in SunOS. In Proceedings of the USENIX Annual Technical Conference. 81--94.Google ScholarGoogle Scholar
  16. Gupta, D., Cherkasova, L., Gardner, R., and Vahdat, A. 2006. Enforcing performance isolation across virtual machines in Xen. In Proceedings of the 9th ACM/IFIP/USENIX International Conference On Middleware. 342--362. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Kantee, A. 2009. Rump file systems: Kernel code reborn. In Proceedings of the USENIX Annual Technical Conference. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Katcher, J. 1997. PostMark: A new file system benchmark. Tech. rep., Network Appliance, Inc.Google ScholarGoogle Scholar
  19. Kleiman, S. R. 1986. Vnodes: An architecture for multiple file system types in Sun Unix. In Proceedings of the USENIX Annual Technical Conference. 238--247.Google ScholarGoogle Scholar
  20. LeVasseur, J., Uhlig, V., Stoess, J., and Gotz, S. 2004. Unmodified device driver reuse and improved system dependability via virtual machines. In Proceedings of the 6th Annual Symposium on Operating Systems Design and Implementation. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Mazieres, D. 2001. A toolkit for user-level file systems. In Proceedings of the USENIX Annual Technical Conference. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Meyer, D. T., Aggarwal, G., Cully, B., Lefebvre, G., Feeley, M. J., Hutchinson, N. C., and Warfiel D, A. 2008. Parallax: virtual disks for virtual machines. In Proceedings of the SIGOPS European Conference on Computer Systems (Euro-Sys). 41--54. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Padioleau, Y., Lawall, J., Hansen, R. R., and Muller, G. 2008. Documenting and automating collateral evolutions in Linux device drivers. In Proceedings of the SIGOPS European Conference on Computer Systems (Euro-Sys). 247--260. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Patterson, R. H., Gibson, G. A., Ginting, E., Stodolsky, D., and Zelenka, J. 1995. Informed prefetching and caching. In Proceedings of the ACM Symposium on Operating Systems Principles. 79--95. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Pfaff, B. 2007. Improving virtual hardware interfaces. Ph.D. thesis, Stanford University. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Pfaff, B., Garfinkel, T., and Rosenblum, M. 2006. Virtualization aware file systems: Getting beyond the limitations of virtual disks. In Proceedings of the USENIX Symposium on Networked Systems Design and Implementation. 353--366. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Redhat. 2004. Bug 111656: In 2.4.20.-20.7 memory module, rebalance laundry zone() does not respect gfp mask GFP - NOFS. https://bugzilla.redhat.com/show_bug.cgi?id=111656.Google ScholarGoogle Scholar
  28. Rosenblum, M. 2004. The reincarnation of virtual machines. Queue 2, 5, 34--40. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Rosenblum, M. and Ousterhout, J. K. 1992. The design and implementation of a log-structured file system. Trans. Comput. Syst. 10, 1, 26--52. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Sapuntzakis, C. and Lam, M. S. 2003. Virtual appliances in the collective: A road to hassle-free computing. In Proceedings of the 9th Workshop on Hot Topics in Operating Systems (HOTOS). 55--60. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Schmuck, F. and Haskin, R. 2002. GPFS: A shared-disk file system for large computing clusters. InProceedings of the USENIX Conference on File and Storage Technologies. 19. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Silvers, C. 2000. UBC: An efficient unified I/O and memory caching subsystem for NetBSD. In Proceedings of the USENIX Annual Technical Conference. 54--54. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. Smith, J. E. and Nair, R. 2005. The architecture of virtual machines. Comput. 38, 5, 32--38. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. Thekkath, C. A., Wilkes, J., and Lazowska, E. D. 1994. Techniques for file system simulation. Softw. Pract. Exper. 24, 11, 981--999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. Waldspurger, C. 2002. Memory resource management in VMware ESX server. In Proceedings of the Annual Symposium on Operating Systems Design and Implementation. 181--194. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. Warfield, A., Hand, S., Fraser, K., and Deegan, T. 2005. Facilitating the development of soft devices. In Proceedings of the USENIX Annual Technical Conference. 22--22. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. Watson, A., Benn, P., and Yoder, A. G. 2001. Multiprotocol data access: NFS, CIFS, and HTTP. Tech. rep., Network Appliance, Inc.Google ScholarGoogle Scholar
  38. Webber, N. 1993. Operating system support for portable filesystem extensions. In Proceedings of the USENIX Annual Technical Conference. 219--228.Google ScholarGoogle Scholar
  39. Weinhold, C. and Härtig, H. 2008. VPFS: Building a virtual private file system with a small trusted computing base. In Proceedings of the SIGOPS European Conference on Computer Systems (Euro-Sys). 81--93. Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. Welch, B., Unangst, M., Abbasi, Z., Gibson, G., Mueller, B., Small, J., Zelenka, J., and Zhou, B. 2008. Scalable performance of the Panasas parallel file system. In Proceedings of the USENIX Conference on File and Storage Technologies. 1--17. Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. Williamson, M. 2009. XenFS. http://wiki.xensource.com/xenwiki/XenFS.Google ScholarGoogle Scholar
  42. Yang, J., Sar, C., Twohey, P., Cadar, C., and Engler, D. 2006. Automatically generating malicious disks using symbolic execution. In Proceedings of the IEEE Symposium on Security and Privacy. 243--257. Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. Zadok, E. and Nieh, J. 2000. FiST: A language for stackable file systems. In Proceedings of the USENIX Annual Technical Conference. 55--70. Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. Zhao, X., Prakash, A., Noble, B., and Borders, K. 2006. Improving distributed file system performance in virtual machine environments. Tech. rep., University of Michigan.Google ScholarGoogle Scholar

Index Terms

  1. File system virtual appliances: Portable file system implementations

    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

    • Published in

      cover image ACM Transactions on Storage
      ACM Transactions on Storage  Volume 8, Issue 3
      September 2012
      67 pages
      ISSN:1553-3077
      EISSN:1553-3093
      DOI:10.1145/2339118
      Issue’s Table of Contents

      Copyright © 2012 ACM

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 20 September 2012
      • Accepted: 1 January 2012
      • Revised: 1 December 2011
      • Received: 1 June 2011
      Published in tos Volume 8, Issue 3

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • research-article
      • Research
      • Refereed

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader
    About Cookies On This Site

    We use cookies to ensure that we give you the best experience on our website.

    Learn more

    Got it!