严博文
摘要:当今各领域都在通过虚拟化技术提高资源利用率降低成本,但是如何选择合适的虚拟化技术应用于当前的应用场景是一个关键问题。该文首先对虚拟化技术的原理及分类进行明确,其次对具体技术的体系结构进行分析,最后通过计算性能进行横向对比。
关键词:虚拟化技术;体系结构;应用分析;计算性能
中图分类号:TN929.5 文献标识码:A 文章编号:1009-3044(2018)24-0257-02
当今各领域都在通过虚拟化技术提高资源利用率降低成本,但是虚拟化技术体系庞大、技术形式种类繁多。大部分中小型企业并没有依托自身业务需求,选择合适的虚拟化技术。本文对虚拟化技术的原理进行了说明,并重新梳理虚拟化体系结构及应用技术,最终选取代表性技术进行对比说明。
1 虚拟化技术概述
原有的计算模型可以理解为计算元件通过操作操作系统中与底层预留的接口对其资源进行使用。虚拟化技术是通过引入一个与操作系统类似的层级结构,对底层真实的物理资源进行管理,将其转换为新的形式提供给上层的计算部件,如图1所示[1]。在常用的英特尔X86系统架构中,引入的虚拟化层称为Hypervisor,通常也称为虚拟机监控器[2]。
2虚拟化层级划分
文章按照不同的模式,对该技术进行分类梳理,主要有以下3种分类方式。
2.1按实现架构分类
在该属性的分类方法中,通过虚拟化层的运行方式将划分为宿主模型和裸机模型。在宿主模型中虚拟化层需要依托于宿主操作系统才能对物理资源进行管控,如VMware Workstaion等技术。相反在裸机模型中虚拟化层通常可直接运行在物理资源上面,通过自身就能对CPU、MEM、I/O进行管理,如Xen、KVM等技术[3]。
2.2按面向需求分类
A. 资源层级虚拟化
该层级的虚拟化主要是将网络部件、存储器、CPU等计算机内部特定物理资源进行虚拟化,通过虚拟的相关资源组合形成一个完成的虚拟处理单元 [4],如Intel公司对CPU引入的VT技术等。
B.实验环境虚拟化
主要针对实验环境的物理平台架构以及运行在上层的操作系统内核等部分进行虚拟化。已经应用的如智能终端虚拟化技术,虚拟系统(宿主/裸机)等,其中以Docker这种面向宿主操作系统层级的虚拟化最为广泛[5]。
C.应用层级虚拟化
该技术是计算机终端系统(应用)进行虚拟化,也称应用层级虚拟化。主要是将上层的应用与底层的安装环境进行分离,虚拟化层为应用提供一个完整的运行环境,有助于减少两个独立的应用系统相互干扰,如JAVA虚拟机。
2.3按实现方式分类
A. 软件虚拟化
在实验系统中基于传统的硬件资源,而通过软件的定义实现上层计算资源对底层物理平台的访问与控制。这种实现方式的体系架构,通常会在传统的操作系统与底层应尽之间引入新的虚拟化层,构成四层系统体系架构。如QEMU软件虚拟化, VMware的软件虚拟化[6]。
B.硬件虚拟化
底层硬件平台的资源包括CPU、磁盘/网卡IO等方面,通过相应指令对上述资源进行截获重定向转化成为虚拟资源,被上层计算元件进行重新调用。运用硬件虚拟化前先要在BIOS界面开启虚拟化功能,如Intel的VT技术以及AMD的SVM技术。
C.完全虚拟化
又称为硬件辅助虚拟化技术,通过在体系架构中添加虚拟化层,来对底层硬件进行管控。上层运行的客户机不需要对自身操作系统进行任何修改就能够运行基于传统X86架构的应用程序,同时也感觉不到自身是在一个虚拟平台中运行。
D.半虚拟化
又称为准虚拟化。与完全虚拟化相反,需要对运行在上层客户机自身的操作系统进行一定的修改,适应整个架构环境。同时客户机也知道自身运行在虚拟化环境中,可以认为这种模式弱化了虚拟化的性能,如Xen虚拟化技术[7]。
3 实例体系架构
3.1实例对比
主要通过是否开源,运行性能及体系架构等方面对选取的虚拟化技术进行对比讨论。VMware虽然应用广泛且技术成熟,但代码闭源且费用昂贵,采用宿主模式的构建方式造成性能相对较低。Xen虚拟化与KVM虚拟化都属于开源技术,且体系架构都是基于裸机模式构建,因此性能相差不大。但对于Xen虚拟化技术来说,一方面,上层的应用程序不能够直接运行在客户机中,需要对客户机操作系统进行一定的修改。这就造成了其部署、操作相对复杂。另一方面,由于某些大型厂商对此技术的抵制,使其兼容性较弱。相比于KVM虚拟化技术,它依赖于对宿主系统内核的应用。运行效率相对较高,用户易于部署运维,同时也能兼顾主流应用厂商开发的应用与系统。
Docker是一种操作系统层面的虚拟化技术,以开源且接近宿主机性能等优势。但Docker的体系结构也决定了有一些特点,第一:创建的容器需依托底层的宿主操作系统运行,不能进行定制化的使用;第二:Docker的工作原理决定了它基于平台即服务的网络系统架构中;第三:容器的安全性与隔离性较差,一个容器损坏会影响其他容器log的信息。
3.2拓展实验
实验平台的软硬件环境,如图1所示。基于C语言编写的基准即时测试程序,验证VMware、KVM等虚拟化技术的计算性能的差异。通过运行结果验证上节在实例体系结构中提出的观点。
如图2的运行结果可知,计算性能的优先级顺序为VMware>KVM>Xen>平台本身(其中Xen的实验数据样本较少,在下一阶段的研究中应加以侧重)。相比较KVM虚拟化技术性能是VMware计算性能的1/5~1/2。这是由于系统架构所决定VMware的轮转周期较长,并且在运行中受系统有较大影响,造成了结果有明显的波动。因此, KVM虚拟化的计算性能较为平稳。
4 应用前景展望
面对虚拟化技术的应用领域越来越广泛,运营商及科研机构将虚拟化技术应用到5G新型网络架构中。如中科院计算所提出的超级基站系统架构就是采用KVM虚拟化技术为系统物理平台的处理资源进行灵活共享和分配,下一步的将针对虚拟化资源处理实体的管控进行深入研究。
参考文献:
[1] 任永杰,单海涛.KVM虚拟化技术实战与原理解析[M].北京:机械工业出版社,2013.
[2] Suresh I,Kannan M.A Study on System Virtualization Techniques[J].A Study on System Virtualization Techniques,2014(2):134-139.
[3] Duy M.Pham.Performance Comparison Between X86 Virtualization Technologies[D].Master Dissertation], California State University,2014.
[4] Neha Goel,Anshi Gupta. A study report on virtualization technique[C].In:Computing, Communication and Automation (ICCCA), 2016,1250-1255.
[5] JS Ma,HY Kim,YW Kim. The Virtualization and Performance Comparison with LXC-LXD in ARM 64bit Server[C]. In: IT Convergence and Security (ICITCS),2016:1-4.
[6] 廣小明,胡杰,陈龙.虚拟化技术原理与实践[M].北京:电子工业出版社,2012.
[7] Jeanna Matthews. 运行Xen:虚拟化艺术指南[M].北京:北京航天航空大学出版社,2014.
【通联编辑:光文玲】