返回
高可用性(HA)功能
高可用性功能是一种当物理主机发生故障时,自动在另一个正常运行的主机上“重启”(称为故障转移)的虚拟机功能。因此,需要事先在虚拟机的客户操作系统内进行安排,以便系统能够自动恢复。
使用HA的条件是什么?
要在HRPC KVM版本中使用HA,必须满足以下条件:
- 由三个或更多配置相同的节点组成的虚拟数据中心。
- 必须是HCI类型或3-Tier类型,因为需要共享存储(Ceph、带有ES的ESF)。
-
设备上必须有足够的备用容量(特别是内存)。重要的是总共至少有一个节点的内存是空闲的。
*例如,在由三个节点组成的虚拟数据中心的情况下,总共只应使用两个节点的内存。 -
确保对虚拟机进行备份。
我们强烈建议您与备份存储或其他类似服务签订合同,并为虚拟机设置定期备份。
如何启用HA功能?
如果您想启用HA功能,首先在左侧面板中选择数据中心,在中间面板中打开HA,然后点击“组”。
在右侧面板中点击“创建”按钮,创建HA组ID,并检查与HA相关的物理主机。在与HA相关的物理主机上创建虚拟机时,必须准备至少一台物理主机的备用内存。如果您使用总共四台配备768GB内存的HRPC参与HA,其余三台机器需要有768GB的空闲内存,以便在其中一台HRPC发生物理故障时,其他设备仍能继续运行。如果您未选中HA组,即使它在同一个数据中心,也将被忽略作为HA目标。
如果故意将一台主机从HA组中移除,并且HA组设置中勾选了“受限”,那么属于该HA组的虚拟机将无法在被移除的主机上启动。
如果勾选了“nofailback”,当故障的物理节点重启并恢复时,虚拟机不会被恢复,而是继续在目标位置运行。如果未勾选“nofailback”,它们将通过实时迁移返回到原始节点,从而允许严格管理节点主机和虚拟机的放置。然而,如果物理节点变得不稳定并反复重启,HA将再次激活,虚拟机将反复重启。因此,我们建议勾选“nofailback”。
此外,虽然实时迁移是一项很少失败的功能,但它会导致短暂的内部中断,可能会在实时软件中引发问题。
如何为虚拟机启用HA?
除非虚拟机处于HA管理之下,否则Proxmox HA将不适用。
要将虚拟机置于HA管理之下,请选择虚拟机,并在右上方的“更多▼”下拉菜单中选择“管理HA”。从组中选择您上面配置的HA组ID,将期望状态设置为“已启动”,然后点击“添加”按钮。
此虚拟机现已处于HA控制之下。
HA操作的范围因虚拟机管理程序而异。在VMware中,当在虚拟数据中心启用HA时,它会影响虚拟数据中心中的所有虚拟机,而在XenOrchestra中,它仅影响池中启用了HA并设置为“重启”的虚拟机。
HA组中节点(主机)的维护重启与虚拟机的关系
当HA组中的节点因维护而重启(不是由于意外故障)时,虚拟机的行为将因是否处于HA管理之下而有所不同。
处于HA管理的虚拟机 | 实时迁移到另一台机器 |
---|---|
未受HA管理的虚拟机 | 自动关闭并在重启后保持关闭状态 |
专栏
HA功能的限制
HA功能存在局限性,使用HA时可能会出现一些问题。
- 虚拟机的意外重启
- 虚拟机数据损坏
简单来说,HA是当一个节点故障时,能够从另一个节点启动虚拟机的能力,但这是从上帝视角来看的,而实际的软件逻辑必须完全以不同的方式实现。
首先,无法严格定义三个节点(即节点A、节点B和节点C)中特定节点的“故障”是什么。HA通过每个节点与其他节点协调工作来实现。
当节点A与节点B失去通信时,无法确定是节点B发生了故障,还是节点A与节点B之间的通信仅仅是中断。如果从节点A的角度看,它能与节点C通信,那么可以想象节点B可能发生了故障。
然而,如果节点B上托管的虚拟机数据在共享存储上不断更新,节点B可能完全处于隔离状态。
在上述例子中,如果节点A和节点C正在通信,那么节点B很可能已经故障。因此,节点A和节点C将尝试自行启动节点B上托管的虚拟机。
然而,节点B可能并未故障,而只是被隔离。如果一个节点确定自己被隔离,它将立即关闭其托管的虚拟机,以准备节点A和节点C可能启动,这就是上面提到的意外重启的原因。
那么,如果节点B不关闭会发生什么?
如果同一虚拟机在节点B和另一个节点上同时运行,虚拟机的虚拟磁盘将瞬间损坏,这将导致上面提到的虚拟机数据毁坏。
因此,您的选择要么是重启,要么是毁坏数据。
HA需要在每个节点之间协调,以确定是宕机、仅仅是通信中断,还是运行缓慢。
如果上述两种故障是互斥的,您希望避免的是数据损坏,因此立即关闭。
这一决定是按间隔做出的,Proxmox每2分钟进行一次。如果2分钟内没有响应,则判定“主机已故障”。因此,至少会有2分钟的停机时间加上虚拟机启动所需的时间(实际上会更长)。
然而,如果节点速度变慢,内存被交换出去,气球驱动的内存回收导致暂时减速,或存储写入变慢,两分钟可能很快过去,关闭可能无法及时完成。因为必须保护的是数据,系统会自动使用看门狗定时器或类似设备,私有云运行在配备了即使主机内核停止响应也能自动重启内核的硬件上。