【VMware虚拟化解决方案】私有云的基石VMware vSphere 5.5

马博峰

       我们知道可以通过虚拟化的技术来进行服务器的整合,节省物理资源浪费的情况,在了解虚拟化的同时,我们也要对虚拟化的架构有所了解,这样能更深层次地去了解虚拟化。不过,虚拟化的架构有很多种类,所以在了解VMware的虚拟化之前,我们先了解一下虚拟化技术。虚拟化技术是一个术语,用来描述一个软件的堆栈,或者是一个操作系统的功能,这项技术用于实现在同一个物理资源上建立虚拟机。基于不同的虚拟化类型,一些虚拟化层运行在操作系统之上,或者直接运行在硬件资源(比如处理器、内存和网卡)上。后面,我们将了解这些不同类型的虚拟机管理程序。谈起它的历史,要追溯到1965年,当时IBM首次升级360大型机系统代码和计算平台来支持内存的虚拟化,通过这项技术的不断发展,虚拟化得到了极大的增强。下面,我们就来讨论虚拟化类型的种类。

(1)Type1类型:裸金属架构虚拟化层

     Type1类型或者说裸金属架构的虚拟化是运行在服务器硬件之上,如图所示,这种虚拟化的类型能得到更好的硬件控制,从而实现了更稳定的性能和更高的安全性。虚拟机操作系统(VM)运行在裸金属架构虚拟化层(Hypervisor)之上,而裸金属架构虚拟化层(Hypervisor)运行在硬件层(Hardware)之上。目前在市场上使用这种虚拟化架构的产品有Microsoft的Hyper-V、VMware vSphere的ESXi和Citrix的XenServer。

clip_image001

(2)Type2类型:寄居架构虚拟化层

     Type2类型或者说寄居架构虚拟化层是作为一种应用程序运行在操作系统之上的,这就是寄居架构虚拟化层通常被称为托管的虚拟机管理程序的原因。在Type2类型的虚拟化环境中,虚拟机操作系统(VM)都运行在虚拟化层之上,从图1-5可以看出,Type1类型和Type2类型在架构方面上存在一些差异。Type1类型的裸金属架构虚拟化层(Hypervisor)运行在硬件层(Hardware)之上,而Type2类型中,我们可以看到虚拟化层(Hypervisor)是安装在操作系统层(Operating System)之上的。虚拟机操作系统(VM)不允许直接访问硬件资源,这种没有办法直接访问硬件资源的设计,会带来没有必要的资源开销,所以在Type1类型中,虚拟机(VM)直接通过虚拟化层(Hypervisor)得到资源,而虚拟化层(Hypervisor)直接调用硬件层(Hardware)资源。在Type2类型中,虚拟机(VM)直接通过虚拟化层(Hypervisor)得到资源,而虚拟化层(Hypervisor)不能直接调用硬件层(Hardware)资源,而是通过安装在硬件层的操作系统中得到资源,这样一来,硬件层的一部分资源还要维持操作系统层(Operating System),造成一定的资源损失。Type 2类型还有一个缺点,就是如果系统程序安装的是Windows NT系统,如果发生故障,则虚拟化平台也将发生故障,并终止服务,这一点大家一定要注意。属于Type 2类型的虚拟化产品主要有Microsoft的Virtual PC和VMware vSphere的 VMware Player、VMware Workstation。Type2类型的虚拟化层如图所示。

clip_image003

(3)Monolithic hypervisors虚拟化层

     Monolithic hypervisors虚拟化层是Type1类型的一个子类型,这种类型的虚拟机管理程序的驱动程序来自虚拟操作系统,它要求Hypervisor感知设备驱动,并被托管和管理在“Hypervisor层”,如下图所示。所以,如果使用Monolithichypervisors虚拟化层时会带来一些好处,但是也有一些不足。好处是他们不再需要父操作系统来控制,可以直接控***务器硬件,提高更好的性能。而不足之处主要有两点:

不是每一个硬件提供商都为此类型的虚拟机管理程序提供驱动,这是因为有一些不同的主板和其他设备都有不同的驱动程序,因此,找到一个兼容的硬件驱动供应商支持可能是一个潜在的艰巨的任务。

