초록
최근 클라우드 컴퓨팅, 사회 관계망 서비스 등의 분야에서 고속 저장 장치에 대한 수요가 크게 증가하고 있다. 성능이 우수한 고속 저장 장치가 개발되고 있지만 현재 리눅스 운영체제의 입출력 스택은 하드 디스크 드라이브를 고려해서 설계되었기 때문에 고속 저장 장치를 충분히 활용하고 있지 못하다. 이 논문에서는 고속 저장 장치의 입출력 대역폭과 입출력 지연시간을 최대로 활용할 수 있는 최적화된 입출력 스택을 제안한다. 이를 위해 기존 리눅스의 블록 입출력 계층을 새로운 인터페이스를 가지는 입출력 계층으로 대체하고 최적화한다. 제안된 입출력 계층은 기존의 하드 디스크 드라이브를 고려한 블록 계층을 우회하고 디바이스 드라이버를 최적화하여 고속 저장 장치의 성능을 최대한 이용할 수 있게 해준다. 또한, 리눅스의 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.