3.4 主流虚拟化产品
以市场占有率来说,x86平台上的主要虚拟化产品分别是VMware vSphere、微软的Hyper-V和Citrix XenServer。
3.4.1 VMware vSphere
vSphere是VMware推出的基于云计算的新一代数据中心虚拟化套件,它是以原生架构的ESX/ESXi Server为基础,让多台ESX Server能并发负担更多个虚拟机,再加上Virtual-Center,配合主流数据库软件来管理多台ESXi及虚拟机,通过将关键业务应用程序与底层硬件分离来实现前所未有的可靠性和灵活性,从而优化IT交付。
vSphere是一个整体架构而非单个产品,基本架构如图3-6所示。
vSphere的组成部件:
(1)vSphere的云端部分
平台及架构部分(PaaS和IaaS),可以分为内部云端和外部云端(即私有云与公共云)。
1)内部云端。由各种硬件资源组成,并由vSphere负责统合云端资源,在IaaS及PaaS中,资源为硬件及OS资源,硬件主要有CPU运算能力、RAM以及存储空间,而PaaS则是有各种的操作系统。
2)外部云端。vSphere可以将这些第三方提供的资源集成到企业的IT架构中。
(2)vSphere的底层:服务架构(Infrastructure Service)
Infrastructure Service主要可以分为运算部分的vCompute、存储部分的vStorage以及网络部分的vNetwork。
1)vCompute部分。包括ESX/ESXi以及分布式资源调度(Distributed Resource Scheduler,DRS)。ESX/ESXi主要实现服务器整合、提供高性能并担保服务品质、流水式测试和部署及可伸缩的软硬件架构;DRS确保按需调整资源配置,根据需要与优先级压缩和增加应用系统的资源,动态地响应负载平衡。
图3-6 VMware vSphere的基本架构
2)vStorage部分。包括VM所在硬盘的文件系统VMFS以及动态分配大小的自动精简配置(Thin Provisioning,TP)。
VMFS是专门为虚拟机设计的高性能集群文件系统,该系统可以在VMware虚拟机的VMware虚拟数据中心环境中访问共享存储。
TP是一项优化存储局域网(SAN)中可利用空间、提高存储空间利用率的技术,可按照每位用户某一时刻所需的最小空间,动态灵活地在多用户间分配磁盘存储空间。
3)vNetwork部分。VMware的网络虚拟化技术主要通过VMware vSphere中的vNetwork网络元素实现。通过这些元素,部署在数据中心物理主机上的虚拟机可以像物理环境一样进行网络互连。vNetwork的组件主要包括虚拟网络接口卡Vnic、vNetwork标准交换机vSwitch和vNetwork分布式交换机dvSwitch。
(3)vSphere的底层:Application Service
应用软件服务是针对VM的,可以让多台服务器多个VM排列组合,达到企业应用的目的。
1)可用性(Availability)。可用性就是企业的服务永远不会中断,不管是服务器蓝屏或是应用软件蓝屏,都不影响用户对服务的访问。vSphere在这方面提供的功能主要有:VMotion、Storage VMotion、HA(高可用性)、Fault Tolerance(冗余性)、Data Revovery。
2)安全性(Security)。包括vShields Zones和VMSafe两个部分。让物理机直接连上虚拟机,甚至是不同物理机上的虚拟机,而无需通过外接的防火墙或是路由器获取监控。
3)可扩展性(Scalability)。vSphere提供了DRS和Hot Add,让VM能动态转移到更快捷的物理服务器上,其中Hot Add的功能可以让VM在不关机的情况下直接添加vCPU或内存,这对系统的高可用性也有极大的帮助。
(4)vSphere的神经中枢:VMware vCenter
vCenter作为管理节点控制和整合属于其域的vSphere主机,可以安装在物理机的操作系统上,也可以安装在虚拟机的操作系统上。vCenter提高在虚拟基础架构每个级别上的集中控制和可见性,通过主动管理发挥vSphere潜能,是一个具有广泛合作伙伴体系支持的可伸缩、可扩展平台。
1)VMware vCenter Client。这是一个Windows端的实用程序,用来直接总控单台ESX/ESXi。在vSphere中,所有的VM管理、创建、运行、维护都需要靠vCenter Client。
2)VMware vCenter Server。前面所提的云端、架构、应用软件等,都要靠vCenter Server来落实。在vSphere中,vCenter Server具有动态迁移、资源优化、容错、高可用性、备份以及应用部署等高级功能。
3.4.2 微软的Hyper-V
微软公司的虚拟化技术起步比较迟,直到2003年收购了Connectix后才正式踏入虚拟化领域。2007年9月,微软正式推出一个采用类似VMware和Citrix开源Xen的基于Hypervisor的Hyper-V。Hyper-V提供了从桌面虚拟化、服务器虚拟化、应用虚拟化到表示层虚拟化的完备产品线。
Hyper-V采用了一种全新的架构,也就是Hypervisor架构。它实际上是用VMM代替Host OS。Host OS从这个架构中彻底消失,将VMM这层直接做在硬件里面,所以Hyper-V要求CPU必须支持虚拟化。这种做法带来了虚拟机OS访问硬件性能的直线提升。VMM的主要目的是提供很多孤立的执行环境,这些执行环境被称之为分区,每一个分区都被分配了自己独立的一套硬件资源。
Hyper-V的基本架构如图3-7所示。
下面对图中使用的首字母缩写词和术语进行简单的介绍。
1)子分区。承载客户机操作系统的分区,子分区对物理内存和设备的所有访问都通过虚拟机总线(VMBus)或虚拟机监控程序(Hypervisor)提供。
2)虚拟化调用(HyperCall)。用于与虚拟机监控程序进行通信的接口,可通过虚拟化调用接口访问虚拟机监控程序提供的优化功能。
3)虚拟机监控程序(Hypervisor)。驻留在硬件和一个或多个操作系统之间的软件层,其主要工作是提供称为分区的隔离执行环境,控制和裁定对基础硬件的访问。
图3-7 Hyper-V的基本架构
4)根分区。管理计算机级别的功能,如设备驱动程序、电源管理和设备热添加/移除。根(或父)分区是唯一能够直接访问物理内存和设备的分区。
5)VMBus为虚拟机总线,基于通道的通信机制,在具有多个活动虚拟化分区的系统上,用于分区之间的通信和设备枚举,VMBus随Hyper-V集成服务一起安装。
6)VSC为虚拟化服务客户端,驻留在子分区中的一种综合设备实例。VSC利用父分区中的虚拟化服务提供程序(VSP)提供的硬件资源,通过VMBus与父分区中的相应VSP通信以满足子分区的设备I/O请求。
7)VSP为虚拟化服务提供程序,驻留在根分区中,通过VMBus向子分区提供综合设备支持。
8)WMI。虚拟机管理服务公开一组基于Windows Management Instrumentation(WMI)的API用于管理和控制虚拟机。
由此可见,Hyper-V采用基于VMBus的高速内存总线架构,来自虚拟机的硬件请求(显卡、鼠标、磁盘、网络)可以直接经过VSC,并通过VMBus总线发送到根分区的VSP,VSP调用对应的设备驱动,直接访问硬件,中间不需要Hypervisor的帮助。
Hyper-V支持分区层面的隔离。分区是逻辑隔离单位,受虚拟机监控程序的支持,并且操作系统在其中执行。Microsoft虚拟机监控程序必须至少有一个父/根分区,用于运行Win-dows Server。虚拟化堆栈在父分区中运行,并且可以直接访问硬件设备。随后,根分区会创建子分区用于承载客户机操作系统。根分区使用虚拟化调用应用程序编程接口(API)来创建子分区。
分区对物理处理器没有访问权限,也不能处理处理器中断。相反,它们具有处理器的虚拟视图,并运行于每个客户机分区专用的虚拟内存地址区域。虚拟机监控程序负责处理处理器中断,并将其重新定向到相应的分区。Hyper-V还可以通过输入输出内存管理单元(IOMMU),利用硬件加速来加快各个客户机虚拟地址空间相互之间的地址转换。IOMMU独立于CPU使用的内存管理硬件运行,并用于将物理内存地址重新映射到子分区使用的地址。
3.4.3 Citrix XenServer
XenServer是Citrix推出的一款服务器半虚拟化产品。与大多数服务器半虚拟化产品相同的是,XenServer作为一种开放的、功能强大的服务器虚拟化解决方案,可将静态的、复杂的数据中心环境转变成更为动态的、更易于管理的交付中心,从而大大降低数据中心成本;与传统虚拟机类软件不同的是,它无需底层原生操作系统的支持,也就是说XenServer本身就具备了操作系统的功能,是能直接安装在服务器上引导启动并运行的。
Citrix XenServer是基于强大开源的Xen Hypervisor的免费平台,通过多服务管理平台,XenCenter具有可管理虚拟服务器、虚拟机模板、快照共享存储、资源池等功能。XenServer是一种全面的企业级虚拟化平台,用于实现虚拟化数据中心从管理基础架构到优化长期运营,并实现关键流程的自动化到交付IT服务。
XenServer主要包含以下核心功能:
1)强大的集中式管理。可以对无数量限制的服务器和虚拟机实现完全多节点管理,包括大量图形报告和警报、简易的物理到虚拟及虚拟到虚拟的转换工具,以及一个无单一故障点的弹性的、高度可用的管理基础架构。
2)动态迁移及多服务器资源共享。结合强大的XenMotion技术,使虚拟机能够在不中断服务、无停机的情况下实现服务器之间的迁移,还包括在众多物理服务器中自动平衡计算能力、优化虚拟机配置及多资源库管理。
3)经过验证的管理程序引擎。采用64位行业标准Xen开放源管理程序,该程序是由超过50家领先技术供应商联合开发的,充分利用下一代服务器、操作系统和微处理器的最新性能、安全性及可扩展性的增强功能。
4)快速裸机性能。支持无限数量的服务器及虚拟机,拥有业界领先的整合比率,在最具有挑战性的应用负载上实现接近于物理机的性能,并且在Windows和Linux环境下性能几乎零损耗。
5)简单设置及管理。采用熟悉的界面,并带有简单的配置向导、直观的Web 2.0风格搜索,以及能让新管理员易学易用的内置自助功能。
6)集成存储管理。支持任何现有存储系统,如主机逻辑卷管理、快照复制及动态多路径功能等内置存储管理功能。
XenServer是在云计算环境中经过验证的企业级虚拟化平台,可提供创建和管理虚拟基础架构所需的所有功能。它深得很多要求苛刻的企业信赖,被用于运行最关键的应用,而且被最大规模的云计算环境和xSP所采用。XenServer的体系架构如图3-8所示。
图3-8 XenServer的体系架构
XenServer主要包含以下几个方面。
1)Xen虚拟机管理程序:此虚拟机管理程序是软件的基础抽象层。此虚拟机管理程序负责底层任务,例如CPU调度,并且负责常驻VM的内存隔离。此虚拟机管理程序从VM的硬件提取,其无法识别网络连接、外部存储设备、视频等。
2)控制域:也称作“Domain 0”或“dom 0”,控制域是一个安全的特权Linux VM,运用XenServer管理Toolstack。除了提供XenServer管理功能之外,控制域还运行驱动程序堆栈,提供对物理设备的用户创建虚拟机(VM)访问。
3)管理Toolstack:也称作xapi,该软件Toolstack可以控制VM生命周期操作、主机和VM网络连接、VM存储、用户身份验证,并允许管理XenServer资源池。xapi提供公开记录的XenAPI管理接口,以供管理VM和资源池的所有工具使用。
4)VM虚拟机,用于将受欢迎的操作系统安装为VM。也就是Xen当中的Domain U。