Hyper-V快速迁移VMware虚拟化实时迁移详解

服务器在线7月9日报道 微软公司的Hyper-V虚拟化管理程序一经面世就引发了业界的普遍关注。本文意在对Hyper-V的高可用性和快速迁移能力与VMware旗下的VMotion的实时迁移能力进行对比。在进行详细分析之前,我们还需要了解为什么高可用性在虚拟化应用中起着绝对关键的作用。

虚拟化是一项令人敬畏的技术。在减少企业的总体拥有成本方面优势巨大,其中最显著的优势就是节省了能耗。以一座10,000台服务器配置的数据中心为例,如果以2:1的比例应用虚拟化技术进行服务器整合将服务器的数量减少一半,那么这退役的5,000台服务器所节省的能耗和成本将是个不可思议的数字。

每月的能源支出账单最能反映问题。事实上,实现2:1的整合比例是非常简单的。(我们内部的IT部门多年来都在使用虚拟机,目前在用的虚拟机数量超过了2,500台,很容易就能实现8:1的比例整合。有了Hyper-V之后,服务器整合的比例还将迅速攀升)。

然而,虚拟化并非完美无缺的。虚拟化产生的主要问题是单点故障。过去用户可以在他们的每台物理服务器上运行20项工作负载。当其中一台服务器宕机时,虽然很糟糕,但不至于波及到整个服务器网络。

而在虚拟化环境里,如果20项工作负载都在一台服务器顶部运行,那么一旦物理服务器宕机会发生什么呢?那就意味着所有的工作负载都会陷入瘫痪。这就不止是糟糕而是个灾难了。事实上大量虚拟化用户都反映了这个单点空白的问题:

虚拟化是项了不起的技术,但那是如果没有高可用性解决方案就无法实施虚拟化的部署。如果虚拟机宕机又没有配套的高可用性解决方案,那数据中心管理者就会因此而失业。

以上是我们对虚拟化部署中高可用性的重要作用的概括总结。

有了高可用性的概念,我们就知道要为计划内和非预期的宕机提供解决方案。计划内宕机是两种宕机中相对容易解决的一种(因为在计划内)也非常普遍。通常来说,硬件设备(添加内存,存储设备或者升级BIOS)或软件补丁都在计划内宕机之列。多数用户都会提前为宕机预留时间(清晨或者周末)。

非预期的宕机解决起来就相对较难。当一台服务器遭遇突然断电时,用户就希望服务器上运行的虚拟机能在没有用户干预的情况下实现在其他服务器上的自动重启。

Hyper-V管理程序与Windows Server 2008操作系统的Failover Clustering相结合,即使用户拔掉电源插头,所有的虚拟机也无需用户操作就能在其他节点上自动重启。另外,Windows Server 2008操作系统企业版和数据中心版本都包含这个功能(无需额外收费)。

我需要特别强调的是:

虚拟化与高可用性紧密相关;如果用户在没有高可用性解决方案的情况下部署虚拟化,用户就应该重新评估他们的实施战略。
Hyper-V管理程序包含完整的高可用性解决方案并与Windows Server 2008操作系统企业版和数据中心版本绑定,无需额外收费

接下来我们来讨论计划内宕机,并对快速迁移和实时迁移之间的不同加以比较;通过上周我从用户处得到的反馈,我意识到先要对一些疑惑做出解释。

用户用电子邮件的方式表示VMotion非常适用于非预期的主机宕机,因为它能实现虚拟机的实时迁移,所以是更好的高可用性解决方案。但这并不能简单套用到这个案例里。

在非预期的宕机情况下,由于没有预兆VMotion也不能实时迁移。取而代之的是用户必须配置VMware的高可用性解决方案。最好的做法是在其他服务器上重启受到影响的虚拟机,这与Windows Server 2008 Hyper-V以和Failover Clustering的做法是一样的。

以下引用VMware的文件对自动高可用性服务器的描述,第一页第二段这样说道:

"使用VMware的高可用性解决方案,虚拟机能在硬件故障的时候自动重启~"

第8页这样描述:

"VMware的高可用性如何工作?

VMware的高可用性解决方案能连续监控集群上托管的所有ESX服务器并对硬件故障进行探测。每台主机上放置的代理服务器都保持和集群上其他主机的密切联系。高可用性解决方案会全天候监控集群资源是否充足,以备能在发生主机故障时随时在不同的物理主机上重启虚拟机。"

从这点上看,VMware的高可用性解决方案和Hyper-V的failover clustering实现的是同样的功能:那就是在其他的服务器上重启虚拟机。没有谁好谁坏之说。如果你仍然不相信我,找一台ESX Servers,切断电源试一下(别说我没警告你)。

之前我们讨论了高可用性解决方案对于非预期主机宕机的重要性。现在让我们继续探讨计划内宕机下快速迁移和实时迁移的比较。首先让我们先了解一下用户为什么需要迁移功能?

要实施计划内宕机主要出于两个原因:

1.硬件维修。硬件的更新换代需要添加额外的内存,存储或者BIOS升级。这时服务器就必须脱机,用户要将服务器上的工作负载在预定维修时间内快速进行迁移。

2.对主机操作系统进行补丁升级。如果根分区需要打补丁而补丁程序又需要重启,然后用户在预定的维修时间里将虚拟机快速迁移(需要指出的是运行Hyper-V最好的办法是用Server Core安装,这样能减少为Windows操作系统打补丁的需求)

我们曾就询问过使用实时迁移功能的用户,是否他们因此改进了维护流程,特别是当他们进行硬件升级的情况下。多数回答是:"不,我们仍然为服务器的宕机时间做了计划"。甚至是使用实时迁移的用户也是在宕机情况下维护硬件的。