机房360首页
当前位置:首页 » 服务器 » 服务器虚拟化技术的融合

服务器虚拟化技术的融合

来源:机房360 作者:yuxin编辑 更新时间:2014-4-21 16:33:33

摘要:近年来随着信息技术在全球的迅猛发展,云计算已受到各界广泛关注。云计算的特性可归结为虚拟化、分布式部署和动态扩展性,其中虚拟化是云计算有别于传统IT环境的最关键特性。而在众多虚拟化技术中,应用最广泛的当属服务器虚拟化,此项技术可以将一台或一群物理服务器构建成虚拟化环境,在其中虚拟出更多可按需灵活配置的虚拟系统,每个系统相互独立。此项技术可以充分改进硬件资源的利用率,降低能耗,有效实现计算资源整合的目的。

  然而服务器虚拟化并未止步于此,发展到今天,它已支持跨越IT架构实现各个资源层面的灵活部署,可谓突飞猛进。它的快速发展直接推动了当代云计算应用日趋多样化和复杂化,开启了人类跨入大数据时代的大门。

  然而万事有利必有弊。正是由于各种虚拟化技术的引入和发展,使得云计算遇到了传统IT环境前所未有的安全挑战。通过和传统IT环境的对比情况来看,笔者认为云计算的安全问题大致可以划分为三类:①许多传统IT环境未能解决的安全问题,延续到云计算中仍然无能为力;②一些传统IT环境中已经能够克服的常规安全问题,但进入云计算后表现得更新颖、更复杂、更棘手;③包括服务器虚拟化技术在内的各种虚拟化技术,它们自身存在漏洞缺陷有待完善。

  尽管云计算的安全问题饱受争议,但是它的优势也是有目共睹的,在没有找到更优秀的替代技术之前,人们不应因噎废食,必须迎难而上,针对新的安全困难逐一寻找对策。人们应该明白一个道理,若想找出一揽子的方案来解决云计算中的所有安全问题,那只能是一种不切实际的美丽幻想。云计算的安全课题内容过于宽泛,本文仅从云计算最核心的技术之一——服务器虚拟化技术出发,着重论述基于此项技术所产生的安全风险,并尝试在生产应用实践中给出解决方案或思路。

  服务器虚拟化实现模式介绍

  目前市面上流行的服务器拟化软件有好多种,一些主流的实现技术往往异同并存,因此技术界对它们的技术分类也莫衷一是。本人经过综合研究,认为当今真正能够用于商用的企业级服务器虚拟化系统,基于它们的实现模式来分类,大致也只有三大“流派”,分别是:全虚拟化,半虚拟化,以及硬件辅助虚拟化。至于其它如硬件仿真和操作系统级的虚拟化,它们更多是应用于硬件开发环境和个人使用环境,它们目前的技术发展难有质的突破,暂时不可能成为企业级商用虚拟化技术的主流,更不会成为云计算的基础,因此本文不讨论它们的安全问题。本节针对这三种主流虚拟化实现技术进行简要概述。

  1 全虚拟化

  全虚拟化的实现方式是:在客户操作系统(即虚拟机系统)和原始硬件(即物理机硬件资源)之间插入一个虚拟机监视器VMM(Virtual Machine Monitor),又称为Hypervisor,通过VMM在虚拟机和原始硬件之间进行协调。文献指出,VMM实时探测虚拟机发出的指令流,动态识别特权或敏感指令(Ring 0),一旦识别出这些指令,VMM就拦截它们,通过二进制转译(VMWare的BT技术)来模拟这些指令的行为,向原始硬件发出指令。当然,如果虚拟机发出的只是用户级的指令(Ring 3),VMM不拦截,因为二进制转译对性能将产生巨大负荷,而非关键指令并不控制硬件或威胁系统安全,因此可以放行。这种策略在提升效率的同时,也保障了安全。全虚拟化的典型代表就是VMWare vSphere。它的优点是操作系统无需任何修改就可以直接运行,问题是二进制转译工作往往造成性能大幅下降,而且目前尚未找到加速二进制转译的好办法。

  2 半虚拟化

  并行虚拟化(paravirtualization)惯称为半虚拟化。它与全虚拟化的共同点是,都采用一个VMM实现对底层硬件的共享访问。但是半虚拟化将许多与虚拟化相关的代码植入了虚拟机操作系统,于是不再需要VMM捕获特权指令和二进制转译。半虚拟化为每个虚拟机提供一个特殊的API,但要求在客户操作系统中进行大量修改。文献[4]描述道,有个智能编译器协助客户操作系统通过Hypercall来调用那些无法虚拟化的OS特权指令。传统的x86处理器提供四级指令环:Ring 0—3。环数越低,表示执行的指令权限越高。OS负责管理硬件和特权指令在Ring 0执行,而用户级的应用程序只在Ring 3执行。

  虽然并行虚拟化可降低负荷,提升虚拟化性能,但它也会导致其它问题。首先,它的兼容性较差,比如像Windows系统就不支持OS核心的修改;其次,维护半虚拟化可能需要大幅修改OS核心,造成维护成本高企;最后,半虚拟化的性能会因工作负载的变化而产生极大差异。与全虚拟化相比,半虚拟化简单切实,它提供了与未经虚拟化的系统更接近的良好性能。如果大量采用XenLinux系统效果最佳。值得一提的是,在Xen和微软Hyper-V中,都引入了一个辅助VMM进行驱动和虚拟化辅助管理的虚拟机,它的权限和安全级别都要高于其余普通的虚拟机,它们都是在VMM启动之后,先于其余普通虚拟机加载启动的,否则无法辅助VMM提供虚拟化服务。VMM将许多辅助管理功能剥离到该虚拟机中,因此使得自己瘦身。VMM只包含服务器虚拟化最核心的部分,这也使得VMM的性能和安全性同时得到提升。这种虚拟机在Xen中被定义为Domain0,而在Hyper-V中则定义为父分区。尤其是Hyper-V独特的技术实现方式,其VMM代码量小到仅有几百K字节。

  从功能上来说,通常Domain0或父分区可以被看作就是宿主机的操作系统。虽然笔者认为这一特性并非半虚拟化技术的必要特征,但它目前在类似半虚拟化模式中运用普遍。而在VMWare vSphere之中目前仍未引入这一概念,在VMWare中所有的虚拟化功能全部由VMM提供,因此它的代码量十分庞大。

  3 硬件辅助虚拟化

  为了简化服务器虚拟化技术,许多硬件厂商不惜投入大量精力和资本来开发新特性。Intel的VirtualizationTechnology(VT-x)和AMD的AMD-V,在CPU增加了root模式,root模式特权级别高于Ring 0(微软定义为Ring-1)。令VMM运行于root模式。于是关键指令能够在VMM上直接执行而无需进行二进制转译,自然也不必像半虚拟化技术要向虚拟机种植入部分虚拟化功能。虚拟机的状态保存在VT-x或AMD-V中。但要注意支持Intel VT-x和AMD-V的CPU只是近几年才在市场上推广。尽管硬件辅助虚拟化技术前景美好,但由于严格的编程模式要求造成VMM到虚拟机之间的转换损耗严重,目前市场上的硬件辅助虚拟化性能远远未达预期,很多指令运行效果反而逊色于VMware的BT技术。但是硬件辅助虚拟化的未来发展前景是值得期待的。

机房360微信公众号订阅
扫一扫,订阅更多数据中心资讯

本文地址:http://www.jifang360.com/news/2014421/n082458114.html 网友评论: 阅读次数:
版权声明:凡本站原创文章,未经授权,禁止转载,否则追究法律责任。
相关评论
正在加载评论列表...
评论表单加载中...
  • 我要分享
更多
推荐图片