Monolithic hypervisors虚拟化层他允许虚拟机监控程序接近内核kernel (Ring 1)和硬件资源,这可能会造成恶意后门的打开。一旦恶意后门被打开,恶意***者就可以控制运行在服务器上所有的虚拟机了。

VMware vSphereESXi Server就采用Monolithichypervisors虚拟化层。

clip_image004

(4)Microkernel hypervisors 虚拟化层

     Microkernel hypervisor虚拟化层不需要设备驱动,因为它的设备驱动是独立运行在“控制层”的。相应的,Microkernel hypervisor虚拟化层的设备驱动程序一般都运行在kernel mode (Ring 0)和可信的操作系统(OS)的用户模式(Ring 3)中,只有当CPU和内存发生调度时,才会运行在Ring 1中。Microkernel hypervisor虚拟化层的虚拟机监控程序的优点是,由于大多数硬件制造商都会提供操作系统,并提供的操作系统会兼容Microkernel hypervisors设备的驱动程序,所以找到兼容的硬件是很容易的。Microkernel hypervisor虚拟化层如图所示。

clip_image006

     Microkernel hypervisors虚拟化层要求驱动程序必须安装在物理机上运行的操作系统中,并且必须运行在虚拟化层的父分区中,这就意味着我们不需要将设备驱动程序安装在每个虚拟机操作系统子分区(VM)上,因为当这些虚拟机操作系统需要访问主机上的物理硬件资源计算机时,不需要访问硬件,而只需要和父分区进行通信即可。微软Hyper-V的架构采用的就是Microkernel hypervisors虚拟化层。

     Microkernel hypervisors优点包括:

     设备驱动不需要为将每个设备都纳入Hypervisor层或者VMM Kernel。由于微软没有提供应用程序编程接口(API)来访问“Hypervisor层”,受到***的可能减小,没人可以插入将外部代码到插入“Hypervisor层”。

     设备驱动不需要Hypervisor的感知,所以这种架构可以使用更多的设备。不需要关闭“Hypervisor层”,包括设备驱动程序。设备驱动程序可以安装在操作系统运行的“控制层”,可以使用虚拟机访问“硬件层”的硬件Microkernelized Hypervisor架构。除了服务器虚拟化之外,在“控制层”允许安装任何其他的服务器。因为Hypervisor代码只有600KB,因此“Hypervisor层”不需要很多时间来初始化组件。

     Microkernel hypervisors缺点包括:

     在操作“Hypervisor层”之前,需要在“控制层”安装操作系统,这是最大的一个缺点。

     如果“控制层”正在运行的操作系统崩溃,无论是任何原因导致的,所有的虚拟机也都会崩溃。这就会进一步导致需要花费更多的经费在“控制层”的操作系统与“Hypervisor层”的虚拟机上。

     VMware vSphere 利用虚拟化功能将数据中心转换为简化的云计算基础架构,vSphere是VMware推出的基于云的新一代数据中心虚拟化套件,提供了虚拟化基础架构、高可用性、集中管理、监控等一整套解决方案。VMware 于2001 年正式推出了企业级虚拟化产品ESX,到了现在,历经了六代演进。而整个架构功能经过不断扩展,也越来越充足。作为云操作系统,VMware vSphere 可利用虚拟化功能将数据中心转换为简化的云计算基础架构,使 IT 组织能够提供灵活可靠的 IT 服务。

     vSphere 的两个核心组件是 VMware ESXi 和 VMware vCenter Server。ESXi 是用于创建和运行虚拟机的虚拟化平台。vCenter Server 是一种服务,充当连接到网络的 ESXi 主机的中心管理员。vCenter Server 可用于将多个主机的资源加入池中并管理这些资源。vCenter Server 还提供了很多功能,用于监控和管理物理和虚拟基础架构。还以插件形式提供了其他 vSphere 组件,用于扩展 vSphere 产品的功能。

     如果说Active Director是Microsoft windows网络及其产品的基础,那么VMware ESXi Server则是VMware企业产品的基础,无论是Vmware vSphere,合适VMware view,以及vCloud,这一切产品的基础都是VMware ESXI Server,可以说,VMware云计算及企业虚拟化的基础就是ESXi Server。

     VMware vSphere 5.5 是 VMware 旗舰级虚拟化平台的最新版本。 VMware vSphere,许多群体称之为“ESXi”,是底层虚拟化管理程序体系结构的名称。它是一种直接安装在物理服务器之上并将物理服务器划分成多个虚拟机的裸机虚拟化管理程序。 每个虚拟机与其他虚拟机共享相同的物理资源,并且它们可以同时运行。 与其他虚拟化管理程序不同,vSphere 的所有管理功能都可以通过远程管理工具提供。 由于没有底层操作系统,安装空间占用量可缩减至 150 MB 以下。ESXi 裸机虚拟化管理程序体系结构不再依靠服务控制台来进行命令行管理。 通过将管理功能转移到 VMkernel,VMware vSphere ESXi 虚拟化管理程序将其占用的总空间从 2 GB 减少到 150 MB。 由于缩小了恶意软件和网络威胁的***面,因此vSphere 环境的安全性和可靠性得到了显著提高。

     具有一定虚拟化经验的工程师知道,在VMware vSphere 5.0版本之前,存在2个版本,即VMware ESXI Server和VMware ESX Server,在之后版本中,包括现在最新的版本的VMware vSphere 5.5.1,已经没有了VMware ESX Server,但是我们依然要了解VMware ESXI Server和VMware ESX Server之间的区别。Mware ESX 和 VMware ESXi 都是直接安装在服务器硬件上的裸机管理程序。二者均具有业界领先的性能和可扩展性,不同之处在于 VMware ESXi 采用了独特的体系结构和操作管理方法。尽管二者都不依赖操作系统进行资源管理,但 VMware ESX 依靠 Linux 操作系统(称作服务控制台)来执行以下两项管理功能:执行脚本,以及安装用于硬件监控、备份或系统管理的第三方代理。ESXi 中已删除了服务控制台,从而大大减少了此管理程序的占用空间,实现了将管理功能从本地命令行界面迁移到远程管理工具的发展趋势。更小的 ESXi 代码库意味着“受***面”更小,需要修补的代码也更少,从而提高可靠性和安全性。服务控制台的功能由符合系统管理标准的远程命令行界面取代。

