添加 Cassandra 节点

Edge for Private Cloud v4.19.01

本文档介绍如何向安装的私有云现有 Edge 添加三个新的 Cassandra 节点。

虽然您可以向现有 Edge 安装添加一个或两个 Cassandra 节点,但 Apigee 建议一次添加三个节点。

如需查看 Cassandra 节点的系统要求,请参阅安装要求

现有 Edge 配置

生产系统的所有受支持 Edge 拓扑都指定使用三个 Cassandra 节点。在配置文件中为 CASS_HOSTS 属性指定这三个节点,如下所示:

IP1=10.10.0.1
IP2=10.10.0.2
IP3=10.10.0.3
HOSTIP=$(hostname -i)
ADMIN_EMAIL=opdk@google.com
APIGEE_ADMINPW=Secret123
LICENSE_FILE=/tmp/license.txt
MSIP=$IP1 
USE_LDAP_REMOTE_HOST=n
LDAP_TYPE=1
APIGEE_LDAPPW=secret
MP_POD=gateway
REGION=dc-1
ZK_HOSTS="$IP1 $IP2 $IP3"
ZK_CLIENT_HOSTS="$IP1 $IP2 $IP3"
# Must use IP addresses for CASS_HOSTS, not DNS names.
CASS_HOSTS="$IP1:1,1 $IP2:1,1 $IP3:1,1" 
SKIP_SMTP=n
SMTPHOST=smtp.example.com
SMTPUSER=smtp@example.com
SMTPPASSWORD=smtppwd

请注意,REGION 属性将区域名称指定为“dc-1”。在添加新的 Cassandra 节点时,您需要用到这些信息。

修改配置文件以添加三个新的 Cassandra 节点

在本示例中,三个新的 Cassandra 节点位于以下 IP 地址:

  • 10.10.0.14
  • 10.10.0.15
  • 10.10.0.16

您必须先更新 Edge 配置文件才能添加新节点:

IP1=10.10.0.1
IP2=10.10.0.2
IP3=10.10.0.3
# Add the new node IP addresses.
IP14=10.10.0.14
IP15=10.10.0.15
IP16=10.10.0.16
HOSTIP=$(hostname -i)
ADMIN_EMAIL=opdk@google.com
...
# Update CASS_HOSTS to add each new node after an existing nodes. 
# Must use IP addresses for CASS_HOSTS, not DNS names.
CASS_HOSTS="$IP1:1,1 $IP14:1,1 $IP2:1,1 $IP15:1,1 $IP3:1,1 $IP16:1,1" 

这可确保现有节点保留其初始令牌设置,并且每个新节点的初始令牌介于现有节点的令牌值之间。

配置 Edge

修改配置文件后,您必须执行以下操作:

  • 重新配置现有 Cassandra 节点
  • 在新节点上安装 Cassandra
  • 重新配置管理服务器

重新配置现有 Cassandra 节点

在现有 Cassandra 节点上:

  1. 使用“-p c”配置文件和新的配置文件重新运行 setup.sh:
    /opt/apigee/apigee-setup/bin/setup.sh -p c -f updatedConfigFile

在新节点上安装 Cassandra

在每个新的 Cassandra 节点上:

  1. 在三个节点上安装 Cassandra:
    1. 按照安装 Edge apigee-setup 实用程序中的说明,在第一个节点上安装 apigee-setup
    2. 使用更新后的配置文件在第一个节点上安装 Cassandra:
      /opt/apigee/apigee-setup/bin/setup.sh -p c -f updatedConfigFile
    3. 对其余的新 Cassandra 节点重复执行这两个步骤。
  2. 重新构建三个新的 Cassandra 节点,通过 REGION 属性指定配置文件中设置的区域名称。在本示例中为“dc-1”:
    1. 在第一个节点上,运行以下命令:
      /opt/apigee/apigee-cassandra/bin/nodetool [-u username -pw password] -h nodeIP rebuild dc-1

      其中,nodeIP 是 Cassandra 节点的 IP 地址。

      只有在您为 Cassandra 启用了 JMX 身份验证的情况下,才需要传递用户名和密码。

    2. 在其余的新 Cassandra 节点上重复此步骤。

重新配置管理服务器

在管理服务器节点上

  1. 重新运行 setup.sh 以更新新添加的 Cassandra 节点的管理服务器:
    /opt/apigee/apigee-setup/bin/setup.sh -p ms -f updatedConfigFile

重启所有路由器和消息处理器

  1. 在所有路由器上:
    /opt/apigee/apigee-service/bin/apigee-service edge-router restart
  2. 在所有消息处理器上:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart

现有 Cassandra 节点上的可用磁盘空间

添加新节点后,您可以在现有节点上使用 nodetool cleanup 命令释放磁盘空间。此命令会清除不再由现有 Cassandra 节点拥有的配置令牌。

如需在添加新节点后释放现有 Cassandra 节点上的磁盘空间,请执行以下命令:

/opt/apigee/apigee-cassandra/bin/nodetool [-u username -pw password] -h cassandraIP cleanup

只有在您为 Cassandra 启用了 JMX 身份验证的情况下,才需要传递用户名和密码。

验证重新构建

使用以下命令验证重新构建是否成功:

nodetool [-u username -pw password] -h nodeIP netstats

当节点已启动并构建索引时,此命令应指示 MODE: Normal

nodetool [-u username -pw password] -h nodeIP statusthrift

应表示旧服务器正在运行,以便 Cassandra 接受新的客户端请求。

nodetool [-u username -pw password] -h nodeIP statusbinary

应表示原生传输(或二进制协议)正在运行。

nodetool describecluster

应显示新节点与旧节点使用相同的架构版本。

如需详细了解如何使用 nodetool,请参阅 nodetool 用法文档