用VMware Infrastructure 3进行服务器整合
“整合”似乎是IT界当前最热门的词汇,我们可以不断在各类媒体上见到“存储整合”、“服务器整合”、“应用整合”等等各类字眼,就象在当今火爆的股市上,我们可以经常听到“整体上市”这类的休息一样。虚拟化技术是服务器整合的基础,各大厂商针对不同的服务器硬件都有各自的虚拟化产品和解决方案,在Unix服务器上有IBM的LPAR、HP的nPar和vPar等;在PC服务器上有VMware的VMware Infrastructure 3、微软的Virtual Server、开源的XEN等。本文着重讨论PC服务器(X86架构)的整合。
随着企业信息系统的不断膨胀,企业IT部门管理的服务器也越来越多。每个中、大型企业都有成百上千台服务器要进行管理,管理成本不断攀升。首先是人员成本,大量的服务器硬件需要很多技术人员进行维护;其次是能源成本,服务器的运行和机房制冷会消耗大量的电能;最后,关键是很多服务器利用率并不高,笔者单位的大量PC服务器的CPU平均利用率还不足10%,这说明大量的PC服务器资源被浪费了。所以,需要用虚拟化技术对服务器进行整合,用更少的服务器硬件支持更多的应用,减少IT系统的TCO(整体维护成本)。
另外服务器虚拟化技术可以实现很多物理服务器做不到的事,可以说是IT技术上的“头脑风暴”。
应用系统迁移是很多IT技术人员都很头疼的工作。常见的步骤是先安装新服务器,再迁移应用系统,有很多繁琐的工作要做,任何配置都不能遗漏,而且在迁移过程中应用都会有一段时间停止服务,给用户带来不便。利用虚拟机技术,我们可以把虚拟机文件直接拷贝到新服务器上,启动虚机,就完成了迁移工作。而且,利用VMWare的VMotion技术,我们可以保持应用不中断,动态地将一台虚拟机从一台物理服务器迁移到另外一台物理服务器上(IBM在P系列服务器上也有类似技术- Live Partition Mobility)。这在物理服务器的环境下,是无论如何也实现不了的。
在开发测试环境下,经常需要在短时间内部署大量的服务器用于测试,而且用一段时间就不用了,管理员在周而复始地进行服务器的安装工作。利用虚拟化的CLONE技术,可以快速地部署大量虚拟服务器,减少维护工作。
在服务器虚拟化的环境下,每台虚拟服务器都是以文件的形式存在的,所以简化了系统容灾建设和高可用建设。通过虚拟机快照技术和后台存储系统的复制技术,我们可以很方便地在不同地方建立同一台虚拟机的副本,从而实现容灾。
虚拟机软件可以在一台物理服务器上(host)虚拟出多台独立的虚拟服务器(guest)。在虚拟服务器上,可以安装不同的guest operating system,独立运行,互不干涉,就象单独的物理服务器一样。但虚拟机软件不作CPU指令集的转换,也就是说不同CPU体系结构有各自不同的虚拟机软件,也不可能在一台X86服务器上虚拟出一台PowerPC的服务器。通常我们将作CPU指令集转换的软件叫做模拟器。VMWare是X86平台的虚拟机软件,它不支持PowerPC、PA-RISC、Itanium等其他平台。
3、 全虚拟化(Full virtualization)与半虚拟化(paravirtualization)
全虚拟化(Full virtualization)虚机软件是指Guest OS不需要做任何修改,就可以在其建立的虚拟机上正常工作;而半虚拟化(paravirtualization)虚机软件是指Guest OS需要做特殊的修改,才能在在其建立的虚拟机上正常工作。全虚拟化虚机软件会比半虚拟化虚机软件更复杂,因为它要做很多虚实转换的工作;而半虚拟化有性能优势,因为Guest OS已经知道它运行在一个虚拟环境下,很多硬件的检查工作就可以简化。VMWare是全虚拟化的,运行在它之上的Windows、Linux都不需要作特殊修改;而开源的XEN是半虚拟化的,运行在它之上的Linux需要作修改。
4、 Hosted解决方案与Hypervisor解决方案
Hosted解决方案的虚拟机软件需要在物理服务器硬件上先安装操作系统,虚机软件运行在操作系统之上,需要操作系统为它提供硬件驱动和设备管理等功能;Hypervisor解决方案的虚拟机软件不需要操作系统,直接安装在物理服务器硬件上,它自己管理服务器硬件。Hypervisor要比Hosted虚机软件要更复杂,因为它要支持各种不同的服务器硬件。但Hypervisor具有更好的性能、扩展能力和稳定性,因为操作系统不是专门为虚拟化设计的,包括很多功能和服务,Hypervisor不用通过操作系统,而直接控制服务器硬件,可以做得很“薄”,功能少,易优化。VMware Infrastructure 3的核心产品ESX Server就是基于Hypervisor的,我们通常用的VMWare Work Station和微软的Virtual Server都是基于Hosted的。
我们这里讲的硬件虚拟化不是用硬件实现虚拟化,而是虚机软件虚拟出来的是一台台虚拟服务器,每台服务器都有自己的CPU、内存、IO和磁盘资源,就像多了很多台服务器硬件,VMWare和微软的Virtual Server就是这种虚拟化软件。与其相对应,OS虚拟化是虚机软件虚拟出多个OS的实例,HP的VPar和User Mode Linux就是OS虚拟化,但OS虚拟化的Guest OS必须与主操作系统一样,比如HP的vPar只支持HP-UX,而User Mode Linux只支持Linux。
6、 Intel的VT(Virtualization Technology)技术
以前的X86 CPU是不支持虚拟化的,Intel最新的CPU提供了VT(Virtualization Technology)技术,从硬件层支持了虚拟化,为虚拟机软件的发展提供了更广阔的空间。
没有VT技术的X86 CPU共有0,1,2,3四个运行级别,每个级别允许执行不同权限的代码,其中0级权限最高,3级权限最低,通常操作系统运行在0级,而应用程序运行在3级,1级和2级没有使用。
运行在没有VT技术CPU上的虚拟机软件也运行在0级,而Guest OS运行在1级或3级,应用程序还运行在3级。虚机软件的重要功能就是将Guest OS的某些0级调用进行转换,使其可以成功执行。
Intel VT技术增加了一个VMX root层,比0层权限更高,共有VMX root,0,1,2,3五个运行级别,虚拟机可以运行在VMX root层,而Guest OS依然运行在0层。这样虚拟机所做的工作就大大减少,因为Guest OS可以直接在虚拟环境下运行了。
前边讲过的XEN是半虚拟化的,在XEN虚机上运行的Linux操作系统必须经过特殊修改才能运行,因为XEN不能完全将Guest Linux的调用转换位0级。但通过VT技术,XEN可以运行在VMX root层,所以XEN也在尝试对未经修改的Guest Windows进行支持。如果没有VT,半虚拟化的XEN就无法实现以上功能,所以VT技术使虚拟化技术更进了一步。
三、 VMware Infrastructure 3的功能和特点
1、 VMware Infrastructure 3整体架构
VMware Infrastructure 3是VMware公司2006年发布的新一代X86平台的企业级服务器虚拟化软件。VMware Infrastructure 3提出了资源池的概念(resource pool)。它将所有服务器的计算资源看成是CPU与内存的资源池,虚机VM(Virtual Machine)在资源池中运行,并根据要求动态获取(或释放)所需的资源。虚机在哪台物理服务器上运行对于用户来说也是透明的,而且虚机可以在不中断应用的情况下在物理服务器间迁移。VMware Infrastructure 3由ESX Server 3.0.1 、VirtualCenter 2.0.1、Consolidated Backup 1.0.2三个产品组成(最近又新增了一个产品Converter 3.0.1),其产品架构图如下:
ESX Server是虚拟化的基础平台,每台物理服务器上都必须安装ESX Server,提供对服务器CPU、内存、网络、存储等硬件资源的管理及虚拟化。虚拟机(Virtual Machine)就运行ESX Server之上。VMFS和Virtual SMP是ESX Server中的两个组件。 VMFS是一个高性能的集群(cluster)文件系统,用于存储拟机文件。Virtual SMP提供虚拟机的多CPU支持,一台虚拟机最多支持4颗虚拟CPU。
VirtualCenter Management Server是对企业的虚拟架构进行集中管理的控制台。通过它提供的图形界面,可以对企业的虚拟架构进行配置、监控及优化,管理每台ESX Server,实现HA、DRS、VMotion等操作。
High Availability(HA)是虚拟机高可用技术。如果HA 集群中的一台物理服务器发生了硬件故障,无法使用,VMware可以自动将运行在故障主机上的虚拟机在HA集群中的其他物理服务器上重新启动,保证虚拟机的正常运行,实现虚拟机的高可用。
VMotion也是VMWare一项核心技术。利用VMotion,可以保持应用不中断,动态地将一台虚拟机从一台物理服务器迁移到另外一台物理服务器上。
Distributed Resource Scheduler(DRS)可以动态监控整个虚拟环境的CPU和内存资源的使用情况,并根据制定的策略在物理服务器间调整所负载的虚机,实现整体资源的负载平衡。
Consolidated Backup可以实现对虚拟机的集中备份。
Converter可以将物理机转换为虚拟机,将其他格式的虚拟机(如微软的Virtual Server)转换为VMWARE的虚拟机,以及将磁盘映象文件转换为虚拟机。我们进行服务器整合的主要工作之一----物理服务器到虚拟机的迁移,就用Converter实现。
ESX Server是虚拟化的基础平台,每台用于虚拟化的物理服务器上都必须安装ESX Server。ESX Server由VMkernel和 Service Console组成,其架构如下图:
VMkernel(即上图的VMware Virtualization Layer)是ESX Server的核心,它是直接建立在服务器硬件之上的虚拟层,即Hypervisor。VMkernel直接对理服务器硬件进行管理,提供各种硬件驱动,并对CPU、内存、IO、网络等资源进行虚拟化,为虚拟机提供了一个高性能、稳定、可靠的运行环境。
目前,ESX Server对IBM、HP、DELL等主流PC服务器都支持,最多支持32颗CPU、64GB内存。在一台ESX Server上最多可运行128个虚拟机,每个虚拟机最多支持4颗“虚拟”CPU、16GB“虚拟”内存。虚拟机支持Windows、Linux、Solaris等各种X86平台操作系统。
Service Console是一个类Linux的命令行界面,用于管理VMkernel。Linux系统管理员会对ESX Server有似曾相识的感觉,很多管理命令都与Linux一样。我们可以将Service Console看成是运行在VMkernel上的第一台虚拟机,它为系统管理员提供了一个管理VMkernel的接口。各位不要认为ESX Server就是Linux,因为Linux是开放源代码的,而ESX Server的核心技术VMkernel与Linux没有任何关系,它的源代码是不公开的。
VirtualCenter用于企业级虚拟架构的集中管理。通过它提供图形界面,可以集中管理几百台ESX Server,对企业的虚拟架构进行配置、监控及优化,而不必使用Service Console的命令行对每台ESX Server进行单独管理。VirtualCenter实现了高效、自动、简单、安全的企业级虚拟化管理。