Hyper-V故障切换:构建跨站点间的集群系统

日期: 2010-04-18 作者:Greg Shields翻译:李哲贤 来源:TechTarget中国 英文

在我们开始构建支持Hyper-V故障切换的多站点集群系统前,请先了解这一系列的前两篇文章:高可用Hyper-V环境所需的硬件及Hyper-V存储设备需求。当我们把服务器连接到正确的网络和共享存储设备后,相对而言建立多站点集群系统的过程并不复杂。   首先,通过Failover Cluster Manager中带有的Validate a Configuration向导进行一系列的相关测试。如果各测试项均通过的话,就可以开始创建Hyper-V故障切换集群系统。

  通过扩展使得集群系统横跨多个站点并不是一个非常复杂的过程。现在的Windows Server 2008 R2中带有的Windows F……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

在我们开始构建支持Hyper-V故障切换的多站点集群系统前,请先了解这一系列的前两篇文章:高可用Hyper-V环境所需的硬件及Hyper-V存储设备需求。当我们把服务器连接到正确的网络和共享存储设备后,相对而言建立多站点集群系统的过程并不复杂。

  首先,通过Failover Cluster Manager中带有的Validate a Configuration向导进行一系列的相关测试。如果各测试项均通过的话,就可以开始创建Hyper-V故障切换集群系统。

  通过扩展使得集群系统横跨多个站点并不是一个非常复杂的过程。现在的Windows Server 2008 R2中带有的Windows Failover Cluster服务包含了大多数创建多站点集群所需的组件,这种集群架构也成为“扩展集群(stretch cluster)”或“区域集群(Geo Cluster)”。该服务缺失的唯一组件是用于跨越共享存储做数据复制的功能。

  单一站点集群中受限的Hyper-V故障切换

  为了真正理解多站点集群的作用,我们先来回顾单站点集群可以防护哪些故障的发生。在这种架构下,Hyper-V主机被连接到某种共享存储上。而采用的共享存储类型是非常重要的,因为主机和存储之间的连接受限于连接线缆的物理长度。光纤通道和iSCSI存储都有其距离限制,这也制约了服务器可以扩展的范围。

  这种架构可以在单台物理主机故障时很好地实现对虚拟机的保护,但是当用户面临整个站点级别的故障时,它几乎无法发挥作用。当发生灾难性事件时系统就会停机,例如发生自然灾害。或者是更常见的站点级别的故障时,例如网络或电源系统宕机。

  在站点级故障面前,单一站点集群架构是无法避免虚拟机停机的,因为主虚拟机及其进程、存储和网络设备都位于同一个站点内。而站点级故障发生后所有的这些组件都无法使用。

  为Hyper-V故障切换创建多站点集群

  多站点集群系统架构通过把集群扩展到一个或多个额外的物理站点来实现跨站点保护。在Windows Failover Clustering集群中,共享存储上的数据被复制到备用站点。

  集群存储的数据迁移多数是通过同步或异步复制实现。在同步复制方式下,两地的存储间建立内部连接通道,每次主存储数据写入时都要同时获得备份站点的确认后才算完成,新的数据才可以继续写入。这种方式是为了确保数据在两个SAN中的不同存储设备写入时可以始终保持一致性。

  同步数据复制对于数据保护而言是完美的,但是它存在性价比方面的问题。因为每次数据的迁移都必须在两个站点都返回同意后,才可以进行下一个数据写入,所以传输链路的速度会直接影响到整个系统的性能问题。

  异步数据复制通过允许数据发送端对需要复制的数据做排队处理来解决同步情况下遇到的性能问题。通过设置一定的时间间隔定期对数据做传输,然后对已传输的数据做一次性确认。因此,异步数据复制并不会遇到同步复制中面临的性能瓶颈问题,但是当站点故障发生时,用户可能会面临数据丢失的风险。

  异步复制解决方案可以是SAN存储设备内置功能,也可能是虚拟机软件或Hyper-V主机软件带有的附加功能。每种方式都有其各自的优缺点,从根本上讲,您需要在可能发生的数据丢失以及降低系统性能之间做衡量,从而决定使用哪种方式。

  我们甚至可以认为,对于两个站点间存储数据复制架构的构建和部署是多站点集群系统部署的难点所在。一旦存储系统正确配置完成,您将会发现剩下的工作都是一些细枝末节的内容。包括:在备份站点部署额外的Hyper-V主机,把它们加入到已经存在的集群系统中,完成故障切换及集群中其他内容的设置从而确保虚拟机只有在整个站点故障情况下才会启用切换到备用站点等等工作。

  另外,在多站点集群设置中还有两个需要特别注意的地方:对集群中仲裁机制(quorum)的重新配置和在备用站点名称的重解析。

  仲裁和Hyper-V故障切换

  集群系统完成这样任务的途径之一就是借助仲裁机制。本质上看,仲裁体系用于收集集群系统中所有组件的信息,然后做出决定该集群是否具备足够的资源和能力来实现其功能。

  仲裁体系通过“投票”的方式决定是否让集群系统在线。而投票机制的配置有如下几种方式:

  • 以单个主机节点为单位投票决定去留;
  • 以主机节点加共享存储设备为单位投票决定;或者是,
  • 以主机节点加第三方独立站点的共享文件系统为单位投票决定。

  在创建多站点集群系统时,请认真考虑您采用的仲裁机制。关于这部分内容,我在免费e刊“The Shortcut Guide to Architecting iSCSI Storage for Microsoft Hyper-V”的第四章节中,对多站点集群中的实践配置方法做了详细的解释。

  Hyper-V故障切换后的域名服务器设置

  多站点集群设置中最后一点需要注意的问题就是虚拟机完成从一个站点到另一个站点故障切换后的名称解析。现有的Windows Failover Cluster服务可以支持对子网(和IP地址范围)做扩展。这项功能极大简化了集群的安装和配置,因为子网无需在站点间延伸。但是如果故障切换后的虚拟机处于完全不同的IP地址范围中,这种迁移就需要处理复杂的命名重解析过程。

  简而言之,当虚拟机从主站点故障切换到备用站点后,它们也自动切换到备用站点的IP地址列表范围内。这样的结果是,这些虚拟机的IP地址设置必须在故障切换的同时做重新配置。当然,客户必须清除(flush)本地域名服务器(DNS)的内存来获取新的地址信息。

  如果把虚拟服务器设置为使用Dynamic Host Configuration Protocol的动态地址配置方式,则极大简化了配置升级的过程。对于客户而言,可以通过重启、ipconfig 或 flushdns命令或为DNS设置最小的TTL(time-to-live)时间解决该问题。

  当多站点Hyper-V故障切换集群系统在存储和数据复制方面有特殊需求时,Windows故障切换集群系统的扩展就变得非常容易。通过使用正确的技术和更好的规划,您可以扩展现有的Hyper-V高可用系统,从而实现对整个站点级故障的预防和保护。

