DOI QR코드

DOI QR Code

Improving Performance of I/O Virtualization Framework based on Multi-queue SSD

다중 큐 SSD 기반 I/O 가상화 프레임워크의 성능 향상 기법

  • 김태용 (성균관대학교 정보통신대학) ;
  • 강동현 (성균관대학교 정보통신대학) ;
  • 엄영익 (성균관대학교 정보통신대학)
  • Received : 2015.07.22
  • Accepted : 2015.09.22
  • Published : 2016.01.15

Abstract

Virtualization has become one of the most helpful techniques in computing systems, and today it is prevalent in several computing environments including desktops, data-centers, and enterprises. However, since I/O layers are implemented to be oblivious to the I/O behaviors on virtual machines (VM), there still exists an I/O scalability issue in virtualized systems. In particular, when a multi-queue solid state drive (SSD) is used as a secondary storage, each system reveals a semantic gap that degrades the overall performance of the VM. This is due to two key problems, accelerated lock contentions and the I/O parallelism issue. In this paper, we propose a novel approach, including the design of virtual CPU (vCPU)-dedicated queues and I/O threads, which efficiently distributes the lock contentions and addresses the parallelism issue of Virtio-blk-data-plane in virtualized environments. Our approach is based on the above principle, which allocates a dedicated queue and an I/O thread for each vCPU to reduce the semantic gap. Our experimental results with various I/O traces clearly show that our design improves the I/O operations per second (IOPS) in virtualized environments by up to 155% over existing QEMU-based systems.

오늘날 가상화 기술은 가장 유용하게 사용되는 컴퓨팅 기술 중 하나이며 모든 컴퓨팅 환경에서 널리 활용되고 있다. 그러나 가상화 환경의 I/O 계층들은 호스트 머신의 I/O 동작 방식을 인지하지 못하도록 설계되어 있기 때문에 I/O 확장성 문제는 여전히 해결해야 할 문제로 남아 있다. 특히, 다중 큐 SSD가 보조 기억 장치로 사용될 경우, 증가한 잠금 경쟁과 제한된 I/O 병렬화 문제로 가상 머신은 다중 큐 SSD의 공인된 성능을 활용하지 못하는 문제가 발생한다. 이러한 성능 문제를 해결하기 위해 본 논문에서는 가상 CPU마다 전용 큐와 I/O 스레드를 할당하는 새로운 기법을 제안한다. 제안 기법은 성능 저하의 주요한 원인 중 하나인 잠금 경쟁을 효율적으로 분산시키고 또 다른 원인인 Virtio-blk-data-plane의 병렬화 문제를 해소한다. 제안 기법을 평가한 결과 최신 QEMU 보다 IOPS가 최대 155% 향상되는 것을 확인하였다.

Keywords

Acknowledgement

Grant : (ICBMS-총괄) ICBMS(IoT, 클라우드, 빅데이터, 모바일, 정보보호) 핵심 기술 개발 사업 총괄 및 엑사스케일급 클라우드 스토리지 기술 개발

Supported by : 정보통신기술진흥센터

References

  1. D. Abramson, "Intel virtualization technology for directed I/O," Journal of Intel Technology Journal, Vol. 10, No. 3, pp. 179-191, 2006.
  2. R. Mijat and A. Nightingale, "Virtualization is coming to a platform near you," ARM White Paper, 2011.
  3. Y. Dong, X. Yang, J. Li, G. Liao, K. Tian, and H. Guan, "High performance network virtualization with SR-IOV," Journal of Parallel Distributed. Computing, Vol. 72, No. 1, pp. 1471-1480, 2012. https://doi.org/10.1016/j.jpdc.2012.01.020
  4. AMD I/O virtualization technology (IOMMU) specification [Online]. Available: http://developer.amd.com/wordpress/media/2012/10/488821.pdf (downloaded 2015, Sep. 6)
  5. KVM live migration [Online]. Available: http://www.linux-kvm.org/images/5/5a/KvmForum2007$Kvm_Live_Migration_Forum_2007.pdf (downloaded 2015, Sep. 6)
  6. C. Clark, K. Fraser, S. Hand, J. G. Hansen, E. Jul, C. Limpach, and A. Warfield, "Live migration of virtual machines," Proc. of 2nd Symposium on Networked System Design & Implementation, pp. 273-286, 2005.
  7. R. Russell, "VIRTIO: towards a de-facto standard for virtual I/O devices," ACM SIGOPS Operating Syst. Review, Vol. 42, No. 5, pp. 95-103, 2008.
  8. A. Kivity, Y. Kamay, D. Laor, UY. Lublin, and A. Liguori, "KVM: the linux virtual machine monitor," Proc. of Linux Symposium, pp. 225-230, 2007.
  9. N. Har'El, A. Gordon, A. Landau, M. Ben-Yehuda, A. Traeger, and R. Ladelsky, "Efficient and scalable paravirtual I/O system," Proc. of USENIX Annual Technical Conference, pp. 231-242, 2013.
  10. NVM Express specification 1.2 [Online]. Available: http://www.nvmexpress.org/wp-content/uploads/NVM-Express-1_2-Gold-20141209.pdf (downloaded 2015, Sep. 6)
  11. M. Bjorling, J. Axboe, D. Nellans, and P. Bonnet, "Linux block IO: Introducing multi-queue SSD access on multi-core system," Proc. of the 6th International Systems and Storage Conference, pp.22:1-22:10, 2013.
  12. F. Bellard, "QEMU, a fast and portable dynamic translator," Proc. of USENIX Annual Technical Conference, pp. 41-46, 2005.
  13. J. Axboe. Fio-Fexible IO Tester [Online]. Available: http://freecode.com/projects/fio (downloaded 2015, Sep. 6)
  14. K. Huynh, A. Theurer, and S. Hajnoczi. KVM virtualized I/O performance [Online]. Available: ftp://public.dhe.ibm.com/linux/pdfs/KVM_Virtualized_IOPerformance_Paper.pdf (downloaded 2015, Sep. 6)
  15. M. Lei. Virtio Blk multi-queue conversion [Online]. Available: http://www.linux-kvm.org/wiki/images/6/63/02x06a-VirtioBlk.pdf (downloaded 2015, Sep. 6)
  16. K. Eshghi and R. Micheloni, "SSD architecture and PCI Express interface," Inside Solid State Drives (SSDs), pp. 19-45, 2013.
  17. Null block device driver [Online]. Available: https://www.kernel.org/doc/Documentation/block/null _blk.txt (downloaded 2015, Sep. 6)
  18. Perf: linux profiling with performance counters [Online]. Available: https://perf.wiki.kernel.org (downloaded 2015, Sep. 6)