www.hj8828.com 1

服务器集群高可用性注意事项:DNS与故障转移

无论是一台虚拟机崩溃或是主机出错,高可用性虚拟化HA)应用工具保证可以自动重启出错的虚拟机。这些HA应用却为开发人员和服务器管理员带来了不切实际的希望。

即使虚拟化逐步成熟,高可用性HA仍然是集群里最难懂的组件之一。服务器集群能启动高可用性,它是一个hypervisor功能,当虚拟机崩溃时能限制宕机时间。VMware
vSphere、Microsoft Hyper-V and Citrix
XenServer都提供了高可用性功能,减轻虚拟架构中的灾难恢复任务。

服务器管理团队开始相信他们可以将HA工具应用于各式各样的企业套管程序,但是最近由数据中心之间虚拟机的机动性带来的挑战,正是错误地相信了HA的魔力所带来的直接后果。

太多的人在没有理解高可用性的情况下实施虚拟化项目。更糟的是,管理员在服务器集群实施期间忽视高可用性,导致现在发现它从解决问题的方案变成需要解决的问题。

VMware除了在vSphere
6.5中增加了少量新功能外,还对已有的功能进行了重大更新,资源管理服务包括分布式资源调度以及高可用性旧貌换新颜。在本文中我们将探讨下vSphere
6.5升级的部分功能。

让我们来关心一下关于HA产品的传说与现实情况:

事实上,高可用性能解决一些列问题。它就是一个简单的服务,无论你使用何种hypervisor,在主机发生故障后重新启动虚拟机。持续的可用性是个理想目标,但是虚拟机仍然经历一些宕机。

全新的准入控制默认设置

VMware的高可用性:假定你可以准确地检测到一个虚拟机操作系统或应用服务出错例如:数据库软件),但你仍然需要重启虚拟机。一些时间的流失就是系统可运行性上一个9的损失系统的可运行性一般用百分数表示,常用的是5个9——99.999%,一个9的损失就会使可运行性降至99.99%)。

高可用性通常与热迁移相关,如XenMotion、vMotion,但实际上不是,我曾见过在第一次主机发生故障后,服务器集群里出现大量问题,由于混淆了这两个概念。

直到vSphere
6,准入控制的默认设置是使用高可用性插槽计算,设置可容忍的出现故障的主机数。这一插槽计算在虚拟机预留值差异性非常大的环境中遇到了问题。例如,如果部分虚拟机没有设置预留值,而一些虚拟机设置了8GB的预留值,这会导致内存大小为4GB的虚拟机占用8GB的插槽。

VMware的容错性:这个特征是指在两台主机上分别同时运行相同虚拟机的两个不同副本。对于短期问题而言这是一个完美的解决方案,例如:我不想让硬件问题中断我的长时间的批处理任务。可现实问题是如果虚拟机或是它自己的软件崩溃,这个虚拟机的两个副本会同时崩溃。

www.hj8828.com,高可用性技术越来越智能,但是要注意下面的问题可能使你的服务器集群崩溃。

在之前vSphere版本中,你还可以使用基于百分比的设置,但该方法往往导致用户过度使用集群,因为用户设置的百分比太低了。更糟糕的是,在众多部署中,准入控制策略会提示没有资源可用,导致管理员完全禁用了该功能。

高可用性集群:类似Windows Server故障转移集群技术Failover
Clustering)的策略会在同一个或者另外一台服务器上重启失败的服务例如:SQL服务),与此同时,这种重启会耗费若干秒钟到若干分钟的时间不等,有时如果数据库必须进行大规模恢复时甚至会耗费更长的时间。这也会降低系统的可运行性。

DNS如何影响高可用性

如图A所示,该默认设置已经被更改为使用集群资源百分比设置,那么VMware将基于你能够容忍的故障主机数选择百分比。例如,在四节点集群中,百分比是25%—这意味着一台主机故障不会影响集群的可用性。

现在让我带来另外一种数据观点:我们最近经历了一次由一个站内STP协议错误导致的转发循环。在网管系统NMS)及时发现问题和一个操作员现场支持的情况下,恢复时间花费了将近30分钟。不可否认,这其中一些时间花在了收集便于事后处理分析的证据上。

与VMware
HA结合,域名服务器DNS)分辨率会成为严重的问题。要允许服务器集群节点相互通信,VMware对DNS分辨率担负重要责任。通常,这不是问题。但如今很多的IT人员已经习惯DNS是个服务的概念,不需要进行管理。

www.hj8828.com 1

下一个事实:数据中心之间的桥接可能会导致长距离的转发循环,或者你可能看到由转发循环导致的流量泛洪溢出链接其他数据中心的WAN,截断同所有其他数据中心之间的流量如果你有足够的勇气使用长距离的集群的话,也会截断集群心跳线的流量)和存储响应。你真的愿意将整个IT基础设施置于风险中来支持一个无论如何连3.5个9的可运行性都无法达到的应用吗?别忘了,大家都希望服务器管理员可以为服务器打补丁,而打补丁偶尔需要重启,不是么?

这种不干预政策的部分原因在于Windows的动态DNS功能。许多管理员没有像以前那样花心思对待DNS,因为动态DNS现在自动执行多数任务。但是VMware服务器没有使用动态DNS。

图A.使用集群资源百分比设置定义主机故障数

故事的寓意:“魔力”产品让你产生一种错误的安全感;就像MySQL数据库集群一样,好的应用架构和使用真正高可用性的产品才是唯一正确的应对高可用性挑战的解决方案。

如果在服务器集群中使用VMware
HA,确保你的管理网络IP地址和相关的主机名都进入到DNS。在进行变更或添加附件到虚拟环境中时,需要进行手动操作与维护。如果DNS没有正确配置,VMware会出现明显的提示说明,但是如果发现得太晚就容易忽略这个提示。

发生故障后以预先确定的顺序启动虚拟机