Hyper-V 2.0搅动虚拟化市场的鳗鱼
特别策划
Windows Server 2008 R2(RC版)推出已经有一段时间了,与万众瞩目的Windows 7相比,它很少被大家热议,这一切都因为它特殊的市场定位及更专业的应用。如果你是企业用户,比较看重服务器应用,那么Windows Server 2008 R2绝对值得关注。虽然从命名编号来看,Windows Server 2008 R2 仅仅是Windows Server 2008的升级版,但Windows Server 2008 R2为企业用户带来的价值并不逊色于Windows 7,或许它集成的Hyper-V 2.0将会改变当前虚拟化市场的格局。
微软虚拟化平台改进大
作为新一代服务器操作系统,Windows Server 2008 R2进行了诸多改进,但对企业IT管理员来说,Windows Server 2008 R2所集成的Hyper-V 2.0虚拟技术最具吸引力。
1. Hyper-V 2.0新增Live Migration功能
微软是在2008年6月发布Windows Server 2008的时候引入Hyper-V的,这对服务器虚拟化用户来说是很有吸引力的。相对于Hyper-V 1.0来说,Hyper-V 2.0最大的改进就是开始支持Live Migration(动态迁移)功能,这也是微软用来应对VMware倍受欢迎的Vmotion技术的。Live Migration的作用到底有多大呢?这个答案也许你会觉得很简单,如果你的物理主机已经装载了太多的虚拟机(VM),这些虚拟机之间相互抢占系统资源的时候,你当然想把其中的一些虚拟机移到其他服务器上,而Live Migration可以让你不必关机就能实现虚拟机迁移,这难道不好吗?另外,假如你碰到一些小的网络错误,这时你一定希望将一些比较重要的虚拟机移到不同网段的其他物理主机上,这样你就可以安心地对这台主机进行维护……以上这些情况很容易出现,因此将虚拟机从一台主机上移动到另一台主机是有益的,这样用户的压力会大大减少。当企业广范应用服务器虚拟化之后,动态迁移就成为虚拟机管理的一项最重要的功能。
那么,Hyper-V 2.0的动态迁移相对Hyper-V 1.0的快速迁移(Quick Migration)有什么进步呢?简单的回答就是:前者的迁移速度更快,这两者之间最大的差别在于迁移过程。当实施快速迁移时,虚拟机立即处于保存状态,在保存状态下虚拟机在主机上释放其内存预定,并将内存页存储到磁盘,完成这样的操作后,目标主机接管虚拟机,然后再次运行虚拟机。使用快速迁移,将虚拟机改为保存状态是迁移过程中最耗时间的,假设物理主机有2GB内存、1000Mbps以太网iSCSI连接,需要花费30秒左右才能完成从一台主机到另一台主机的虚拟机迁移。尽管从技术上来看,在迁移过程中虚拟机不用重新启动或关闭,但在快速迁移期间虚拟机是不可用的——虚拟机不响应客户端或在网络上不可用。对于多数应用环境来说,30秒的宕机时间太长了,这意味着许多客户端要像经历断电似的进行虚拟机快速迁移,对于高可用性需求的环境来说这是不可取的。
而使用动态迁移功能,虚拟机迁移所带来的宕机时间基本上降为零。尽管会有轻微延迟,但这种延迟(与VMware Vmotion类似)并不会影响到网络上的客户端,这使虚拟机动态迁移功能成了用户在需要不间断工作时迁移虚拟机的首选。Hyper-V 2.0的Live Migration的目标是尽可能地将一个运行的虚拟机从源物理主机上不间断地移动到目标物理主机上。
2. Live Migration是这样工作的
在动态迁移的第一阶段,源物理主机(即源服务器)与目标物理主机之间首先会建立一个TCP连接(图1),这个连接被用来传送虚拟机设置数据给目标物理主机。根据设置数据在目标物理主机上建立虚拟机,分配给迁移的虚拟机的内存是通过网络复制到目标物理主机上的。这种内存是迁移的虚拟机的工作区,一个内存页为4KB大小。假设有一个命名为NYC-SVR2的虚拟机,迁移到另外一台物理主机上,且被设置为1024MB的内存,整个1024MB的内存将被分配给这个虚拟机来组成NYC-SVR2的工作组,利用NYC-SVR2工作组内的内存页复制到目标物理主机。在迁移的这个阶段,迁移的虚拟机持续运转,这中间会经历好几次复制内存页的过程,每次需要复制到目标物理主机的内存页数量会减少。在工作组被复制到目标物理主机后,动态迁移开始下一步,而最终的内存页复制过程是将虚拟机剩余修改完毕的内存页面复制到目标物理主机,同时源物理主机将虚拟机的注册表和设备状态传送到目标物理主机。
不过在动态迁移中,物理主机需要配置微软故障转移集群服务,因此必须使用共享存储。其实微软在此前已经为Hyper-V 2.0准备了一项技术——集群共享卷(Cluster Shared Volumes,CSV)。如果用户此前使用过Hyper-V 1.0创建一个虚拟机集群的话,需要在SAN(存储域网络)中为每个虚拟硬盘划分出一个LUN(逻辑单元号),因为它不支持一个跨主机的锁定机制以共享驱动,仅限于每个LUN的单个虚拟机,Hyper-V 1.0里的集群只能感知到捆绑在磁盘上的资源所有权。这在小型环境中没有问题,但对于大型环境来说管理问题就是一个噩梦。借助CSV,用户可将多个虚拟机分配到一个LUN中,同时虚拟机本身仍然默认每个虚拟硬盘是位于属于自己的LUN中(图2)。所有CSV卷被保存在ClusterStorage根目录下,这样管理不同卷就像是点击使用Windows 浏览器一样简单。
因为CSV为集群中的节点提供了连续的文件命名空间,所有保存在CSV卷中的文件都有相同的名称和路径,所有的集群节点都可以使用这些完全验证的路径共享卷。CSV最大的特点就是所有的集群节点可以同时访问CSV中的内容,让不同的节点进入一个VHD(虚拟磁盘)文件时没有任何拖延,不需要再为每个虚拟机占用一个LUN来容错。同时由于支持CSV架构,集群节点连接性的容错能力有所加强,这对运行在集群中的虚拟机有直接影响。CSV架构采用了一种被称为动态I/O重新定向的机制(图3),其中I/O可以基于可用的连接性被重新路由到备援集群中。
可以被重新定向的第一种故障类型就是集群节点之间共享存储的集群节点连接性故障,通常出现在SAN中。如果在某个节点(比如图3中的节点2)上的SAN连接出现故障,I/O操作通过网络被重新定向到节点1上,然后节点1运行通往SAN的I/O操作,这让用户可以将运行在节点2上的虚拟机动态迁移到节点1上。
3. Hyper-V 2.0进步有多大
需要说明的是,相对于Hyper-V 1.0,Hyper-V 2.0支持在主机上安置64个裸机处理器,在这样的基础架构下,Hyper-V 2.0可以实现每个虚拟机使用4个虚拟CPU和64GB虚拟内存。这样用户不需要重启虚拟机操作系统就可以添加一个运行中的虚拟机,而且还可以频繁地分配内存,不会对服务造成任何影响。另外Hyper-V 2.0的网络相关功能也有所加强,Hyper-V 2.0支持在网卡方面进行TCP/IP处理的VM Chimney(TCP Offload)和在虚拟环境网络通讯方面的VMQ(Virtual Machine Queues)功能,可以将访问存储器的速度加快。它也可以即时改变网络传输中数据包的大小,使得数据包在传输时更具效率,数据包大小的上限被修改为512KB,因此能够转化为大概40MB的吞吐量,这是一项令人激动的改进。同时广域网文件拷贝也有明显进步,微软称中小文件上传最多提速20%,中小文件下载最多提速47%,大文件上传最多提速100%,使用命令行复制程序RoboCopy,结合新的多线程传输技术,在广域网上拷贝文件最多可以带来8倍的速度提升。
针对Hyper-V 2.0,微软还专门同步升级了管理工具,它可以帮助增强物理服务器的利用率,实现虚拟机的集中管理,同时帮助管理员更快地对新虚拟机进行配置。虚拟机管理器在管理不同Hyper-V2.0物理主机时非常有用,如可方便地管理位于远程站点的Hyper-V 2.0物理主机。当虚拟机管理器管理一个被设置成高可用性的Hyper-V 2.0主机时,它可以从管理控制台发出动态迁移命令。