clip_image008

     VMware vSphere ESXi 采用无代理方法,通过一种基于 API 的合作伙伴集成模型来进行硬件监控和系统管理。 管理任务通过 vSphere Command Line Interface (vCLI) 和 PowerCLI 提供的远程命令行执行。 PowerCLI 使用 Windows PowerShell cmdlet 和脚本实现了自动化管理。当使用 ESXi Shell 时,不再依赖共享的 root 帐户。 获分管理特权的本地用户会自动获得完全 Shell 访问权限,无需以 root 用户身份通过执行“su”来运行命令。 vSphere 5.5 将 Shell 和直接控制台用户界面中的所有用户活动都记录在相应用户的帐户之下。 这种日志记录方式可确保分清用户责任,方便审核用户活动。

     了解了VMware vSphere ESXi,那么什么是 VMware vCenter Server?VMware vCenter Server 提供了一个集中式可扩展平台来管理虚拟基础架构。vCenter Server 可管理VMware vSphere 环境,vCenter Server充当连接到网络的 VMware ESXi 主机的中心管理员的服务。vCenter Server 指导虚拟机和虚拟机主机(ESXi 主机)上的操作。vCenter Server 是一种 Windows 服务,安装后自动运行。vCenter Server 在后台持续运行。即使没有连接任何 vSphere Web Client,也没有用户登录到vCenter Server 所在的计算机,vCenter Server 也可执行监控和管理活动。它必须可通过网络访问其管理的所有主机,且运行 vSphere Web Client 的计算机必须能通过网络访问此服务器。

