虚拟机是云计算时代的重要技术之一,经过两年多的研发攻关,龙芯KVM虚拟机软件正式发布1.0版本。龙芯KVM虚拟机能够实现在一台龙芯3A主机上运行多个独立的逻辑虚拟机,并通过与libvirt标准管理工具无缝连接,实现虚拟机之间的实时调度与管理。龙芯KVM虚拟机通过内存虚拟化优化等技术,STREAM测试单虚拟机内存带宽达到本机的90%以上,SPEC CINT2000性能可达到本机的70%~90%。 目前流行的Linux上的虚拟化解决方案包括以KVM、XEN为代表的开源虚拟化解决方案,以VMware为代表的商用解决方案等。相比较而言,VMware在商用领域发展较早,但是不开源。在开源领域XEN与K VM是两大主流虚拟化软件,其中XEN较复杂,代码维护代价较高。目前K VM已经整合到Linux内核中,是Linux下虚拟化的发展方向,已有很多如RedHat,IBM等著名企业鼎力支持。相应的,流行的云计算解决方案也有openstack等,因此龙芯选择KVM技术路线。如图1可见,KVM作为Linux内核的一个模块存在,搭配QEMU作为其设备模型。Linux 从2.6.20版本开始就加入了K VM的支持,并且随着版本更新有专门的团队对其维护。
图1. KVM虚拟化解决方案框架
龙芯虚拟机K VM-Loongson克服了MIPS架构的虚拟化漏洞,采用了半虚拟化技术并充分利用龙芯独有的硬件特性,实现了很高的运行效率。技术上,通过分层技术避免了MIPS架构漏洞,使得MIPS虚拟化成为了可能;采用了软硬件协同设计方式提高了CPU虚拟化效率;采用异构虚拟化方式提高了内存虚拟化效率。目前已经申请了MIPS架构虚拟机相关的专利三项。
图2. 龙芯KVM虚拟机性能测试
龙芯虚拟化解决方案已经实现了多核多虚拟机模拟。通过SPEC CINT 20 0 0测试,龙芯3A单核单虚拟机平均性能达到94%;龙芯3A四核单虚拟机能平均达到单核本机性能的87%;龙芯3A四核四虚拟机中单个虚拟机平均性能达到单核本机性能的78%。 当前龙芯KVM解决方案已经实现了与libvirt和virt-manager管理工具的连接,可以利用virtmanager图像化管理多个节点上的虚拟机。由于绝大部分基于KVM的云计算平台是基于libvirt控制KVM虚拟机,因此该版本给云计算方案移植到KVM的云计算平台提供了技术基础。 在下一代虚拟化支持方面,公司将在龙芯3号系列的下一款芯片中进行硬件支持,以进一步提高虚拟化效率。与此同时,虚拟化小组开发了一套完全支持这种硬件虚拟化结构的虚拟机,为下一代虚拟化硬件支持方面提供了验证环境。 |