添加 Cassandra 机架支持

本部分提供有关通过让 Cassandra 扩展 Cassandra 操作的一般指导。 适用于 Private Cloud 机架感知型资源。

如需详细了解为何让 Cassandra 环机系统感知很重要,请参阅以下内容 资源:

什么是机架?

Cassandra 机架是环中 Cassandra 节点的逻辑分组。卡桑德拉 使用机架,从而确保副本分布在不同的逻辑分组之间。作为 因此,操作不仅会被发送到一个节点,还会发送到多个节点,每个节点都位于单独的机架上, 提高容错能力和可用性

本部分中的示例使用三个 Cassandra 机架, 在生产拓扑中由 Apigee 支持。

在适用于私有云的 Apigee Edge 中,默认安装 Cassandra 假定有一个逻辑机架,并将所有 数据中心内的节点虽然此配置易于安装和管理, 如果操作在其中一个节点上失败,则很容易失败。

下图显示了 Cassandra 环的默认配置:

<ph type="x-smartling-placeholder">
</ph> 1 个机架,3 个节点
(图 1) 默认配置:所有节点在单个节点上 机架

在更可靠的配置中,每个节点会被分配到单独的机架 也会在每个机架上的副本上执行

下图显示了一个 3 节点环。此图片显示了 并强调了节点不完全相同 机架:

<ph type="x-smartling-placeholder">
</ph> 3 个机架,每个机架各 1 个节点
(图 2) 机架感知配置:三个节点,每个节点一个 机架

在此配置中,操作会发送到节点,但也会发送到该节点的副本 放在其他架子上(按顺时针顺序)。

添加机架感知(具有 3 个节点)

适用于私有云的 Apigee Edge 的所有生产环境安装拓扑都至少有三个 Cassandra 节点,本部分 是指“IP1”、“IP2”和“IP3”。默认情况下,每个节点都位于同一个机架中 “ra-1”。

本部分介绍如何将 Cassandra 节点分配到单独的机架, 被发送到环内不同逻辑分组中的副本节点。

如需在安装过程中将 Cassandra 节点分配到不同的机架,请执行以下操作

  1. 在运行安装程序之前,请登录 Cassandra 节点并打开 以下静默配置文件以供修改:
    /opt/silent.conf

    如果该文件不存在,请创建该文件,并确保在“apigee”用户是所有者。

  2. 修改 CASS_HOSTS 属性,这是以空格分隔的 IP 地址列表(不是 DNS 或 主机名条目)。
    CASS_HOSTS="IP_address:data_center_number,rack_number [...]"

    默认值为有三个节点的 Cassandra 环,每个节点分配一个机架 1, 中心 1,如以下示例所示:

    CASS_HOSTS="IP1:1,1 IP2:1,1 IP3:1,1"
  3. 请更改机架分配,以便将节点 2 分配给机架 2,将节点 3 分配给 机架 3 所示,如以下示例所示:
    CASS_HOSTS="IP1:1,1 IP2:1,2 IP3:1,3"

    通过更改机架分配,您可以指示 Cassandra 创建两个额外的 分组(机架),这些机架随后提供副本,用于接收 第一个节点。

    如需详细了解如何使用 CASS_HOSTS 配置属性,请参阅 Edge 配置文件参考

  4. 保存对配置文件的更改,然后执行以下命令进行安装 将 Cassandra 添加到更新后的配置中:
    /opt/apigee/apigee-setup/bin/setup.sh -p c -f path/to/silent/config

    例如:

    /opt/apigee/apigee-setup/bin/setup.sh -p c -f /opt/silent.conf
  5. 对环中的每个 Cassandra 节点重复此过程, 在 CASS_HOSTS 属性中分配。在这种情况下,您必须安装 Cassandra 依次为: <ph type="x-smartling-placeholder">
      </ph>
    1. 节点 1 (IP1)
    2. 节点 2 (IP2)
    3. 节点 3 (IP3)

安装后,您应检查 Cassandra 配置

检查 Cassandra 配置

安装机架感知型 Cassandra 配置后,您可以检查节点是否 nodetool status 命令分配给不同机架,因为 如下例所示:

/opt/apigee/apigee-cassandra/bin/nodetool status

