- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
服务器虚拟化软件如何选型?
根据Gartner的预测,到2007年年底,《财富》前1000强中有30%左右的企业,在部署Windows服务器时使用了一种关键的虚拟技术--分区。到今年,那些没有采用虚拟技术的企业将在IA(Intel Architecture,英特尔架构)服务器上多支出25%的费用,而在RISC服务器上的额外支出也高达15%,这其中包括硬件、软件、劳动力和占地空间等各方面的成本。
在传统的典型IT架构中,存在许多不合理之处,阻碍着现代企业的灵活性。由于应用被捆绑在固定的平台上,使得各项应用拥有不同的平台,需要有专用的、针对特定应用的开发、测试、生产和灾难恢复环境,而且每个应用环境都需按预计最大负载来构建,彼此之间仅有较低的或根本没有资源共享。
目前,在国内企业数据中心,这一传统架构的缺点更加明显,它们普遍根据需求随时添加服务器设备,这些设备基本上都是分散的,具有不同品牌、不同配置,甚至架构也不同,最致命的是在其上运行的应用并不能充分利用服务器的所有资源,只用到15%~20%的服务器资源是普遍现象。使用虚拟化技术可以减少服务器数量的增加,简化服务器管理,同时明显提高服务器利用率、网络灵活性和可靠性。将多种应用整合到少量企业级服务器上即可实现这一目标。通过整合及虚拟化,数百台服务器可以减少至数十台; 10%甚至更低的服务器利用率将提高到60%或更高,IT基础设施的灵活性、可靠性和效率也将得到改进。而实施服务的虚拟化技术,首先要面对的就是软件选型。
VMware和Xen的结构特点
目前Xen和VMware是市场上主流的两大虚拟化产品。这两大产品背后的架构区别,将带来不同的应用体验。
● VMware
VMware是业界著名的虚拟机产品,其主打产品是VI3 (VMware Infrastructure 3)软件套装。VI3以其杰出的管理能力,受到了广大数据中心的青睐。
在VMware中,最核心的软件是 ESX Server。ESX Server直接安装在裸机上,在硬件和操作系统之间形成一个虚拟化层。ESX Server将一台物理服务器划分为多个可移植的虚拟机环境。VMFS(Virtual Machine File System)则是封装ESX Server的存储载体。ESX的虚拟层级实际上包裹了硬件,ESX创建了一个硬件接口层Hardware Interface Layer,所有虚拟机如果想跟硬件通信,必须经过这个硬件接口层,完成诸如内存偏移转换的工作。这里需要强调的是,ESX的特点是完全包裹硬件,不允许程序直接访问硬件。
当然,ESX只是VMware最基础的技术,VI3中其余的工具,用于完善虚拟化和可视化管理。其中,DRS(Distributed Resourced Scheduler)可以将多个ESX Server资源合并为群集,同时,按照假定所有资源都在一台主机上的方法,简单管理群集。Virtual SMP可以让单个虚拟机同时使用多个处理器。VMware Vmotion可以使虚拟机从一台物理服务器迁移到另一台物理服务器,迁移过程中不用宕机。此外,它也提供虚拟的双机热备和集成备份等功能。最后,所有虚拟化复杂的管理,都可以由Virtual Center虚拟中心控制台轻松完成。
● Xen
Xen VMM(Virtual Machine Monitor)是由剑桥大学计算机实验室开发的一个开源项目,它能够让我们创建更多虚拟机,每一个虚拟机都是运行在同一个操作系统上的实例。
这些客户OS可以是修补过的Linux 2.4或2.6内核,也可以是修补过的NetBSD/FreeBSD内核。
用户应用程序就运行在这些客户OS上,并不需要修改任何代码。但是,随着将来的处理器能支持虚拟化的特性,内核也就不需要打补丁了。比如Intel的VT和AMD的Pacifica处理器都将包括这种功能。
在Xen中, "系统管理程序"运行在0环,客户OS运行在1环,应用程序运行在3环。这种关系对于x64有一点不同,就是客户内核和应用程序都运行在3环上。
Xen自称为"系统管理程序",是因为它比客户OS所需的系统管理代码运行的特权级还高。当系统引导的时候,Xen装载到0环的内存中。它在1环上启动修补过的内核,称做domain 0(domain是指一个运行中的虚拟机,在其上有一个guest OS在执行)。从这个domain开始,可以创建更多的domain,也可以销毁它们,还可以进行domain迁移、设置参数等。系统创建的那些domain也运行在1环内核中,用户应用程序运行在3环。
目前,修补过的Linux 2.4和2.6内核可以作为domain 0。据Xen开发者所说,将来domain 0仅支持2.6的内核补丁。构造domain 0的大部分工作是在xen/arch/x86/domain_build.c中的construct_dom0()方法中实现的。物理设备驱动程序只能运行在特权级,也就是domain 0上。Xen依靠Linux或其他修补过的OS内核对它所管理的设备提供虚拟化支持。这样的好处就是Xen的开发者不必再去开发设备驱动程序。在一个有标签TLB的处理器上使用Xen能够大大提高性能。标签TLB能够把ASID(Address Space Identifier)放在TLB入口处。有了这个特性,当处理器在系统管理程序和客户OS之间切换时就不需要刷新TLB了,这大大减少了系统开销。