作者

Greg Shields
Greg Shields

Greg Shields,MCSE(微软认证系统工程师),是Concentrated Technology(www.concentratedtechnology.com)共同创始人和IT技术专家。他拥有近十五年的IT架构和企业管理经验。同时,也是一名IT培训师,并对IT多个技术主题进行演讲,主要包括微软管理、系统管理及监控、虚拟化等。他最近的著作是由SAPIEN出版社出版的《Windows Server 2008: What's New/What's Changed》。

翻译

李哲贤
李哲贤

TT虚拟化特约作者

相关推荐

  • 回顾年度9大虚拟化技术

    虚拟化管理员从未放弃追寻更好虚拟化技术,以使他们的工作更快、更易于管理以及更好地优化。 我们看到,虚拟化工具在 […]

  • 从Azure VM到Hyper-V:想想这些技巧

    多年来,IT行业已经推动IT人员把工作负载转到云中。虽然在公有云中有一些好处,但有些工作负载更适合运行云本地数据中心中。

  • 功能多样的Get-VM PowerShell cmdlet,你知道多少?

    Hyper-V管理员能够使用Get-VM PowerShell cmdlet查看并调整一系列虚拟机配置信息。微软花费大量精力对PowerShell进行优化,以提升其对本地或者远程服务器的管理功能。

  • 支持Linux虚拟机:新版Hyper-V来帮忙

    大家都知道,Linux虚拟机无法利用Hyper-V针对Windows虚拟机提供的众多特性。幸运的是,情况已经发生变化,Hyper-V现在能够为Linux提供更多的支持。