clip_image010

     vCenter Server 可从单个控制台集中管理虚拟化主机和虚拟机。IT 管理员能够从一个位置深入了解虚拟基础架构所有关键组件的配置。有了 vCenter Server,虚拟环境变得更易于管理:一个管理员就能管理数百个工作负载,在管理物理基础架构方面的工作效率提高一倍以上。为了从始至终地遵循关键业务应用服务级别协议 (SLA),需要自动执行主动式管理,以便充分利用 vSphere 的功能。vCenter Server 支持的关键功能包括 VMware vSphere vMotion、vCenter Single Sign On 、VMware vSphere Distributed Resource Scheduler、VMware vSphere High Availability (HA) 和 VMware vSphere Fault Tolerance。利用VMware vCenter Orchestrator,管理员还能够创建并轻松实施最佳实践工作流。通过自动执行主动管理,vCenter Server 能够动态调配新服务、平衡资源和自动实现高可用性,从而达到相应的服务级别要求。

     VMware vSphere有不同的版本,每个版本对应的功能也不同,并且VMware vSphere的授权方式是各个版本均按 CPU 数量许可。vSphere 的部署需要一个VMware vCenter Server 实例

clip_image012

clip_image014

     vSphere Essentials Kit 适用于小型企业,借助 vCenter for Essentials 将最多三台物理服务器的虚拟化与集中化管理结合在一起。 vSphere Essentials Plus 也可以通过 vSphere Storage Appliance 获得。vSphere Essentials Kit for Retail and Branch Offices 和 vSphere Essentials Plus for Retail and Branch Offices 是为在分支机构和远程办公室中部署而设计的特殊套件。 这些版本提供打包的解决方案来扩展整个组织的敏捷性、安全性和高效性,并支持从本地或中央位置远程管理办公室部署。

clip_image016

     VMware vSphere 5.5版本预计在2013年第三季度随vCloud套件发布。届时vSphere 5.5将包含一长串新特征和增强功能,如可利用flash在vSphere主机读取缓存,某些监控应用程序获得高可用性等新特征,另外,备份、复制、单点登录、网络故障排除、Web客户机和主机的硬件支持等方面的性能都有所增强。其中虚拟机磁盘大小不再局限于2TB。vSphere 5.5中,VMDK文件最大值增加到62TB。你可能会问为什么是这个数字呢?比64TB小的原因是,VMware为快照和任何其他所需的服务留出了空间。现有VMDK文件必须在离线状态进行扩展。旧版本的VMware虚拟机存在一个限制,即支持很少数量的虚拟设备。vSphere 5.5版引入了虚拟硬件10,通过AHCI(先进的主机控制器接口)支持增加了基于SATA的虚拟设备节点。由于今后苹果将取消IDE设备的支持,OS X客机需要支持AHCI。每个VM有可能连接多达120台设备。虚拟硬件10添加了一些新的图形功能支持。最重要的是同时支持AMD和Intel GPU。另外,新增了在不同的硬件平台之间热迁移虚拟机的功能,包括不同的GPU支持。在此之前,需要类似的硬件才能进行热迁移。此次更新还包括支持OpenGL 2.1。OpenGL 2.1是流行的Linux发行版,包括Fedora 17和Ubuntu 12的默认图形API。

     在真正的大型数据中心,为一个特定的目的确定适当的存储类别可以说是一项挑战。图中你可以看到打印服务器被分配给一个新的虚拟机存储策略。由此创建的新政策可以应用到所有需要打印服务器存储的虚拟机,从而简化了存储配置。LACP(链路汇聚控制协议)可以帮汇聚多个物理网卡的带宽。vSphere 5.1在每个分布式交换机上只支持一组LACP,严重限制了聚合数量,而vSphere 5.5支持多达64个。另外,现在可以将LACP配置作为模板使用在其他主机上,有22种不同的散列算法可在链接上分发负载。有时候有必要通过捕获网络上的数据包来追踪问题。最新版本的vSphere包含了一个增强版的开源包分析器tcpdump和大量的镜像端口选项来捕获不同地区的流量。你可以从虚拟NIC、虚拟交换机以及主机层面的上行路线上捕获数据包。目前虚拟网络中,主机A到主机B的流量移动类似于你看到的有复杂交换机的物理网络。vSphere 5.5的分布式交换机现在能够利用IP包头部中的区分服务代码点(DSCP)形成和管理第三层网络流量。又可以成为DiffServ,就像在许多高端物理交换机上的访问控制列表功能。可以在分布式交换机上配置个人规则,来处理特定类型的流量,以便在必要的时候提供更高的服务质量。

     vSphere的Web客户端也获得了一些增强。很多反映了用户的反馈,如图中的“十大最新对象列表”。其他用户体验改进包括新的拖放支持,以及能够为大型设备过滤搜索结果。

     与此同时,vCenter Server Appliance提升了可扩展性。以前的版本支持有限数量的主机和虚拟机,但这次的数量已经增加到500台主机和5000台虚拟机。

     VMware也倾注了大量的精力使vCenter单点登录的安装更简单,更容易扩展到多vCenter服务器实例。vSphere 5.5甚至将包含一套诊断工具。以前版本的vSphere复制一直只保留虚拟机的最新副本。5.5版本可以保持24个历史快照。你可以每天24天或每天每小时保留一个副本。总是恢复最近的副本,但是你可以使用快照管理器恢复到任何其他的时间点。

     以下表格是vmware vSphere5.1和vSphere5.5在功能上和最大配置上的对比。  

