skip to main content
research-article

DFS: A file system for virtualized flash storage

Published:28 September 2010Publication History
Skip Abstract Section

Abstract

We present the design, implementation, and evaluation of Direct File System (DFS) for virtualized flash storage. Instead of using traditional layers of abstraction, our layers of abstraction are designed for directly accessing flash memory devices. DFS has two main novel features. First, it lays out its files directly in a very large virtual storage address space provided by FusionIO's virtual flash storage layer. Second, it leverages the virtual flash storage layer to perform block allocations and atomic updates. As a result, DFS performs better and is much simpler than a traditional Unix file system with similar functionalities. Our microbenchmark results show that DFS can deliver 94,000 I/O operations per second (IOPS) for direct reads and 71,000 IOPS for direct writes with the virtualized flash storage layer on FusionIO's ioDrive. For direct access performance, DFS is consistently better than ext3 on the same platform, sometimes by 20%. For buffered access performance, DFS is also consistently better than ext3, and sometimes by over 149%. Our application benchmarks show that DFS outperforms ext3 by 7% to 250% while requiring less CPU power.

References

  1. }}Agrawal, N., Prabhakaran, V., Wobber, T., Davis, J. D., Manasse, M., and Panigrahy, R. 2008. Design tradeoffs for SSD performance. In Proceedings of the USENIX Technical Conference, USENIX Association, Monterey, CA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. }}Birrell, A., Isard, M., Thacker, C., and Wobber, T. 2007. A design for high-performance flash disks. ACM Oper. Syst. Rev.41, 2 (April). Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. }}Brants, T. and Franz, A. 2006. Web 1T 5-gram version 1.Google ScholarGoogle Scholar
  4. }}Card, R., T'so, T., and Tweedie, S. 1994. The design and implementation of the second extended filesystem. In Proceedings of the 1st Dutch International Symposium on Linux.Google ScholarGoogle Scholar
  5. }}Carlson, A., Mitchell, T. M., and Fette, I. 2008. Data analysis project: Leveraging massive textual corpora using n-gram statistics. Tech. rep. CMU-ML-08-107, Machine Learning Department, Carnegie Mellon University.Google ScholarGoogle Scholar
  6. }}Douceur, J. R. and Bolosky, W. J. 1999. A large scale study of file-system contents. In Proceedings of the ACM SIGMETRICS International Conference on Measurement and Modeling of Computer Systems, ACM, New York. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. }}Douglis, F., Caceres, R., Kaashoek, M. F., Li, K., Marsh, B., and Tauber, J. A. 1994. Storage alternatives for mobile computers. In Operating Systems Design and Implementation, 25--37. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. }}FusionIO Corporation. 2009. FusionIO ioDrive specification sheet. http://www.fusionio.com/PDFs/Fusion%20Specsheet.pdf.Google ScholarGoogle Scholar
  9. }}Hitz, D., Lau, J., and Malcom, M. 2001. File system design for an nfs file server appliance. Tech. rep. TR-3002, NetAppCorp. Sept.Google ScholarGoogle Scholar
  10. }}Intel Corporation. 1998. Understanding the flash translation layer (FTL) specification.Google ScholarGoogle Scholar
  11. }}Intel Corporation. 2009. Intel X25-E SATA solid state drive. http://download.intel.com/design/flash/nand/extreme/extreme-sata-ssd-datasheet.pdf.Google ScholarGoogle Scholar
  12. }}Jo, H., Kang, J.-U., Park, S.-Y., Kim, J.-S., and Lee, K. 2006. FAB: Flash-aware buffer management policy for portable media players. IEEE Trans. Consumer Electron. 52, 2, 485--493. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. }}Kawaguchi, A., Nishioka, S., and Motoda, H. 1995. A flash-memory based file system. In Proceedings of the Winter USENIX Technical Conference. USENIX Association, Monterey, CA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. }}Kim, H. and Ahn, S. 2008. BPLRU: A buffer management scheme for improving random writes in flash storage. In Proceedings of the 6th USENIX Conference on File and Storage Technologies. USENIX Association, Monterey, CA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. }}Kim, J., Kim, J. M., Noh, S. H., Min, S. L.,, and Cho, Y. 2002. A space-efficient flash translation layer for CompactFlash systems. IEEE Trans. Consumer Electron. 48, 2, 366--375. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. }}Li, K. 1994. Towards a low power file system. Tech. Rep. CSD-94-814, University of California, Berkeley. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. }}Llanos, D. R. 2006. TPCC-UVa: An open-source TPC-C implementation for global performance measurement of computer systems. ACM SIGMOD Record 35, 4, 6--15. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. }}Manning, C. 2002. YAFFS: The NAND-specific flash file system. LinuxDevices.Org.Google ScholarGoogle Scholar
  19. }}Marsh, B., Douglis, F., and Krishnan, P. 1994. Flash memory file caching for mobile computers. In Proceedings of the 27th Hawaii International Conference on Architecture.Google ScholarGoogle Scholar
  20. }}Mathur, A., Cao, M., Bhattacharya, S., Dilger, A., Tomas, A., and Vivier, L. 2007. The new ext4 filesystem: Current status and future plans. In Proceedings of the Ottowa Linux Symposium.Google ScholarGoogle Scholar
  21. }}McKusick, M. K., Joy, W. N., Leffler, S. J., and Fabry, R. S. 1984. A fast file system for UNIX. ACM Trans. Comput. Syst. 2, 3. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. }}Norcott, W. 2009. Iozone filesystem benchmark. http://www.iozone.org.Google ScholarGoogle Scholar
  23. }}Park, S.-Y., Jung, D., Kang, J.-U., Kim, J.-S., and Lee, J. 2006. CFLRU: A replacement algorithm for flash memory. In Proceedings of the International Conference on Compilers, Architecture and Synthesis for Embedded Systems. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. }}Prabhakaran, V., Rodeheffer, T. L., and Zhou, L. 2008. Transactional flash. In Proceedings of the 8th USENIX Symposium on Operating Systems Design and Implementation. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. }}Rajimwale, A., Prabhakaran, V., and Davis, J. D. 2009. Block management in solid state devices. Unpublished Tech. rep.Google ScholarGoogle Scholar
  26. }}Rosenblum, M. and Ousterhout, J. K. 1992. The design and implementation of a log-structured file system. ACM Trans. Comput. Syst. 10, 1--15. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. }}Tanenbaum, A. S., Herder, J. N., and Bos, H. 2006. File size distribution in UNIX systems: Then and now. ACM SIGOPS Oper. Syst. Rev. 40, 1, 100--104. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. }}Transaction Processing Performance Council. 2008. TPC benchmark H: Decision support. http://www.tpc.org/tpch.Google ScholarGoogle Scholar
  29. }}Troyanskaya, O., Cantor, M., Sherlock, G., Brown, P., Hastieevor, T., Tibshirani, R., Botstein, D., and Altman, R. B. 2001. Missing value estimation methods for DNA microarrays. Bioinformatics 17, 6, 520--525.Google ScholarGoogle Scholar
  30. }}Tweedie, S. 2000. Ext3, journaling filesystem. In Proceedings of the Ottowa Linux Symposium.Google ScholarGoogle Scholar
  31. }}Ulmer, C. and Gokhale, M. 2008. Threading opportunities in high-performance flash-memory storage. In High Performance Embedded Computing.Google ScholarGoogle Scholar
  32. }}Woodhouse, D. 2001. JFFS: The journalling flash file system. In Proceedings of the Ottowa Linux Symposium.Google ScholarGoogle Scholar
  33. }}Wu, M. and Zwaenepoel, W. 1994. eNVy: A non-volatile, main memory storage system. In Proceedings of the 6th International Conference on Architectural Support for Programming Languages and Operating Systems. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. DFS: A file system for virtualized flash storage

    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 6, Issue 3
      September 2010
      165 pages
      ISSN:1553-3077
      EISSN:1553-3093
      DOI:10.1145/1837915
      Issue’s Table of Contents

      Copyright © 2010 ACM

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 28 September 2010
      • Accepted: 1 June 2010
      • Revised: 1 May 2010
      • Received: 1 April 2010
      Published in tos Volume 6, 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!