Improving I/O performance of NVMe SSD on virtual machines
Jungkil Kim, Sungyong Ahn, Kwanghyun La, Wooseok Chang · 2016
The ever increasing demand of effective resource utilization in data centers has resulted in the dramatic development of various virtualization environments. Furthermore, the requirements on rapid processing of large data has not only caused to the replacement of spinning disks with flash-based SSD but also has led to the implementation of efficient software I/O stacks for SSDs. The software I/O stacks in most hypervisors have been developed for SATA interface-based storages. Therefore, high throughput and various functionalities provided by the NVMebased SSDs cannot be fully utilized. Also, it was found that the inefficiency of the existing storage I/O is due to the nonoptimized I/O stack of virtual machines in a hypervisor. In this paper, we have proposed a new I/O architecture that optimizes the I/O path by eliminating the overhead of user-level threads, bypassing unnecessary I/O routines and enhancing the interrupt delivery delay. The purpose of the proposed architecture is to enhance the throughput and scalability by mitigating the overhead of the existing software stack to take full advantage of NVMe SSDs. Experimental results with a real system show that the proposed approach improves the I/O performance by up to 47% compared to the existing approach.