Redis Enterprise Software 中的机架区域感知

机架区域感知可确保在机架或区域发生故障时具有高可用性。

Redis 企业软件 适用于 Kubernetes 的 Redis Enterprise

机架区域感知有助于确保在机架或区域发生故障时实现高可用性。

在 Redis Enterprise Software 集群中启用机架区域感知时,您需要将 每个节点的机架区域 ID。此 ID 用于将节点映射到 物理机架或逻辑区域。然后,集群可以确保将主分片、相应的副本分片和关联的终端节点放置在不同机架或区域中的节点上

如果机架或区域发生故障,则会提升其余机架和区域中的副本和终端节点。这可确保在机架或区域发生故障时实现高可用性。

每个集群的机架和区域数量没有限制。每 节点可以属于不同的机架,也可以有多个节点可以属于 同一个机架。

机架区域感知会影响各种集群、节点和数据库作,例如节点再平衡、节点删除、节点替换、分片和终端节点迁移以及数据库故障转移。

机架区域 ID 规则

机架区域 ID 必须符合以下规则:

  • 最大长度为 63 个字符。
  • 字符由字母、数字和连字符 ('-') 组成。从 Redis Enterprise Software 6.4.2-61 开始,也接受下划线('_')。
  • ID 以字母开头,以字母或数字结尾。
注意:
机架区域 ID 不区分大小写(大写和小写字母被视为相同)。

节点布局准则

避免将大多数节点放在一个可用区中。

如果 Redis Enterprise Software 集群由三个节点组成(建议的最小值),请遵循以下准则:

  • 为了实现高可用性,这三个节点必须分布在三个不同的机架或区域中。

  • 使用可用区时,所有三个可用区都应存在于同一区域内,以避免潜在的延迟问题。

设置机架区域感知

要启用机架区域感知,您需要将其配置为 集群、节点和数据库

新建集群

您可以在集群创建期间为集群及其节点设置机架区域感知:

  1. Cluster (集群) 屏幕的 Configuration (配置) 部分中,启用 Rack zone awareness (机架区域感知)。

  2. 选择 Next (下一步) 以继续进入 Node configuration (节点配置) 屏幕。

  3. 输入当前节点的机架区域 ID

  4. 完成集群设置

  5. 对于添加到集群的每个节点,请分配不同的机架区 ID

现有集群

如果在集群创建期间未配置机架区域感知,则可以使用 REST API 为现有集群配置机架区域感知:

  1. 对于集群中的每个节点,使用 REST API 分配不同的机架区域 ID 来更新节点

    PUT /v1/nodes/<node-ID>
    { "rack_id": "rack-zone-ID" }
    
  2. Update the cluster policy to enable rack-zone awareness:

    PUT /v1/cluster/policy
    { "rack_aware": true }
    

Enable database rack-zone awareness

Before you can enable rack-zone awareness for a database, you must configure rack-zone awareness for the cluster and its nodes. For more information, see set up rack-zone awareness.

To enable rack-zone awareness for a database, use a REST API request:

PUT /v1/bdbs/<database-ID>
{ "rack_aware": true }

Rearrange database shards

After you enable rack-zone awareness for an existing database, you should generate an optimized shard placement blueprint using the REST API and use it to rearrange the shards in different racks or zones.

  1. Generate an optimized shard placement blueprint:

    1. Send the following GET request:

      GET /v1/bdbs/<database-ID>/actions/optimize_shards_placement
      
    2. Copy the cluster-state-id from the response headers.

    3. Copy the JSON response body, which represents the new shard placement blueprint.

  2. Rearrange the database shards according to the new shard placement blueprint:

    1. In the request headers, include the cluster-state-id from the optimize_shards_placement response.

    2. Add the following JSON in the request body and replace <shard placement blueprint> with the new blueprint:

      {
        "shards_blueprint": <shard placement blueprint>
      }
      
    3. Send the following PUT request to rearrange the shards:

      PUT /v1/bdbs/<database-ID>
      

Shard placement without rack-zone awareness

Even if a database has rack-zone awareness turned off, the cluster still ensures that master and replica shards are placed on distinct nodes.

RATE THIS PAGE
Back to top ↑