超融合架构下,虚拟机高可用机制如何构建?

news2024/9/23 1:19:33

作者:SmartX 产品部 钟锦锌

虚拟机高可用(High Availability,简称 HA)是虚拟化/超融合平台最常用、关键的功能之一,可在服务器发生故障时通过重建业务虚拟机以降低故障对业务带来的影响。因此,为了充分保障业务的连续性和稳定性,虚拟机 HA 功能需要覆盖大范围的故障场景,能够对具体故障进行准确识别,并根据故障场景采取适合的切换机制。

基于计算与存储融合部署的架构,SmartX 超融合(搭配原生虚拟化 ELF)不仅可通过多副本策略和机架感知等技术特性提升虚拟机 HA 有效性,还可通过优化的虚拟机 HA 功能为多种服务器和虚拟机故障场景提供更为细致的虚拟机重建服务。以下,我们将结合超融合架构对高可用的构建要求,深入解读 SmartX 超融合虚拟机 HA 机制设计与具体功能。

欲了解更多 SmartX 超融合技术与特性,欢迎下载阅读系列电子书《超融合技术原理与特性解析(一)虚拟化与存储》、《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 副本可选),并确保不同的数据副本分别写入不同的服务器。当(一台或多台)服务器节点发生故障,软件定义存储的其中一个(或多个)副本就会离线。

hci-vm-ha-1.png

图 1

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 后的重建过程中,将遵循放置组规则为虚拟机选择合适的主机。适用场景包括:

(1)业务高可用

多台虚拟机同属于单一业务,彼此之间应用级别的故障转移时,这些虚拟机不应该放置到同一主机,否则单一主机故障可能影响业务的连续性。在这种情况下,可以通过设置放置组策略,要求触发 HA 时将相关虚拟机安排在不同主机上重建。(如图 2 所示)

hci-vm-ha-3.png

图 2

(2)业务对主机 CPU 敏感

如果虚拟机的 vCPU 是使用直通模式,触发 HA 后如果在配置其他不同型号 CPU 的主机上重建,那么虚拟机内部的 vCPU 型号也会发生变化。有一部分应用软件会绑定机器码,其中包括 CPU 信息,可能会导致许可失效。

如果虚拟机对 CPU 性能有特定需求,如特定的 CPU 主频或者 CPU 系列,在其他主机上重建有可能导致业务性能下降。

针对以上场景,可以通过设置放置组策略,确保虚拟机在触发 HA 后会在指定(拥有特定 CPU 资源)的主机上重建。(如图 3 所示)

hci-vm-ha-4.png

图 3

(3)业务对网络有特殊要求

虚拟机需要访问特殊的网络,集群中只有某部分主机才拥有该网络或网口,HA 切换主机后有可能导致网络无法正常通讯。这种情况同样可以通过设置放置组策略,确保虚拟机在触发 HA 后会在指定(拥有特定网络资源)的主机上重建。

3.2.2 HA 优先级选项

当 HA 触发时,故障节点上所有开启 HA 的虚拟机将一起进入重建队列,其顺序无法保证承载重要业务的虚拟机得到优先恢复。此外,遭遇节点故障会导致集群总资源减少(包括 CPU、内存、存储资源等),如果集群剩余的资源比较紧张,无法承载所有需要重建的虚拟机,可能导致重要虚拟机无法重建。

针对这个场景,SmartX 超融合提供了虚拟机 HA 优先级选项,可以为虚拟机设置高、中、低 3 种优先级别,当触发 HA 后,系统可依照优先级顺序重建虚拟机,确保重要虚拟机优先重建完成。(如图 4 所示)

hci-vm-ha-5.png

图 4 

3.3 机架感知功能:提升虚拟机 HA 有效性

前面提到 SMTX OS 在不同服务器拥有多个数据副本,可容忍服务器硬件故障,并通过存活副本自动完成数据恢复。但如果这些服务器都放在同一个机柜,那么只要机柜的 PDU 共享电源发生故障,多台主机会将同时离线,那么多副本保护机制就可能失效。机架感知技术,就是通过感知服务器的存放拓扑(放置在不同机柜),数据的多个副本自动跟随放置在位于不同机柜的多台服务器当中。即使遭遇某一机柜电源故障,系统也可以从其他机柜上的服务器找到对应的数据副本,并触发数据恢复流程。

hci-vm-ha-6.png

