DOI QR코드

DOI QR Code

고속 저장 장치를 위한 입출력 스택 최적화

Optimizing I/O Stack for Fast Storage Devices

  • 한혁 (동덕여자대학교 컴퓨터학과)
  • 투고 : 2016.01.05
  • 심사 : 2016.03.21
  • 발행 : 2016.05.28

초록

최근 클라우드 컴퓨팅, 사회 관계망 서비스 등의 분야에서 고속 저장 장치에 대한 수요가 크게 증가하고 있다. 성능이 우수한 고속 저장 장치가 개발되고 있지만 현재 리눅스 운영체제의 입출력 스택은 하드 디스크 드라이브를 고려해서 설계되었기 때문에 고속 저장 장치를 충분히 활용하고 있지 못하다. 이 논문에서는 고속 저장 장치의 입출력 대역폭과 입출력 지연시간을 최대로 활용할 수 있는 최적화된 입출력 스택을 제안한다. 이를 위해 기존 리눅스의 블록 입출력 계층을 새로운 인터페이스를 가지는 입출력 계층으로 대체하고 최적화한다. 제안된 입출력 계층은 기존의 하드 디스크 드라이브를 고려한 블록 계층을 우회하고 디바이스 드라이버를 최적화하여 고속 저장 장치의 성능을 최대한 이용할 수 있게 해준다. 또한, 리눅스의 ext2/ext4 파일 시스템을 제안된 입출력 계층 위에서 동작할 수 있도록 최적화하였고, 벤치마크 실험 결과를 통해서 제안하는 입출력 스택은 기존 리눅스 입출력 스택과 비교하여 1.7배 정도의 성능 향상이 있음을 확인할 수 있었다.

Recently, the demand for fast storage devices is rapidly increasing in cloud platforms, social network services, etc. Despite the development of fast storage devices, the traditional Linux I/O stack is not able to exploit the full extent of the performance improvement since it has been optimized for disk-based storage devices. In this paper, we propose an optimized I/O stack which can fully utilize the I/O bandwidth and latency of fast storage devices. To this end, we design a new I/O interface to replace the current block I/O interface and optimize our I/O interface. Our optimized I/O interface bypasses operations/layers in block I/O subsystems of the current Linux I/O stack to fully exploit fast storage devices. We also optimize the Linux file systems such as ext2 and ext4 to run on our I/O interface. We evaluate our I/O stack with multiple benchmarks and the experimental results show that our I/O stack achieves 1.7 times better throughput compared to traditional Linux I/O stack.

키워드

참고문헌

  1. A. Huffman, "NVM Express Overview & Ecosystem Update," In Proceedings of Flash Memory Summit 2013.
  2. Bruce L. Worthington, Gregory R. Ganger, and Yale N. Patt., "Scheduling algorithms for modern disk drives," In Proceedings of the 1994 ACM SIGMETRICS conference on Measurement and modeling of computer systems (SIGMETRICS '94), 1994.
  3. Adrian M. Caulfield, Todor I. Mollov, Louis Alex Eisner, Arup De, Joel Coburn, and Steven Swanson, "Providing safe, user space access to fast, solid state disks," ASPLOS 2012.
  4. Adrian M. Caulfield, Arup De, Joel Coburn, Todor I. Mollow, Rajesh K. Gupta, and Steven Swanson, "Moneta: A High-Performance Storage Array Architecture for Next-Generation, Non-volatile Memories," MICRO 2010, 2010.
  5. Joel Coburn, Trevor Bunker, Meir Schwarz, Rajesh Gupta, and Steven Swanson, "From ARIES to MARS: transaction support for next-generation, solid-state drives," In Proceedings of the Twenty-Fourth ACM Symposium on Operating Systems Principles (SOSP '13), 2013.
  6. Dong In Shin, Young Jin Yu, Hyeong S. Kim, Jae Woo Choi, Do Yung Jung, and Heon Y. Yeom, "Dynamic interval polling and pipelined post I/O processing for low-latency storage class memory," In Proceedings of the 5th USENIX conference on Hot Topics in Storage and File Systems, 2013.
  7. J. Yang, D. B. Minturn, and F. Hady, "When poll is better than interrupt," In Proceedings of the 10th USENIX Conference on File and Storage Technologies, 2012.
  8. Eric Seppanen, Matthew T. O'Keefe, and David J. Lilja, "High performance solid state storage under Linux," In Proceedings of the 2010 IEEE 26th Symposium on Mass Storage Systems and Technologies, 2010.
  9. X. Wu and A. L. N Reddy, "SCMFS: A file system for storage class memory," In Proceedings of 2011 International Conference for High Performance Computing, Networking, Storage and Analysis, SC '11.
  10. J. Condit, E. B. Nightingale, C. Frost, E. Ipek, B. Lee, D. Burger, and D. Coetzee, "Better I/O through byte-addressable, persistent memory," In Proceedings of the ACM SIGOPS 22nd Symposium on Operating Systems Principles, 2009.
  11. Shuang Liang, Ranjit Noronha, and Dhabaleswar K. Panda, "Swapping to remote memory over InfiniBand: An Approach using a High Performance Network Block Device," In Proceedings of the 2005 IEEE Cluster Computing.
  12. TailwindStorage, "Extreme 3804, http://www.taejin.co.kr"
  13. FIO Benchmark, "http://freecode.com/projects/fio"
  14. FileBench Benchmark, "http://filebench.sourceforge.net/"
  15. BenchmarkSQL, "http://sourceforge.net/projects/benchmarksql"