Hyper-V 2.0动态迁移功能测试

特别策划

微软在Windows Server 2008 R2中增加了Live Migration(动态迁移)功能,这绝对是Windows Server 2008 R2最令人期待的改进之一。Live Migration允许在故障转移集群中将Hyper-V虚拟机从一个节点动态迁移到另一个节点,在迁移的过程中虚拟机仍然可以不间断地对外提供网络服务。

测试平台和测试步骤

Live Migration可以很好地平衡虚拟机的资源消耗,如果服务器上的负载较轻,我们可以把多数服务器上的虚拟机迁移到少数服务器上,这样就可以关闭一些服务器,以节省电力资源。如果服务器的负载越来越重,我们可以把虚拟机迁移到另一台更“健壮”的服务器上。在Windows Server 2008 R2之前,Hyper-V只能提供虚拟机的Quick Migration(快速迁移),Quick Migration在迁移虚拟机时需要中断一段时间的服务,时间长短视网络速度和内存容量而定,需要几秒到几十秒。Quick Migration的表现让微软在和老对手VMware的较量中处于下风,VMware的Vmotion可以提供非常成熟的虚拟机实时迁移解决方案,Quick Migration与Vmotion相比要逊色不少。好在现在微软有了Live Migration,终于有了一件可以和Vmotion竞争的武器了。Live Migration的诱惑确实无法阻挡,笔者忙里偷闲搭建了一个实验环境测试了一下,下面把测试结果和大家分享一下,供大家参考。

33-行业1-2-1.jpg

测试的拓扑如图所示,笔者使用了3台计算机:WSS2008是一台Dell XPS1210笔记本(2GB内存、500GB硬盘、英特尔T5600处理器),充当域控制器、DNS服务器以及模拟iSCSI存储设备;Server1是一台台式机(Athlon64 X2 5200+、8GB内存、2TB硬盘),充当故障转移集群内的第一个节点;Server2也是一台台式机(Athlon64 X2 3600+、4GB内存、1TB硬盘),充当故障转移集群内的第二个节点。测试步骤大致如下:

1.部署Active Directory

a.在WSS2008上安装Windows Storage Server 2008 X64;

b.在WSS2008上运行Dcpromo,把WSS2008提升为contoso.com域的域控制器兼DNS服务器。

小提示:Windows Storage Server 2008的默认口令是“WSS2008!”(双引号内的所有字符),安装Windows Storage Server 2008的目的是要利用这个操作系统构建集群使用的iSCSI存储,应该安装Windows Storage Server 2008的64位版本。

2.部署Windows Server 2008 R2

a.在Server1和Server2上安装Windows Server 2008 R2;

b.把Server1和Server2加入域。

小提示:Windows Server 2008 R2只有64位版本,要确保物理机的CPU支持64位运算,支持DEP,支持AMD-V或Intel-VT。

3.创建iSCSI存储

a.在WSS2008上安装iSCSI Target;

b.在iSCSI Target中创建SCSI目标,允许Server1和Server2访问iSCSI存储;

c.在iSCSI Target中创建两块iSCSI硬盘,一块用于存储集群虚拟机,一块用于集群仲裁。

小提示:MSDN或Technet的订阅用户可以从微软网站下载iSCSI Target,iSCSI Target只支持在64位的Windows Storage Server 2008上创建iSCSI硬盘。

4.配置iSCSI存储

a.在Server1上启动iSCSI Initiator,连接到WSS2008上的iSCSI存储;

b.在Server1的磁盘管理器中对两块iSCSI硬盘进行分区格式化,负责存储集群虚拟机的iSCSI硬盘盘符设定为S,负责集群仲裁的iSCSI硬盘盘符设定为Q;

c.在Server2上重复Server1的操作。

小提示:通过Windows Server 2008 R2内置的iSCSI Initiator,Windows Server 2008 R2可以把WSS2008视为一个iSCSI存储设备。按照惯例,负责集群仲裁的磁盘盘符为Q。

5.部署Hyper-V角色

a.在Server1上部署Hyper-V角色;

b.在Server2上部署Hyper-V角色。

6.创建故障转移集群

a.在Server1上添加“Failover Clustering”功能;

b.在Server1上打开“Failover Cluster Manager”,选择“Create a cluster”;

c.把Server1和Server2作为集群内的两个节点;

d.为集群配置计算机名及IP地址。

小提示:Server1和Server2都有两块网卡,一块网卡用于对外提供网络服务,还有一块网卡用于检测集群内节点的信号。

7.配置故障转移集群

a.在Server1上打开“Failover Cluster Manager”,选择“Configure Cluster Quorum Settings”;

b.选择仲裁方式为“Node and Disk Majority”,把Q盘配置为集群仲裁盘;

