33. ClustrixDB 扩展集群的容量-Flex up

时间:2021-07-18 05:55:55

ClustrixDB被授权为每个节点的最大核数以及集群的最大节点数。如果需要扩展许可证,请联系Clustrix Sales。扩容之前检查License是否支持节点数。

 

一、准备节点

提供节点并在每个节点上安装ClustrixDB,使用相同的版本和安装配置。

如果正在使用区域,请确保目标配置在每个区域中具有相同数量的节点。

如果您正在使用加密连接,请确保密钥中的证书在具有正确权限的同一位置出现。

 

二、将节点添加到集群中

在向集群添加节点时,可能需要打开端口。有关ClustrixDB所需的所有端口(包括用于多端口的端口)的清单,请参阅使用ClustrixDB的网络安全性。

连接到集群中的一个现有节点,并从SQL提示符运行以下命令。指定的IP是要添加的新节点的IP。

sql> ALTER CLUSTER ADD ‘ip‘ [, ‘ip‘] ...; 

ClustrixDB将执行组更改以添加新节点。

  • Clustrix建议在非高峰期间或计划维护窗口期间运行此命令。
  • 在添加节点时,服务将短暂中断。
  • 在Rebalancer将数据移动到新节点时,性能略有下降。

(可选)为新添加的节点配置区域

如果使用区域,则必须使用ALTER CLUSTER区域将新添加的节点分配给各自的区域。仅为区域部分配置的集群在区域丢失时不能容错。

 

三、验证节点添加成功

从SQL提示符运行此查询。新节点将自动分配连续的节点号。

sql> SELECT * FROM system.nodeinfo ORDER BY nodeid;

通过在bash提示符中提供以下内容来查看集群的状态

shell> /opt/clustrix/bin/clx status

应该看到所有节点都显示OK。如果使用区域,则所有节点都应该分配一个非零区域。如果没有使用区域,则将所有节点分配给区域0。

您可能会注意到,节点之间的数据分布还不平衡。要有耐心。很快就会的。

如果您试图添加的节点没有出现在上面的列表中,请参阅下面有关Flex Up期间错误的部分。

 

四、监听rebalancer状态

新节点已经成功地添加到ClustrixDB集群中,但是它们还不包含数据。Rebalancer现在将自动在后台工作,将数据转移到新的节点。要监视此过程,请参阅有关管理Rebalancer的说明。集群功能齐全,可以在此过程中使用。

 

五、Flex Up过程遇到的错误

作为向集群添加节点的一部分,ClustrixDB执行一些检查以确保节点具有相同的配置。本节描述ALTER CLUSTER ADD可能遇到的错误以及如何解决这些问题。

SQL Errors

以下是您可能在SQL提示时遇到的错误

  • ERROR 1 (HY000): [26633] Bad parameter.: Host "xxx" already in cluster
    • 如果您试图添加已经是集群一部分的节点,则会发生此错误。
  • ERROR 1 (HY000): [55300] Multiple nodes cannot be added when an existing addition is pending
    • 由于下列原因,节点添加可能处于挂起状态:
      • 节点仍在添加过程中

      • 运行不同版本ClustrixDB的节点被添加到集群中
      • 一个具有不同多端口设置的节点被添加到集群中
    • 请参阅下面有关PROBLEM_NODES和pending_invite的部分,以解决这些错误。

 

PENDING_INVITES:

pending_invite的节点列表

sql> SELECT * FROM system.pending_invites;

集群定期尝试向system.pending_invite中的节点发送邀请。对于发送的每个邀请,clustrix.log中都会有记录:

sending invitation response(no error) to "10.2.13.68:24378"

注意:如果在pending_invites和system.problem_nodes中有同一个节点,在解决system.problem_nodes问题之前想要从system.pending_invites中移除节点,请使用pending_invite。这样做将防止在问题解决后自动将节点添加到集群中,从而导致过早的组更改。相反,您可能更喜欢在非高峰时间完成节点添加。

从pending_invite中删除一个挂起的节点添加

sql> DELETE FROM system.pending_invites;

 

PROBLEM_NODES:

查询system.problem_nodes查看为什么不能添加节点

sql> SELECT * FROM system.problem_nodes;

下面是system.problem_nodes中提供的原因列表,以及如何解决这些问题:

问题

解决

Software binaries differ 确保所有节点都运行相同版本的ClustrixDB
Multiport settings mismatched

有关如何禁用多端口的说明,请参阅修改启动配置选项。

ClustrixDB的网络安全包含与启用多端口端口相关的信息。