某公司虚拟化平台更换解决方案

为公司其他部门提供的虚拟机运行在Vmware,Citrix的产品上,它们各自都是由相应的客户端管理虚拟机。为了能够通过WEB方式对虚拟机进行统一化管理,我们开始寻找已有产品的官方解决方案,但是Vmware,Citrix官方的虚拟化WEB管理工具都是需要付费购买。本身Vmware,Citrix的产品也不是开源的,从公司的利益以及其他技术方面的角度考虑,我们将采用开源的虚拟化平台软件来完全更换现有的商用虚拟化平台软件。

开源虚拟化管理程序的选用

熟知的开源虚拟化管理程序有XEN和KVM两种。

1.XEN介绍

    XEN是一个开放源代码的虚拟机管理程序。由剑桥大学开发,它打算在单个计算上运行多达128个具有完全功能的操作系统。在旧的处理器上运行XEN,操作系统必需进行显式地修改以在XEN上运行。这使得XEN无需特殊硬件平台支持,就能达到高性能的虚拟化。

XEN通过一种叫做半虚拟化的技术获得高性能的表现。在比较旧的硬件平台上,没有CPU的虚拟化支持,XEN可以通过半虚拟化获得比较高的性能。半虚拟化使用虚拟机管理程序分享存取底层的硬件,但是它的客户操作系统集成了虚拟化方面的代码,该方法无需重新编译或引起陷阱,因为操作系统自身能够与虚拟化管理程序进行很好地协作,半虚拟化技术的优点是性能高,特别是I/0方面,但是操作系统需要进行更改,用户体验方面不强。

XEN也支持全虚拟化技术。全虚拟化技术也称为原始虚拟化技术。它使用虚拟机协调客户操作系统和原始硬件。全虚拟化最大的优点是操作系统不需经过任何修改,但是性能方面不如半虚拟化。

2.KVM介绍

   KVM全称是Kernel-based Virtual Machine,即基于内核的虚拟机。KVM项目代表下一代开源虚拟化。该项目的目标是通过建立在先前的技术和充分利用当今的硬件条件下创造出一个现代的虚拟化管理程序。KVM以一种可加载模块的方式移植到linux内核中,它将linux转换成一种可以裸机安装的虚拟化管理程序。KVM项目已证实有两种关键的设计原则帮助它迅速地成为一个可靠的,高性能的虚拟化管理程序,并且凭借这两点它打败了其他开源虚拟化管理程序。  

首先,因为KVM是在硬件支持虚拟化出现后被设计的,所以它没必要植入特有的硬件所提供的特性。KVM虚拟化管理程序需要CPU支持Intel VT-X 或者 AMD-V,然后通过CPU的这种特性来虚拟出CPU.

通过需要硬件支持而不是尽可能的优化硬件,KVM可以设计出一种以优化好的虚拟化管理程序解决方案,而不需要安装以支持旧的硬件的软件包,或者需要修改客户机操作系统。

其次,KVM项目组尊崇一条格言,”不做重复发明”。为了能够虚拟出CPU和内存,虚拟化管理程序需要许多组件,例如,内存管理器,进程调度器,I/O堆栈,设备驱动程序,安全管理器,网络堆栈。实际上,虚拟化管理程序是一个特别的操作系统,区别于实际的操作系统在于,它是为了运行虚拟机,而不是应用程序。因为Linux内核已经包含了一个虚拟化管理程序所需的核心组件,所以没必要从头开始写所有的组件。KVM项目组在2006年11月向Linux 内核社区提交了KVM的代码,并且在2007年1月,KVM将被包含在Linux 2.6.20 内核中。

除了得到社区的支持外,KVM还得到一些软件行业先锋的支持,包括Red Hat, AMD , HP ,IBM, Intel, Novell, Siemens, SGI等。

3.XEN和 KVM的对比

    是较早出现的虚拟化技术,XEN是”第一类”运行在裸机上的虚拟化管理程序,也是当前许多商业化公司的基础技术。  XEN

     XEN的优点

     作为开源的虚拟化技术,对比XEN和KVM可以看到,XEN的优势在于:更好的可用资源,平台支持,可管理性,实施,动态迁移,和性能基准。

      可用资源:XEN比KVM早出现4年之久,随着Citrix,Noverll,Oracle等在市场领域的实施,比较容易找到精通XEN的IT技术人员。

      平台支持:XEN在新版中支持更多的主机和客户机操作系统。

      可管理性:有调查显示,对比XEN和KVM,XEN有更广泛的第三方配给,备份,存储管理,P2V,容量规划,性能监控,进程自动化,安全等。

       实施:XEN的运行和管理都是在较低级别的(Ring 0)。对于新建的虚拟机,客户机不像KVM那样共享内存块,CPU指令或者任何底层的Linux操作系统。

       KVM的优点

       即使没有实施广泛的XEN和KVM性能基准研究测试,仍然有足够的理由说明Linux的领导者(Red Hat 和 Ubuntu)对待KVM的态度的原因。其中最重要的原因就是KVM是Linux内核中的一部分,而XEN只是运行在Linux内核下的一个产品而已。之所以这一个原因很重要,是因为在过去XEN工作环境的补丁包不能够和Linux内核兼容,但是实施KVM的话,这个问题就可以得到解决。另外一个选择KVM的原因是KVM在Linux内核内部部署,这样可以很容易控制虚拟化进程。

       XEN的拥护者声称KVM不如XEN技术成熟,并且缺少某些关键特性,如动态迁移和半虚拟化支持。XEN工作环境中的泛虚拟化技术可以使虚拟机的操作更加高效,因为半虚拟化技术直接硬件硬件进行交互。然而使用半虚拟化技术需要修改操作系统,默认Windows的安装不支持半虚拟化技术。至于动态迁移,KVM也可以做到,只要安装正确的版本就行。

       从另一角度来说,KVM更加灵活。由于操作系统直接整合到Linux内核的虚拟化管理程序中,在任何场景下都可以直接和硬件进行交互,而不需要修改虚拟化的操作系统。这一点对虚拟化运行来讲KVM是一个更快的解决方案。KVM需要CPU具有物理地址扩展功能,这将不是问题,因为现在大多数服务器的CPU都具有此功能。

       作出选择

       基于以上分析,结合现有硬件条件以及其他各方面因素综合考虑,我们将采用KVM作为虚拟化管理程序来大量部署。

linux

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/1592d61b88663d71c07f4b2a4eb933d4.html