Skip to main content
简体中文版经机器翻译而成,仅供参考。如与英语版出现任何冲突,应以英语版为准。

HA 其他详细信息

贡献者

HA 磁盘检测信号, HA 邮箱, HA 检测信号, HA 故障转移和交还用于增强数据保护。

磁盘检测信号

尽管 ONTAP Select HA 架构利用了传统 FAS 阵列使用的许多代码路径,但仍存在一些例外情况。其中一个例外情况是实施基于磁盘的检测信号,这是一种非基于网络的通信方法,集群节点使用此方法来防止网络隔离导致脑裂行为。脑裂情形是集群分区的结果,通常是由网络故障引起的,其中每一方都认为另一方已关闭并尝试接管集群资源。

企业级 HA 实施必须妥善处理此类情形。ONTAP 通过基于磁盘的自定义检测方法来实现这一点。这是 HA 邮箱的作业, HA 邮箱位于物理存储上,集群节点使用此位置传递检测信号消息。这有助于集群确定连接,从而在发生故障转移时定义仲裁。

在使用共享存储 HA 架构的 FAS 阵列上, ONTAP 通过以下方式解决脑裂问题:

  • SCSI永久性预留

  • 永久性 HA 元数据

  • 通过 HA 互连发送的 HA 状态

但是,在 ONTAP Select 集群的无共享架构中,节点只能看到自己的本地存储,而不能看到 HA 配对节点的本地存储。因此,如果网络分区将 HA 对的每一侧隔离,则无法使用上述确定集群仲裁和故障转移行为的方法。

尽管无法使用现有的脑裂检测和避免方法,但仍然需要一种调解方法,一种可满足无共享环境限制的方法。ONTAP Select 进一步扩展了现有的邮箱基础架构,使其可以在发生网络分区时充当调解方法。由于共享存储不可用,因此可以通过 NAS 访问邮箱磁盘来完成调解。这些磁盘使用 iSCSI 协议分布在整个集群中,包括双节点集群中的调解器。因此,集群节点可以根据对这些磁盘的访问来做出智能故障转移决策。如果某个节点可以访问其 HA 配对节点以外其他节点的邮箱磁盘,则该节点可能已启动且运行状况良好。

备注 解决集群仲裁和脑裂问题的邮箱架构和基于磁盘的检测信号方法是多节点 ONTAP Select 变体需要四个单独节点或一个双节点集群调解器的原因。

HA 邮箱发布

HA 邮箱架构使用消息发布模式。集群节点会定期向集群中的所有其他邮箱磁盘(包括调解器)发布消息,指出节点已启动且正在运行。在运行状况良好的集群中的任意时间点,集群节点上的单个邮箱磁盘会从所有其他集群节点发布消息。

连接到每个 Select 集群节点的虚拟磁盘专用于共享邮箱访问。此磁盘称为调解器邮箱磁盘,因为其主要功能是在发生节点故障或网络分区时充当集群调解的方法。此邮箱磁盘包含每个集群节点的分区,并由其他 Select 集群节点通过 iSCSI 网络挂载。这些节点会定期将运行状况发布到邮箱磁盘的相应分区。使用分布在整个集群中的可通过网络访问的邮箱磁盘,您可以通过可访问性表推断节点运行状况。例如、集群节点A和B可以发布到集群节点D的邮箱、但不能发布到节点C的邮箱。此外、集群节点D无法发布到节点C的邮箱、因此节点C可能已关闭或与网络隔离、应被接管。

HA 检测信号

与 NetApp FAS 平台一样, ONTAP Select 会定期通过 HA 互连发送 HA 检测信号消息。在 ONTAP Select 集群中,此操作通过 HA 配对节点之间的 TCP/IP 网络连接来执行。此外,基于磁盘的检测信号消息会传递到所有 HA 邮箱磁盘,包括调解器邮箱磁盘。这些消息每隔几秒传递一次,并定期进行读回。通过发送和接收这些消息的频率, ONTAP Select 集群可以在大约 15 秒内检测 HA 故障事件,这与 FAS 平台上提供的窗口相同。如果不再读取检测信号消息,则会触发故障转移事件。

下图显示了从单个 ONTAP Select 集群节点节点节点 C 的角度通过 HA 互连和调解器磁盘发送和接收检测信号消息的过程

备注 网络检测信号通过 HA 互连发送到 HA 配对节点 D ,而磁盘检测信号则在所有集群节点 A , B , C 和 D 上使用邮箱磁盘

*四节点集群中的HA检测信号:稳定状态*HA 检测信号在四节点集群中:稳定状态

HA故障转移和恢复

在故障转移操作期间,运行正常的节点会使用其 HA 配对节点的本地数据副本为其对等节点提供数据。客户端 I/O 可以无中断继续,但必须先复制此数据的更改,然后才能进行交还。请注意, ONTAP Select 不支持强制交还,因为这会导致存储在正常运行的节点上的更改丢失。

重新启动的节点重新加入集群时,将自动触发同步回滚操作。同步回滚所需的时间取决于多个因素。这些因素包括必须复制的更改数,节点之间的网络延迟以及每个节点上磁盘子系统的速度。同步返回所需的时间可能会超过 10 分钟的自动交还窗口。在这种情况下,需要在同步回滚后手动交还。可以使用以下命令监控同步恢复的进度:

storage aggregate status -r -aggregate <aggregate name>