本部分提供有关通过让 Cassandra 扩展 Cassandra 操作的一般指导。 适用于 Private Cloud 机架感知型资源。
如需详细了解为何让 Cassandra 环机系统感知很重要,请参阅以下内容 资源:
- 复制(Cassandra 文档)
- Cassandra 建筑与复制因子策略
什么是机架?
Cassandra 机架是环中 Cassandra 节点的逻辑分组。卡桑德拉 使用机架,从而确保副本分布在不同的逻辑分组之间。作为 因此,操作不仅会被发送到一个节点,还会发送到多个节点,每个节点都位于单独的机架上, 提高容错能力和可用性
本部分中的示例使用三个 Cassandra 机架, 在生产拓扑中由 Apigee 支持。
在适用于私有云的 Apigee Edge 中,默认安装 Cassandra 假定有一个逻辑机架,并将所有 数据中心内的节点虽然此配置易于安装和管理, 如果操作在其中一个节点上失败,则很容易失败。
下图显示了 Cassandra 环的默认配置:
<ph type="x-smartling-placeholder">![1 个机架,3 个节点](https://docs.apigee.com/static/private-cloud/images/cassandra-3nodes1rack.png?authuser=1&hl=zh-cn)
在更可靠的配置中,每个节点会被分配到单独的机架 也会在每个机架上的副本上执行
下图显示了一个 3 节点环。此图片显示了 并强调了节点不完全相同 机架:
<ph type="x-smartling-placeholder">![3 个机架,每个机架各 1 个节点](https://docs.apigee.com/static/private-cloud/images/cassandra-3nodering.png?authuser=1&hl=zh-cn)
在此配置中,操作会发送到节点,但也会发送到该节点的副本 放在其他架子上(按顺时针顺序)。
添加机架感知(具有 3 个节点)
适用于私有云的 Apigee Edge 的所有生产环境安装拓扑都至少有三个 Cassandra 节点,本部分 是指“IP1”、“IP2”和“IP3”。默认情况下,每个节点都位于同一个机架中 “ra-1”。
本部分介绍如何将 Cassandra 节点分配到单独的机架, 被发送到环内不同逻辑分组中的副本节点。
如需在安装过程中将 Cassandra 节点分配到不同的机架,请执行以下操作:
- 在运行安装程序之前,请登录 Cassandra 节点并打开
以下静默配置文件以供修改:
/opt/silent.conf
如果该文件不存在,请创建该文件,并确保在“apigee”用户是所有者。
- 修改
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"
- 请更改机架分配,以便将节点 2 分配给机架 2,将节点 3 分配给
机架 3 所示,如以下示例所示:
CASS_HOSTS="IP1:1,1 IP2:1,2 IP3:1,3"
通过更改机架分配,您可以指示 Cassandra 创建两个额外的 分组(机架),这些机架随后提供副本,用于接收 第一个节点。
如需详细了解如何使用
CASS_HOSTS
配置属性,请参阅 Edge 配置文件参考。 - 保存对配置文件的更改,然后执行以下命令进行安装
将 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
- 对环中的每个 Cassandra 节点重复此过程,
在
CASS_HOSTS
属性中分配。在这种情况下,您必须安装 Cassandra 依次为: <ph type="x-smartling-placeholder">- </ph>
- 节点 1 (IP1)
- 节点 2 (IP2)
- 节点 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">![3 个机架,每个机架配备 2 个节点](https://docs.apigee.com/static/private-cloud/images/cassandra-6nodering.png?authuser=1&hl=zh-cn)
在此配置中,每个节点还有两个副本:另外两个机架中各一个。对于 例如,机架 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 (IP1)
- 节点 4 (IP4)*
- 节点 2 (IP2)
- 节点 5 (IP5)
- 节点 3 (IP3)
- 节点 6 (IP6)
* 在运行设置实用程序之前,在静默配置文件中进行更改 (第 4 个节点(Cassandra 安装顺序中的第二台机器)上)。
扩展到 12 个节点
要进一步提高容错能力和可用性,您可以增加 从 6 个到 12 个节点此配置需要额外六个节点(IP7 至 IP12)。
下图显示了在整个环中复制操作的顺序 (顺时针)并突出显示了以下事实:在复制过程中,没有两个相邻节点位于同一位置 机架:
<ph type="x-smartling-placeholder">![3 个机架,每个机架配备 4 个节点](https://docs.apigee.com/static/private-cloud/images/cassandra-12nodering.png?authuser=1&hl=zh-cn)
安装 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 (IP1)
- 节点 7 (IP7)*
- 节点 4 (IP4)
- 节点 8 (IP8)
- 节点 2 (IP2)
- 节点 9 (IP9)
- 节点 5 (IP5)
- 节点 10 (IP10)
- 节点 3 (IP3)
- 节点 11 (IP11)
- 节点 6 (IP6)
- 节点 12 (IP12)
* 您必须先进行这些更改,然后才能在第 7 个节点( Cassandra 安装订单)。