1 虚拟化简介
虚拟化是硬件与操作系统之间的一个抽象层,它将物理硬件与操作系统分开,打破以往一个操作系统必须配置一套硬件的传统部署方法,从而提供更高的IT资源利用率和灵活性。
虚拟化允许具有不同操作系统的多个虚拟服务器(通常称为虚拟机)在同一台物理服务器上同时独立并行运行,每个虚拟机都有自己的一套虚拟硬件(如RAM、CPU、网卡等)。无论物理服务器采用什么硬件组件,操作系统都将它们视为一组标准化的硬件。
虚拟机系统通常是被封装在文件中的,因此可以快速对其进行保存、复制和部署,可在几秒钟内将整个系统(完全配置的应用程序、操作系统、BIOS和虚拟硬件)从一台服务器移至另一台服务器中运行,以实现零停机维护和连续的工作负载整合。
虚拟化部署技术是服务器部署方式发展的趋势,可以帮助人们升级和管理异地的IT基础架构并确保其安全。
2 基于虚拟化服务器的解决方案
基于虚拟化服务器的解决方案是将所有硬件设备构成一个统一的抽象的虚拟化平台,并使得所有的硬件被统一到一个虚拟化层中进行统一的调度分配。这样,系统将不再以服务器的数量为单位,而是按照需要的计算处理能力为单位进行分配,而分配出来的硬件处理资源就形成一个个独立的虚拟服务器,也被称为虚拟机,它拥有与真实服务器一样的所有硬件设备,如主板芯片、CPU、内存、SCSI和IDE磁盘设备、各种接口、显示和其他输入输出设备等,管理员可以像使用物理服务器一样使用虚拟服务器,在上面安装操作系统,部署应用等,并且所有的虚拟机之间是完全独立的,即使某一个虚拟机崩溃了,也不会影响到其他虚拟机的运行。并且每个虚拟服务器都可以被独立封装到一个文件中,实现虚拟机的灵活迁移,如图1所示。
采用虚拟化技术后,所有的服务器就构建成一个统一的硬件处理平台,即构成一个虚拟化处理资源池,可以在这个资源池上取合适的处理能力及资源构建独立的虚拟机。
3 市面主流虚拟化软件
在市面上虚拟化解决方案供应商中,最为著名的产品有VMware vSphere、Critrix Xen Server、红帽的KVM以及微软的Hyper-V等产品。
VMware vSphere是业界第一个x86“裸机”虚拟机管理程序,是最可靠和最强健的虚拟机管理程序。VMware ESX/ESXi于2001年首次发布,目前为第五代产品,已在全世界数以万计的客户部署中经过了生产验证。其采用全虚拟化技术,在硬件与操作系统之间建立一个虚拟化抽象层,它将物理硬件与操作系统分开,打破以往一个操作系统必须配置一套硬件的传统部署方法,从而提供更高的IT资源利用率和灵活性。VMware是市面上虚拟化技术的霸主,几乎占了虚拟化市场80%以上的份额。
Xen采用准虚拟化技术(Para-Virtualizion),其特点是修改操作系统的内核,加入一个Xen Hypervisor层。它允许安装在同一硬件设备上的多个系统可以同时启动,由Xen Hypervisor来进行资源调配。在这种虚拟环境下,依然需要模拟硬件设备,安装Guest操作系统,并且需要修改操作系统的内核。Xen相对于传统的Virtual Machine Monitor,性能稍有提高,但并不十分显著。
Hyper-V采用微内核的架构,它是一个瘦Hypervisor。因为它里面没有驱动程序,驱动程序是跑在每一个分区里面的。Hyper-V底层的Hypervisor运行在最高的特权级别下,微软将其称为ring -1,而虚拟机的OS内核和驱动运行在ring 0,应用程序运行在ring 3下,这种架构就不需要采用复杂的BT(二进制特权指令翻译)技术,可以进一步提高安全性。Hyper-V采用基于VMbus的高速内存总线架构,来自虚机的硬件请求(显卡、鼠标、磁盘、网络),可以直接经过VSC,通过VMbus总线发送到根分区的VSP,VSP调用对应的设备驱动,直接访问硬件,中间不需要Hypervisor的帮助。但是鉴于Hyper-V采用Windows Server 2008内核,决定其稳定性具有一定局限性,Windows Server 2008 Hyper-V需要每30天重启一次。
KVM是红帽5.4发行版中推出的最新虚拟化技术,严格上说它是完全虚拟化的产品,VMware和VPC、VirtualBox等也都是完全虚拟化的产品,而Xen则是半虚拟化的产品,半虚拟化从性能上说要比完全虚拟化快很多,但Xen有个缺点,它是重量级的虚拟机,修改了大量的内核源代码,它的guest机器必须理解xen化的硬件,也就是说Xen上面只能运行红帽5以后的系统。后来红帽修改了发行版4中的一个版本,使其也能支持Xen。而且Xen的完全虚拟化需要借助硬件CPU的VT技术,这个在Inter CPU上叫VMX,在AMD CPU中叫SVM。Xen的完全虚拟化可以说是个失败品,运行效率甚至赶不上VMware,而且操作界面相当不友好,但这不能否认Xen在半虚拟化世界的霸主地位。KVM是kernel virtual module的简写,其实KVM借鉴了Xen在半虚拟化上的很多成就,虽然KVM是完全虚拟化的产品,但在关键的硬盘和网卡上支持半虚拟化Virtio,在很大程度上提高了性能。KVM是轻量级虚拟化的代表,也需要硬件VT技术的支持。另外从操作界面上看,Xen和KVM都是用Virt-manager工具,差别不是很大,但不可以在同一台机器上同时安装且运行Xen和KVM。另外,KVM只能运行在红帽企业版5.4,64位系统上,同时需要关闭SELinux。