Hyper-V 2.0能成功吗
相比Windows Server 2008 来说,Windows Server 2008 R2提供了一些增强功能,不过更多用户是从虚拟化方面来看待这次升级。现在Hyper-V已经成为VMware一个不容忽视的竞争对手,Hyper-V 2.0或许已经成为微软提高服务器虚拟化市场份额的杀手锏。
虽然过去VMware一直在积极规划未来以确保自己在服务器虚拟化市场上的领先地位,比如他们最新推出的以云为中心的vSphere(一度被认为是VMware的杀手锏),但是Hyper-V2.0的出现使得VMware手中的王牌价值锐减,特别是对那些在数据中心配置了很多Windows服务器的企业用户来说。在今年的微软技术教育大会(TechEd)上,有关专家就将VMware vSphere和Windows Server 2008 R2的成本进行了比较。微软宣称拥有vSphere难以比拟的低成本虚拟环境架构,如果在功能方面能追赶上vSphere的话,Hyper-V将进一步普及。
Hyper-V 2.0具有部署成本低的优势,这对于很多企业用户来说非常有诱惑力,特别是在目前金融危机下,企业资金紧缺的严峻时期。实际上配置Hyper-V管理程序的大多数用户来自中小型企业,Hyper-V管理程序让他们使用虚拟化成为可能。当然VMware和Citrix、Xen也有免费提供的管理程序,但是它们的定位是以管理工具为中心的,而管理工具主要是针对大型配置设计的,价格也不便宜。微软的设计则是以易于使用为卖点的。
不过,目前微软面临的最严峻的问题是跨平台应用。不能否认微软的Windows系统目前依然是桌面操作系统的绝对主流,但问题是企业的虚拟化不会去虚拟那些桌面PC,而是要进行服务器虚拟化,可微软的Windows Server 系统目前市场占有率并不是很令人满意。且不论微软是否准备推出针对linux/Unix版本的虚拟化产品,单就它将Hyper-V绑定于自家的Windows Server 2008中便可看出,微软在跨平台与兼容性上并不是很自信,而且微软Hyper-V 2.0依然沿用半虚拟架构,对于硬件存在着依赖,这些都将成为Hyper-V 2.0未来发展道路上的障碍。Hyper-V 2.0能成功吗?它能成为服务器虚拟化市场上的一条凶狠的鳗鱼吗?让我们拭目以待!