Maximum

Type

Category

vSphere 5.1

vSphere 5.5

Virtual disk size

VM

Storage

2TB minus 512 bytes

62TB

Virtual SATA adapters per VM

VM

I/O Devices

NA

4

Virtual SATA devices per virtual SATA adapter

VM

I/O Devices

NA

30

xHCI USB controllers

VM

I/O Devices

1

NA

Logical CPUs per host

Host

Compute

160

320

NUMA Nodes per host

Host

Compute

8

16

Virtual CPUs per host

Host

Compute

2048

4096

Virtual CPUs per core

Host

Compute

25

32

RAM per host

Host

Compute

2TB

4TB

Swap file size

Host

Compute

1TB

NA

VMFS5 - Raw Device Mapping size (virtual compatibility)

Host

Storage

2TB minus 512 bytes

62TB

VMFS5 - File size

Host

Storage

2TB minus 512 bytes

62TB

e1000 1Gb Ethernet ports (Intel PCI‐x)

Host

Networking

32

NA

forcedeth 1Gb Ethernet ports (NVIDIA)

Host

Networking

2

NA

Combination of 10Gb and 1Gb Ethernet ports

Host

Networking

Six 10Gb and Four 1Gb ports

Eight 10Gb and Four 1Gb ports

mlx4_en 40GB Ethernet Ports (Mellanox)

Host

Networking

NA

4

SR-IOV Number of virtual functions

Host

VMDirectPath

32

64

SR-IOV Number of 10G pNICs

Host

VMDirectPath

4

8

Maximum active ports per host (VDS and VSS)

Host

Networking

1050

1016

Port groups per standard switch

Host

Networking

256

512

Static/Dynamic port groups per distributed switch

Host

Networking

NA

6500

Ports per distributed switch

Host

Networking

NA

60000

Ephemeral port groups per vCenter

Host

Networking

256

1016

Distributed switches per host

Host

Networking

NA

16

VSS portgroups per host

Host

Networking

NA

1000

LACP - LAGs per host

Host

Networking

NA

64

LACP - uplink ports per LAG (Team)

Host

Networking

4

32

Hosts per distributed switch

Host

Networking

500

1000

NIOC resource pools per vDS

Host

Networking

NA

64

Link aggregation groups per vDS

Host

Networking

1

64

Concurrent vSphere Web Clients connections to vCenter Server

vCenter

Scalability

NA

180

Hosts (with embedded vPostgres database)

vCenter Appliance

Scalability

5

100

Virtual machines (with embedded vPostgres database)

vCenter Appliance

Scalability

50

3000

Hosts (with Oracle database)

vCenter Appliance

Scalability

NA

1000

Virtual machines (with Oracle database)

vCenter Appliance

Scalability

NA

10000

Registered virtual machines

vCloud Director

Scalability

30000

50000

Powered-On virtual machines

vCloud Director

Scalability

10000

30000

vApps per organization

vCloud Director

Scalability

3000

5000

Hosts

vCloud Director

Scalability

2000

3000

vCenter Servers

vCloud Director

Scalability

25

20

Users

vCloud Director

Scalability

10000

25000