一文解读 SmartX 超融合虚拟机高可用构建思路
作者:SmartX 产品部 钟锦锌
虚拟机高可用(High Availability,简称 HA)是虚拟化/超融合平台最常用、关键的功能之一,可在服务器发生故障时通过重建业务虚拟机以降低故障对业务带来的影响。因此,为了充分保障业务的连续性和稳定性,虚拟机 HA 功能需要覆盖大范围的故障场景,能够对具体故障进行准确识别,并根据故障场景采取适合的切换机制。
基于计算与存储融合部署的架构,SmartX 超融合(搭配原生虚拟化 ELF)不仅可通过多副本策略和机架感知等技术特性提升虚拟机 HA 有效性,还可通过优化的虚拟机 HA 功能为多种服务器和虚拟机故障场景提供更为细致的虚拟机重建服务。以下,我们将结合超融合架构对高可用的构建要求,深入解读 SmartX 超融合虚拟机 HA 机制设计与具体功能。
欲了解更多 SmartX 超融合技术与特性,欢迎下载阅读系列电子书《超融合技术原理与特性解析合集》。
1 超融合架构下的虚拟机高可用实现需求
超融合架构下,虚拟机 HA 功能的作用与虚拟化平台基本一致:当服务器发生故障时,受影响的虚拟机将在集群中其他健康主机上自动重启并恢复运行。HA 将降低停机故障影响,并缩短服务中断时长,同时不需要专门的备用硬件和安装附加软件。关键步骤包括:
准确感知故障,触发 HA。
不依赖虚拟机的操作系统和软件,并在确保虚拟机的一致性前提下实现主机的转移。
合理选择目标主机,重启虚拟机,完成 HA 流程。
1.1 核心差异是存储的高可用
在虚拟机 HA 功能的设计和实现上,超融合与虚拟化平台存在一些差异。在虚拟化场景中,实现故障场景下虚拟机转移到其他主机恢复运行的基础是:虚拟机数据存放在共享存储设备,且这些主机能访问该存储。因此,高可用功能是高度依赖共享存储(FC-SAN 、IP-SAN 存储等外部存储设备)的。然而在传统架构中,虚拟化主机与共享存储是相互独立的,存储的可用性是由存储设备负责保证的,虚拟化平台的高可用设计无需考虑存储的可用性。
而超融合架构的特征是计算虚拟化和软件定义存储在同一主机上融合部署,因此,超融合架构下高可用设计的复杂性在于,既要确保计算虚拟化层面的可用性,还要确保存储的可用性,这是两者在高可用实现中的核心差异。
1.2 服务器节点故障对超融合集群的影响
1.2.1 对虚拟化计算的影响
当服务器节点发生故障,最直接的影响就是虚拟机无法正常运作。如果遭遇节点宕机,虚拟机自然也会随之宕机;如果遭遇的是局部故障,虚拟机虽然不会直接宕机,但有可能无法连接网络或者无法正常 I/O 读写。无论是以上哪种故障,都很有可能影响业务的正常运行,需要通过 HA 功能介入,尽快恢复业务的正常服务。
1.2.2 对存储的影响
SmartX 超融合软件 SMTX OS 使用多副本技术实现数据冗余,所有写入的数据将自动复制为多个副本(2 副本或者 3 副本可选),并确保不同的数据副本分别写入不同的服务器。当(一台或多台)服务器节点发生故障,软件定义存储的其中一个(或多个)副本就会离线。
2 SmartX 超融合虚拟机 HA 适用范围
2.1 可覆盖的故障场景
真实环境中面临的故障场景是复杂、多样的,高可用首先需要准确地辨认故障场景。否则,错误地、频繁地触发 HA 将会为业务连续性带来负面影响。基于以上故障影响分析,SmartX 超融合虚拟机 HA 功能在设计时尽可能考虑更多故障场景,目前可覆盖以下 4 种常见故障场景,并可根据故障场景的特点触发合适的 HA 切换动作。
2.1.1 服务器节点宕机/不响应
当服务器节点发生宕机,原有的虚拟机已经被动关闭,此时系统会自动触发故障 HA,获取故障服务器上的虚拟机列表,并将受保护的虚拟机在集群中其他健康节点上重新启动虚拟机以恢复业务运行。
2.1.2 服务器节点存储网络故障
当服务器节点的存储网口全部故障,意味着该节点的硬盘设备和数据离线,无法和集群中其他健康节点进行通讯。此时网络心跳将发生超时,当网络中断时间持续 9 个检测周期(90s),系统会触发节点自我隔离,并主动暂停故障节点上的虚拟机(如果无法暂停就会直接关闭),后续将在其他健康节点重新启动这些虚拟机以恢复业务运行。
2.1.3 虚拟机业务网络故障
目前,SmartX 超融合新增了对虚拟机业务网络故障的检测,一旦发现节点上的业务网口全部故障(存储网口正常工作),系统会在 60s 内触发 HA,但虚拟机不会经历重新启动,后台将自动执行在线迁移,将故障节点上的虚拟机迁移到集群中其他的健康节点中。
2.1.4 虚拟机状态不一致
如遭遇机房停电,集群节点整体下线,这种场景下系统是没有条件触发 HA 的;当机房重新恢复电力,HA 功能会被重新触发,由于该场景下并不存在硬件故障,因此系统会优先在原节点重新启动虚拟机,恢复虚拟机正常运行。
2.2 虚拟机高可用开关
另外,针对特定的虚拟机,用户不希望自动触发 HA。对于这一需求,SmartX 超融合设计了虚拟机 HA 开关,每台虚拟机可以根据需要选择开启或禁用 HA 功能。对于不受 HA 保护的虚拟机,当节点发生故障时,虚拟机不会自动重启,会保持关闭状态,用户可以选择手动启动虚拟机。
3 SmartX 超融合虚拟机 HA 整体机制设计
3.1 虚拟机高可用触发机制
集群默认启动 HA 功能,自动选举出其中一个节点作为 HA Leader,集群其他节点均为 HA Follower。
集群中每个节点会有守护进程(VM Monitor)。
HA Follower 通过 VM Monitor 定期(每 10s 一次)写入心跳信息。
HA Leader 节点通过 VM Monitor 定期(每 10s 一次)读取心跳信息,并负责判断其他节点的状态。
*注:时间点以非 HA leader 节点故障为例。
3.2 虚拟机重建机制
当触发 HA 之后,理论上系统可以在集群中健康主机上随机选择位置重新启动虚拟机。但考虑到集群中并不是所有主机的硬件条件都是完全一致的,如业务对主机的硬件环境比较敏感时,切换主机可能会导致业务无法正常提供服务。因此,SmartX 提供了更细致的虚拟机重建机制。
3.2.1 虚拟机放置组功能
创建虚拟机放置组的实质是通过对虚拟机的放置和迁移设置约束和建立规则,以便虚拟机能够在适当的节点上运行。创建放置组规则后,在虚拟开机、迁移及触发 HA 后的重建过程中,将遵循放置组规则为虚拟机选择合适的主机。适用场景包括:
多台虚拟机同属于单一业务,彼此之间应用级别的故障转移时,这些虚拟机不应该放置到同一主机,否则单一主机故障可能影响业务的连续性。在这种情况下,可以通过设置放置组策略,要求触发 HA 时将相关虚拟机安排在不同主机上重建。(如图 2 所示)
如果虚拟机的 vCPU 是使用直通模式,触发 HA 后如果在配置其他不同型号 CPU 的主机上重建,那么虚拟机内部的 vCPU 型号也会发生变化。有一部分应用软件会绑定机器码,其中包括 CPU 信息,可能会导致许可失效。
如果虚拟机对 CPU 性能有特定需求,如特定的 CPU 主频或者 CPU 系列,在其他主机上重建有可能导致业务性能下降。
针对以上场景,可以通过设置放置组策略,确保虚拟机在触发 HA 后会在指定(拥有特定 CPU 资源)的主机上重建。(如图 3 所示)
虚拟机需要访问特殊的网络,集群中只有某部分主机才拥有该网络或网口,HA 切换主机后有可能导致网络无法正常通讯。这种情况同样可以通过设置放置组策略,确保虚拟机在触发 HA 后会在指定(拥有特定网络资源)的主机上重建。
3.2.2 HA 优先级选项
当 HA 触发时,故障节点上所有开启 HA 的虚拟机将一起进入重建队列,其顺序无法保证承载重要业务的虚拟机得到优先恢复。此外,遭遇节点故障会导致集群总资源减少(包括 CPU、内存、存储资源等),如果集群剩余的资源比较紧张,无法承载所有需要重建的虚拟机,可能导致重要虚拟机无法重建。
针对这个场景,SmartX 超融合提供了虚拟机 HA 优先级选项,可以为虚拟机设置高、中、低 3 种优先级别,当触发 HA 后,系统可依照优先级顺序重建虚拟机,确保重要虚拟机优先重建完成。(如图 4 所示)
3.3 机架感知功能:提升虚拟机 HA 有效性
前面提到 SMTX OS 在不同服务器拥有多个数据副本,可容忍服务器硬件故障,并通过存活副本自动完成数据恢复。但如果这些服务器都放在同一个机柜,那么只要机柜的 PDU 共享电源发生故障,多台主机会将同时离线,那么多副本保护机制就可能失效。机架感知技术,就是通过感知服务器的存放拓扑(放置在不同机柜),数据的多个副本自动跟随放置在位于不同机柜的多台服务器当中。即使遭遇某一机柜电源故障,系统也可以从其他机柜上的服务器找到对应的数据副本,并触发数据恢复流程。
图 5
前面提到存储可用性是虚拟机高可用的关键,机架感知功能不仅可以提升集群的可用性,还增强了虚拟机高可用的有效性。
小结
整体而言,在故障发生初期,SMTX OS 超融合软件可准确识别故障场景类型,并根据故障类型执行对应高可用动作,尽可能减少 HA 切换影响;在触发 HA 切换后,系统会根据预设规则精准地将虚拟机安排到合适的主机上进行重建,并可根据业务重要性安排重建顺序。搭配机架感知功能,SmartX 超融合虚拟机 HA 机制可为业务虚拟机提供多场景、有效、准确的连续性保障。
欲了解更多 SmartX 超融合技术与特性,欢迎下载阅读系列电子书《超融合技术原理与特性解析合集》。
您还可以关注 SmartX 用户社区,在 SmartX 学院中获取更多关于 IT 基础架构的干货内容与直播课程。
推荐阅读: