配置副本分片的高可用性

配置副本分片的高可用性,以便集群自动将副本分片迁移到可用节点。

当您启用数据库复制时, Redis Enterprise Software 会为每个主分片创建一个副本。副本分片将始终位于与主分片不同的节点上,以确保数据的高可用性。如果主分片失败或托管主分片的节点失败,则副本将被提升为主分片。

在没有启用副本高可用性(replica_ha)的情况下,提升的主分片成为单点故障,因为它是数据的唯一副本。

启用replica_ha配置集群以在可用节点上自动复制提升的副本。 这将自动将数据库返回到存在两个数据副本的状态: 已提升为主副本的前副本分片和新的副本分片。

一个可用的节点:

  1. 满足副本迁移要求,例如机架感知
  2. 有足够的可用RAM来存储副本分片。
  3. 也不包含主分片。

在实践中,副本迁移会创建一个新的副本分片,并将数据从主分片复制到新的副本分片。

例如:

  1. 节点2有一个主分片,节点3有相应的副本分片。

  2. 或者:

    • 节点2失败,节点3上的副本分片被提升为主分片。
    • 节点3失败,主分片不再复制到失败节点上的副本分片。
  3. 如果启用了副本高可用性,将在可用节点上创建一个新的副本分片。

  4. 来自主分片的数据被复制到新的副本分片。

Note:
  • 副本高可用性遵循副本迁移的所有先决条件,例如机架感知
  • 副本高可用性(Replica HA)根据目标节点上可用的DRAM尽可能多地迁移分片。当没有可用的DRAM时,副本高可用性会停止向该节点迁移副本分片。

配置副本分片的高可用性

如果集群和数据库都启用了副本高可用性,当主分片或副本分片失败时,数据库的副本分片会自动迁移到另一个节点。如果在集群级别未启用副本高可用性,即使为数据库启用了副本高可用性,副本高可用性也不会迁移副本分片。

默认情况下,集群启用了副本高可用性。

当您使用集群管理器UI创建数据库时,如果启用了复制,默认情况下会为数据库启用副本高可用性。

When you select the Replication checkbox in the High availability section of the database configuration screen, the Replica high availability checkbox is also selected by default.

要在不使用复制高可用性的情况下使用复制,请清除复制高可用性复选框。

您也可以使用rladmin或REST API启用或关闭数据库的副本高可用性。

注意:
对于Active-Active数据库,默认情况下会为数据库启用副本HA,以确保副本分片可用于Active-Active复制。

为副本HA配置集群策略

要默认启用或关闭整个集群的副本高可用性,请使用以下方法之一:

关闭数据库的副本高可用性

要使用rladmin关闭特定数据库的副本高可用性,请运行:

rladmin tune db db:<ID> slave_ha disabled

您可以在前面的命令中使用数据库名称代替db:

配置选项

您可以通过以下方式查看副本HA的当前配置选项:

rladmin info cluster

宽限期

默认情况下,副本高可用性在节点故障后有10分钟的宽限期,然后才会创建新的副本分片。

注意:
使用Redis Enterprise Software for Kubernetes的容器化应用程序的默认宽限期为30分钟。

要从rladmin配置此宽限期,请运行:

rladmin tune cluster slave_ha_grace_period <time_in_seconds>

分片优先级

副本分片迁移基于优先级。当内存资源有限时,最重要的副本分片会首先迁移:

  1. slave_ha_priority - 具有较高整数值的副本分片会在具有较低值的分片之前进行迁移。

    要为数据库分配优先级,请运行:

    rladmin tune db db:<ID> slave_ha_priority <positive integer>
    

    您可以在前面的命令中使用数据库名称代替db:

  2. Active-Active 数据库 - Active-Active 数据库同步使用副本分片在副本之间进行同步。

  3. 数据库大小 - 移动较小数据库的副本分片更容易且更高效。

  4. 数据库UID - 具有较高UID的数据库的副本分片会首先被移动。

冷却期

集群和数据库都有冷却期。

节点故障后,集群冷却期(slave_ha_cooldown_period)会防止由于另一个节点故障导致的任何数据库的副本迁移,直到冷却期结束。默认值为一小时。

在数据库通过副本HA迁移后,由于另一个节点故障,直到数据库的冷却期(slave_ha_bdb_cooldown_period)结束,它不能再次进行迁移。默认时间为两小时。

要配置冷却期,请使用 rladmin tune cluster

  • 对于集群:

    rladmin tune cluster slave_ha_cooldown_period 
    
  • 对于集群中的所有数据库:

    rladmin tune cluster slave_ha_bdb_cooldown_period 
    

警报

在副本HA激活期间发送以下警报:

  • 分片迁移在宽限期结束后开始。
  • 分片迁移失败,因为没有可用的节点(每小时发送一次)。
  • 由于冷却期,分片迁移被延迟。
RATE THIS PAGE
Back to top ↑