c.在“Failover cluster Manager”中选择“Enable Cluster Shared Volumes”,启用集群共享卷;

d.在“Failover Cluster Manager”中右键单击“Cluster Shared Volumes”,选择“Add Storage”,把Q盘配置为集群共享卷;

e.检查集群共享卷是否已经被映射到Server1和Server2的C:\ClusterStorage\Volume1。

小提示:要注意集群共享卷应该被映射到C:\ClusterStorage\Volume1。如果Windows Server 2008 R2安装在其他盘符下,如D盘,那么集群共享卷就会被映射到D:\ClusterStorage\Volume1。如果两个节点映射集群共享卷的路径不同,迁移虚拟机就会失败。我们可以考虑通过mklink创建一个符号链接,把d:\clusterstorage映射到c:\storagecluster。

8.配置高可用性虚拟机

a.在Server1上打开“Hyper-V Manager”,创建一个虚拟机,虚拟机的存储路径为C:\ClusterStorage\Volume1,即存储在集群共享卷上;

b.在Server1上打开“Failover Cluster Manager”,选择“Configure a Service or Applicaton”;

c.配置故障转移集群支持“Virtual Machine”服务;

d.把Hyper-V中刚创建的虚拟机配置为高可用性虚拟机。

9.安装高可用性虚拟机

a.在Server1上打开“Failover Cluster Manager”,定位到Server1节点下的高可用性虚拟机,选择“start virtual machines”;

b.在高可用性虚拟机中安装操作系统;

c.在高可用性虚拟机中安装虚拟机集成工具。

小提示:安装Hyper-V虚拟机后需要安装集成工具,否则虚拟机无法找到网卡。

10.测试Live Migration

a.在Server1上打开“Failover Cluster Manager”,定位到Server1节点下的高可用性虚拟机,选择“LiveMigrate virtual machine to another node”,测试把虚拟机从Server1节点实时迁移到Server2节点;

b.测试虚拟机在迁移过程中是否还可以不间断地对外提供服务;

c.测试高可用性虚拟机是否被转移到Server2节点。

小提示:可以用Ping测试虚拟机在迁移过程中是否能持续提供网络连接。

测试完毕后,笔者对Live Migration的表现还是很满意的。用Ping测试,虚拟机在迁移的过程中只丢了一个包,基本达到了动态实时迁移的要求,和之前的快速迁移相比已经不是一个档次的表现了。看看Live Migration的进步,我们再把它和VMware的Vmotion做个对比,看看谁能在竞争中占得先机。

Live Migration和Vmotion争雄

VMware的Vmotion使用的迁移技术非常成熟。当节点A上的虚拟机向节点B迁移时,Vmotion会首先把虚拟机上的内存映像从A节点复制到B节点上。在复制内存映像的过程中,虚拟机内存发生的任何更改,都会被保存到一个内存位表上,在此期间,虚拟机仍然可以对外提供服务。当内存映像全部复制到B节点后,内存位表也被复制到节点B,然后虚拟机开始在B节点启动,在此期间,虚拟机服务会有一个非常短的中断。虚拟机在B节点启动时,Vmotion会利用内存位表修改复制到B节点的内存映像,使B节点上的虚拟机内存和A节点上的虚拟机内存内容一致。

Live Migration的迁移技术与Vmotion有类似之处。当节点A上的虚拟机迁移到节点B时,虚拟机上的工作区内存(被称为工作组内存)需要从A复制到B。在复制的过程中,任何对工作组内存的修改都会被记录到修正的页面清单中。当工作组内存复制到B节点后,B节点将利用修正的页面清单修改内存数据,使它与A节点的内容相同。接下来虚拟机上的存储句柄被转移到B节点上,然后虚拟机就可以从B节点启动了。在迁移的过程中也只有极其短暂的网络中断,基本上可以保证在迁移的过程中提供不间断的服务。

Vmotion技术是动态资源调度的基础,系统可以根据优先级和性能监控的结果,自动通过Vmotion在不同物理主机之间迁移虚拟机,以便平衡数据中心的可用资源,这是VMware引以为傲的技术。Live Migration则是基于集群的迁移方案,集群最多支持16台主机,一次最多可以同时迁移8台,在这一点上微软更有优势。Vmotion需要付费获得,而Live Migration已经包含在Windows Server 2008 R2之内,无需额外付费。Vmotion的管理界面简洁,而Live Migration有SCVMM(系统中心虚拟机管理器)助阵,功能更加强大……总体来看,Vmotion在技术上仍稍微领先,但Live Migration也在多个领域体现出自己的优势。也许公正的评价是:各有千秋,各有特长!作为用户,真心希望微软和VMware能够继续进行良性竞争,把更好的产品奉献给消费者。