扩容的操作流程
集群扩容的操作流程如下图所示:
创建第二个 distribution 并生成 hashmap 请参考管理员手册 6.3 小节。
本流程利用 gcluster_rebalancing_concurrent_count 参数先阻止rebalance 任务被执行。利用 rebalance instance 把当前集群下所有表加入到 gclusterdb.rebalancing_status 中。调整完每个 rebalance 任务的优先级后再设置 gcluster_rebalancing_concurrent_count 为需要的并发数,开始执行扩容。
调整 rebalance 任务优先级见 管理员手册6.5.12 小节。
删除老的 hashmap 和 distribution 见管理员手册 6.4 小节。
注意:在扩容 coordinator 节点时,若元数据较多,需指定 timeout 时间
以避免拷贝元数据操作超时。执行 gcinstall.py 脚本时增加参数--timeout=TIMEOUT, timeout时间单位为分钟,若不指定 timeout时间,默认超时时间为 15 分钟。
同时,针对带有 License 认证的集群,在扩容新节点时,需要提前生成License文件,执行 gcinstall.py脚本时通过增加--license_file参数将文件传入,在集群安装成功后,方可正常使用。若集群带有全文索引,扩容时全文会自动同步到新节点,不需要再次安装、配置。
缩容的操作流程
集群缩容的操作流程如下图所示。
移除缩容的节点前必须删除老的 hashmap和 distribution。否则无法移除缩容的节点。移除节点使用如下命令,其中 gcChangeInfo.xml 为开始缩容时编写的文件。
gcadmin rmnodes gcChangeInfo.xml
卸载移除的节点需要使用集群安装包中的卸载命令。需要注意,使用卸载命令移除节点时不要使用--Force 参数,这会导致卸载脚本不检查将要卸载的节点是否正在被集群使用,强制卸载集群。