图 5

前面提到存储可用性是虚拟机高可用的关键,机架感知功能不仅可以提升集群的可用性,还增强了虚拟机高可用的有效性。

小结

整体而言,在故障发生初期,SMTX OS 超融合软件可准确识别故障场景类型,并根据故障类型执行对应高可用动作,尽可能减少 HA 切换影响;在触发 HA 切换后,系统会根据预设规则精准地将虚拟机安排到合适的主机上进行重建,并可根据业务重要性安排重建顺序。搭配机架感知功能,SmartX 超融合虚拟机 HA 机制可为业务虚拟机提供多场景、有效、准确的连续性保障。

欲了解更多 SmartX 超融合技术与特性,欢迎下载阅读系列电子书超融合技术原理与特性解析(一)虚拟化与存储》、《SmartX 超融合技术原理与特性解析合集(二)管理与运维

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1702001.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

什么是驾驶舱?这3种驾驶舱领导最爱看

在当今快速变化的商业环境中,企业决策者需要实时、准确地掌握企业运营的各个方面,以便迅速做出明智的决策。数据驾驶舱,作为一种先进的管理工具,正逐渐成为企业管理层的必备利器。本文将深入探讨数据驾驶舱的概念、类型、角色多维…

DAOS: A Scale-Out High Performance Storage Stack for Storage Class Memory——论文泛读

Supercomputing Frontiers 2020 Paper 分布式元数据论文阅读笔记整理 问题 企业、政府和学术界出现的数据密集型应用程序将现有的I/O模型扩展到了极限。现代I/O工作负载的特点是元数据与未对齐和碎片化数据的结合比例越来越高。传统的存储堆栈为这些工作负载提供了较差的性能…

从原理上解决 uniapp (含第三方插件)打包 iOS APP 失败的问题

最近一段时间,我的团队基于uniapp开发的平台型APP因平台资金合规的要求,需要对接中金支付,uniapp的插件市场有一个别人做好的中金支付插件,但前端开发同事在引用这个 插件时,出现了 iOS APP 打包不成功的情况&#xff…

通付盾Web3专题 | SharkTeam:Web3常见钓鱼方式分析与安全防范建议

引言 Web3钓鱼是一种针对Web3用户的常见攻击手段,通过各种方式窃取用户的授权、签名,或诱导用户进行误操作,目的是盗窃用户钱包中的加密资产。 近年来,Web3钓鱼事件不断出现,且发展出钓鱼即服务的黑色产业链&#xf…

python+pymysql对数据库进行增、删、改、查操作

一、概述 接口测试中,应用到数据库操作的场景: 1.校验测试数据 接口发送请求后明确会对数据库中的某个字段进行修改(编辑,更新、删除操作),但,响应结果中无该字段数据时。 例如:删…

QML-1- qml简介及项目创建

文章目录 1. QML 简介2. 项目创建3. 目录结构4. CMakeLists.txt 简单介绍5. 运行demo 1. QML 简介 根据官网介绍,qml 为qt一个模块,使用Qml语言开发应用程序和库提供了一个框架。它定义并实现了语言和引擎基础结构,并提供了一个API&#xff…

搭建属于自己的 Git 仓库:GitLab

搭建属于自己的 Git 仓库:使用 GitLab 文章目录 搭建属于自己的 Git 仓库:使用 GitLab什么是 GitLab?准备工作安装 Docker使用Docker Compose 快速构建GitLab1、从docker compose快速搭建GitLab2、部署到服务器并访问3、浏览器访问 在现代软件…

Linux-挂盘-分区-卸盘

Linux-挂盘-分区-卸盘 1. 添加硬盘 2. 查看硬盘 [rootlocalhost /]# lsblk # 查看我们新添加的磁盘 NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 80G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 …

基于JT/T808、JT/T1078、苏标、粤标视频主动安全监控

1.概述 如下图是以实时视频点播与部标机产生了主动安全报警,各个服务之间的交互流程说明。 整个系统有以下几个核心组件组成: 1:系统业务端:车载监控业务系统,给用户提供车载监控整套业务流程与界面呈现;…

蓝海项目揭秘:跨境选品师的崛起与挑战

随着全球化贸易的日益深入和电子商务的蓬勃发展,跨境选品师这一新兴职业逐渐走进人们的视野。跨境选品师,顾名思义,就是专门负责为跨境电商平台挑选和推荐适合海外市场的商品的专业人士。那么,跨境选品师这一职业能否被视为一个蓝…

