Improving Log-Structured File System Performance by Utilizing Non-Volatile Memory

비휘발성 메모리를 이용한 로그 구조 파일 시스템의 성능 향상

  • 강양욱 (홍익대학교 컴퓨터공학과) ;
  • 최종무 (단국대학교 정보컴퓨터학부) ;
  • 이동희 (서울시립대학교 컴퓨터과학부) ;
  • 노삼혁 (홍익대학교 컴퓨터공학과)
  • Published : 2008.07.15

Abstract

Log-Structured File System(LFS) is a disk based file system that is optimized for improving the write performance. LFS gathers dirty data in memory as long as possible, and flushes all dirty data sequentially at once. In a real system, however, maintaining dirty data in memory should be flushed into a disk to meet file system consistency issues even if more memory is still available. This synchronizations increase the cleaner overhead of LFS and make LFS to write down more metadata into a disk. In this paper, by adapting Non-volatile RAM(NV-RAM) we modifies LFS and virtual memory subsystem to guarantee that LFS could gather enough dirty data in the memory and reduce small disk writes. By doing so, we improves the performance of LFS by around 2.5 times than the original LFS.

로그 구조 파일 시스템(Log-Structured File System, LFS)은 변경된 데이타를 메모리에 충분히 모아서 한번에 순차 쓰기로 디스크에 기록함으로써 높은 쓰기 성능을 실현한 파일 시스템이다. 그러나 실제 시스템에서는 여전히 디스크와 메모리 상의 일관성을 위해서 동기화가 발생하며 변경된 데이타를 충분히 메모리에 모으지 못한 채 디스크로 쓰기가 발생하는 모습을 보인다. 자주 발생되는 쓰기는 클리너의 오버헤드를 증가시키고, 더 많은 메타데이타를 기록하게 한다. 본 연구에서는 비휘발성 메모리를 이용해서 동기화를 없애고, 작은 단위의 쓰기를 효과적으로 활용하도록 LFS와 운영체제의 관련된 서브 시스템들을 변경하였다. 이를 통하여 DRAM만 있는 LFS에 비해서 256M의 NVRAM을 가진 시스템에서 약 2.5배의 성능 향상을 보였다.

Keywords

References

  1. Marshall Kirk McKusick, Marshall K. Mckusick, William N. Joy, Samuel J. Leffler, Robert S. Fabry, "A Fast File System for UNIX," Computer Systems, Vol.2, No.3, pp. 181-197, 1984 https://doi.org/10.1145/989.990
  2. Margo Seltzer, Keith Bostic, Marshall Kirk McKusick, Carl Staelin, "An Implementation of a Log-Structured File System for UNIX," In the Proceedings of the Winter 1993 USENIX Conference, pp. 307-326, 1993
  3. Mendel Rosenblum and John K. Ousterhout, The Design and Implementation of a Log-Structured File System, ACM Transactions on Computer Systems, Vol.10, No.1, pp. 26-52, 1992 https://doi.org/10.1145/146941.146943
  4. Mary Baker, Satoshi Asami, Etienne Deprit, John Ousterhout, Margo Seltzer, "Non-volatile memory for fast, reliable file systems," In the Proceedings of the 5th International Conference on Architectural Support for Programming Languages and Operating Systems, pp. 10-22, October 1992
  5. http://www.etnews.co.kr/newswire/press_view.html?id= 0184587, April, 2007
  6. Yangwook Kang, Jongmoo Choi, Donghee Lee, Sam H. Noh, "Design and Implementation of the Log-Structured File System Utilizing Nonvolatile Memory," In the Proceedings of the Korean Computer Conference (B) Vol.34, No.1, pp. 310-314, June 2007
  7. Charles D. Cranor and Gurudatta M. Parulkar, "The UVM Virtual Memory System," In the Proceedings of the USENIX Annual Technical Conference, pp. 117-130, 1999
  8. Chuck Silvers, "UBC: An Efficient Unified I/O and Memory Caching Subsystem for NetBSD," In the Proceedings of the Freenix 2000 USENIX Annual Technical Conference, pp. 285-290, 2000