Improving I/O performance of NVMe SSD on virtual machines

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.

[1]  Fabrice Bellard,et al.  QEMU, a Fast and Portable Dynamic Translator , 2005, USENIX Annual Technical Conference, FREENIX Track.

[2]  A. Kivity,et al.  kvm : the Linux Virtual Machine Monitor , 2007 .

[3]  Dongwoo Lee,et al.  Improving performance by bridging the semantic gap between multi-queue SSD and I/O virtualization framework , 2015, 2015 31st Symposium on Mass Storage Systems and Technologies (MSST).

[4]  Alex Landau,et al.  Towards exitless and efficient paravirtual I/O , 2012, SYSTOR '12.

[5]  Hyeonsang Eom,et al.  Enhancing the I/O system for virtual machines using high performance SSDs , 2014, 2014 IEEE 33rd International Performance Computing and Communications Conference (IPCCC).

[6]  Philippe Bonnet,et al.  Linux block IO: introducing multi-queue SSD access on multi-core systems , 2013, SYSTOR '13.

[7]  Zhao Yu,et al.  SR-IOV Networking in Xen: Architecture, Design and Implementation , 2008, Workshop on I/O Virtualization.

[8]  Rusty Russell,et al.  virtio: towards a de-facto standard for virtual I/O devices , 2008, OPSR.