【算法】排序

排序算法在信息学非常常用。Hello&#xff01;大家好&#xff0c;我是学霸小羊&#xff0c;今天讲几个排序算法。 1.“打擂台”排序 思路&#xff1a;a[ i ]和a[ j ]打擂台&#xff08;i<j&#xff09;。 这个方法简单易懂&#xff0c;只需要看看需不需要交换。按从大到小…

行为设计模式之策略模式

文章目录 概述原理结构图 代码实现小结 概述 策略模式(strategy pattern)的原始定义是&#xff1a;定义一系列算法&#xff0c;将每一个算法封装起来&#xff0c;并使它们可以相互替换。策略模式让算法可以独立于使用它的客户端而变化。 在软件开发中也会遇到相似的情况&…

考研数学|强化跟「张宇」还是「武忠祥」?看这一篇!

考研数学强化阶段是备考过程中非常关键的一环&#xff0c;它不仅要求学生巩固和深化基础知识&#xff0c;还要求学生能够灵活运用所学知识解决复杂问题。 在选择张宇老师或武忠祥老师的高数强化课时&#xff0c;你可以考虑以下几个方面。 首先每位学生都有自己独特的学习风格…

问题记录_stm32“No target connected“

问题描述&#xff1a; 基于HAL库和stm32cubeMX生成的代码&#xff0c;烧录时出现如下报错窗口&#xff1a; 问题原因&#xff1a; stm32cubeMX生成代码时关闭了SWJ调试功能 解决方法&#xff1a; 在项目中找到__HAL_AFIO_REMAP_SWJ_DISABLE();并注释掉 然后短按复位键的…

通用代码生成器应用场景二,快速原型

通用代码生成器应用场景二&#xff0c;快速原型 对项目经理&#xff0c;产品经理和售前工程师而言&#xff0c;开发快速原型是一种常见的需求。使用通用代码生成器&#xff0c;您可以更好&#xff0c;更快的开发系统的快速原型。通用代码生成器对完成CRUD和登录系统阶段的快速…

新手必看!TikTok视频0播放的5大原因及解决方法

很多刚起步的TikTok卖家常会遇到一个烦心事&#xff1a;发布的视频播放量少得可怜&#xff0c;甚至有时是0播放。这确实让人挺沮丧的。到底如何突破TikTok视频总是播放量为0的瓶颈&#xff1f;别担心&#xff0c;今天为大家总结了tiktok视频播放量上不去的5种原因和相应的解决方…

【leetcode2028. 找出缺失的观测数据(自己写出来了)】

给你一个长度为 m 的整数数组 rolls &#xff0c;其中 rolls[i] 是第 i 次观测的值。同时给你两个整数 mean 和 n 。返回一个长度为 n 的数组&#xff0c;包含所有缺失的观测数据&#xff0c;且满足这 n m 次投掷的 平均值 是 mean 。如果存在多组符合要求的答案&#xff0c;只…

山东大学软件学院项目实训-创新实训-基于大模型的旅游平台(二十一)- 微服务(1)

微服务 1.认识微服务 SpringCloud底层是依赖于SpringBoot的&#xff0c;并且有版本的兼容关系&#xff0c;如下&#xff1a; 2. 服务拆分 需求 &#xff1a; 把订单信息和用户信息一起返回 从订单模块向用户模块发起远程调用 &#xff0c; 把查到的结果一起返回 步骤 &…

ubuntu切换CUDA版本

查询版本 cd /usr/local在此目录下进行 ls 命令可以查看自己安装了哪些版本 使用stat cuda命令可以查看当前软连接(符号)为哪个版本&#xff0c;即使用的是哪个版本 若要修改使用的CUDA&#xff0c;只需要删除此软连接&#xff0c;再创建一个新的软连接&#xff0c;指向自己…

最新!!2024年上半年软考【中级】网络工程师 综合知识真题解析

2024上半年软考考试已经结束了&#xff0c;为大家整理了网友回忆版的网络工程师真题及答案&#xff0c;总共41道题。 上半年考试的宝子们可以对答案预估分数&#xff01;准备下半年考的宝子可以提前把握考试知识点和出题方向&#xff0c;说不定会遇到相同考点的题目&#xff01…