(在其中一个 Cassandra 节点上执行此命令。)

结果应类似于以下内容,其中 Rack 列 显示了每个节点的不同机架 ID:

Datacenter: dc-1
========================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
--  Address         Load       Tokens  Owns    Host ID                             Rack
UN  IP1   737 MB  256     ?     554d4498-e683-4a53-b0a5-e37a9731bc5c     ra-1
UN  IP2   744 MB  256     ?     cf8b7abf-5c5c-4361-9c2f-59e988d52da3     ra-2
UN  IP3   723 MB  256     ?     48e0384d-738f-4589-aa3a-08dc5bd5a736     ra-3

如果您为 Cassandra 启用了 JMX 身份验证,则还必须将您的用户名和 nodetool 的密码。如需了解详情,请参阅 使用 nodetool 管理集群节点

安装六节点环

如需增加冗余,您可以将 Cassandra 环扩展到六个节点。在这种情况下, 为三个机架各分配两个节点此配置还需要另外三个节点: 节点 4 (IP4)、节点 5 (IP5) 和节点 6 (IP6)。

下图显示了在整个环中复制操作的顺序 (顺时针)并突出显示了以下事实:在复制过程中,没有两个相邻节点位于同一位置 机架:

<ph type="x-smartling-placeholder">
</ph> 3 个机架,每个机架配备 2 个节点
(图 3) 6 节点 Cassandra 环:每个节点上有两个节点 三个机架

在此配置中,每个节点还有两个副本:另外两个机架中各一个。对于 例如,机架 1 中的节点 1 在机架 2 和机架 3 中都有副本。发送到节点 1 的操作也会 按顺时针顺序发送到其他机架中的副本

如需将三节点 Cassandra 环扩展为六节点 Cassandra 环,请在 在静默配置文件中使用以下代码:

CASS_HOSTS="IP1:1,1 IP4:1,3 IP2:1,2 IP5:1,1 IP3:1,3 IP6:1,2"

与三节点环一样,您必须按照 会显示在 CASS_HOSTS 属性中:

  1. 节点 1 (IP1)
  2. 节点 4 (IP4)*
  3. 节点 2 (IP2)
  4. 节点 5 (IP5)
  5. 节点 3 (IP3)
  6. 节点 6 (IP6)

* 在运行设置实用程序之前,在静默配置文件中进行更改 (第 4 个节点(Cassandra 安装顺序中的第二台机器)上)。

扩展到 12 个节点

要进一步提高容错能力和可用性,您可以增加 从 6 个到 12 个节点此配置需要额外六个节点(IP7 至 IP12)。

下图显示了在整个环中复制操作的顺序 (顺时针)并突出显示了以下事实:在复制过程中,没有两个相邻节点位于同一位置 机架:

<ph type="x-smartling-placeholder">
</ph> 3 个机架,每个机架配备 4 个节点
(图 4) 12 节点 Cassandra 环:三个节点 机架

安装 12 节点环的过程与安装 3 节点或 6 节点环类似: 将 CASS_HOSTS 设置为指定值,然后按指定顺序运行安装程序。

要扩展为具有 12 节点的 Cassandra 环,请在静默环境中按以下方式配置节点 配置文件:

CASS_HOSTS="IP1:1,1 IP7:1,2 IP4:1,3 IP8:1,1 IP2:1,2 IP9:1,3 IP5:1,1 IP10:1,2 IP3:1,3 IP11:1,1 IP6:1,2 IP12:1,3"

与三节点和六节点环一样,您必须在节点上按以下顺序执行安装程序, 节点在配置文件中显示的名称:

  1. 节点 1 (IP1)
  2. 节点 7 (IP7)*
  3. 节点 4 (IP4)
  4. 节点 8 (IP8)
  5. 节点 2 (IP2)
  6. 节点 9 (IP9)
  7. 节点 5 (IP5)
  8. 节点 10 (IP10)
  9. 节点 3 (IP3)
  10. 节点 11 (IP11)
  11. 节点 6 (IP6)
  12. 节点 12 (IP12)

* 您必须先进行这些更改,然后才能在第 7 个节点( Cassandra 安装订单)。