高可用(HA)集群配置
TigerGraph系统的高可用集群(即High Availability或HA配置)表示在一个服务器集群中,通过副本的方式来确保业务的不间断运行,以防止因为集群中一台或多台服务器宕机或某些组件损坏导致的服务不可用。TigerGraph的高可用配置在所有组件工作正常时提供负载均衡功能,而在某些组件损坏时提供实时切换功能。一台TigerGraph的服务器上包含多个组件(GSE、GPE、RESTPP等)。默认情况下,HA的副本系数(即repliction factor)为“2”,即系统对同一数据同时保存两份完整的副本,并保存在不同的计算机节点上。在高级HA配置中,用户也可以自定义副本系数。

系统要求

  • 高可用配置至少需要3台计算机节点组成集群。节点可以是物理主机,也可以是虚拟主机。即便图数据库只有一个分块,也必须如此。
  • 若分布式系统上的图数据库有N个分块(N大于一),则集群中必须拥有2N台计算机节点。
  • 节点之间所有的TigerGraph版本必须一致。

限制条件

  1. 1.
    进行HA配置的时间位于系统安装完成之后,数据库应用部署之前。
  2. 2.
    当前版本下,如果需要将一个非HA配置转换成HA配置,必须清除所有的数据和元数据,并关闭TigerGraph服务。在将来的版本中,这个限制会有所改进。

操作步骤

从2.1版本开始,HA配置被集成到了平台安装过程中。请参阅:TigerGraph Platform Installation Guide

(A) :安装 TigerGraph

请更具TigerGraph Platform Installation Guide提供的步骤安装TigerGraph系统。
下面的步骤均需要使用 tigergraph 系统账户,并且在m1节点上操作。

(B) :停止TigerGraph服务

首先请确认已经以 tigergraph 系统账户名登录主机m1。在创建或修改HA配置前,首先需要将TigerGraph系统完全关闭。如果系统内存有任何数据,请先清除数据(例如使用命令"gsql DROP ALL")。
停止所有TigerGraph服务
gadmin stop ts3 -fy
gadmin stop all -fy
gadmin stop admin -fy

(C) :启用HA

在完成集群安装后,使用下面的命令创建HA配置
gadmin --enable ha
该命令会自动生成一个副本系数为“2”的分布式数据库配置文件。某些组件可能会拥有高于2的副本系数。
例:
成功的HA配置
[email protected]$ gadmin --enable ha
[FAB ][m3,m2] mkdir -p ~/.gium
[FAB ][m3,m2] scp -r -P 22 ~/.gium ~/
[FAB ][m3,m2] mkdir -p ~/.gsql
[FAB ][m3,m2] scp -r -P 22 ~/.gsql ~/
[FAB ][m3,m2] mkdir -p ~/.venv
[FAB ][m3,m2] scp -r -P 22 ~/.venv ~/
[FAB ][m3,m2] cd ~/.gium; ./add_to_path.sh
[RUN ] /home/tigergraph/.gsql/gpe_auto_start_add2cron.sh
[FAB ][m3,m2] mkdir -p /home/tigergraph/.gsql/
[FAB ][m3,m2] scp -r -P 22 /home/tigergraph/.gsql/all_log_cleanup /home/tigergraph/.gsql/
[FAB ][m3,m2] mkdir -p /home/tigergraph/.gsql/
[FAB ][m3,m2] scp -r -P 22 /home/tigergraph/.gsql/all_log_cleanup_add2cron.sh /home/tigergraph/.gsql/
[FAB ][m1,m3,m2] /home/tigergraph/.gsql/all_log_cleanup_add2cron.sh
[FAB ][m1,m3,m2] rm -rf /home/tigergraph/tigergraph_coredump
[FAB ][m1,m3,m2] mkdir -p /home/tigergraph/tigergraph/logs/coredump
[FAB ][m1,m3,m2] ln -s /home/tigergraph/tigergraph/logs/coredump /home/tigergraph/tigergraph_coredump
如果HA配置失败(例如某些HA的要求未满足),系统会返回一条报错信息:
失败的HA配置
tigergraph@m1$ gadmin --enable ha
Detect config change. Please run 'gadmin config-apply' to apply.
ERROR:root: To enable HA configuration, you need at least 3 machines.
Enable HA configuration failed.
{% endcode-tabs-item %} {% endcode-tabs %}

(D) :[可选] HA高级配置

HA高级配置是可选的步骤。高级用户可以通过数次执行"gadmin --set"命令来自定义HA配置的参数,并手动定义每台集群节点上需要运行哪些TigerGraph组件。下面列出的是我们推荐的组件分布方式。在文末的表格中我们也列出了不同情况下的不同配置方法。
组件
键名
建议的主机数量
建议的副本数量
ZooKeeper
zk.servers
3 或 5
-
Dictionary Server
dictserver.servers
3 或 5
-
Kafka
kafka.servers
与GPE相同
与GPE相同
kafka.num.replicas
2 或 3
2 或 3
GSE
gse.servers
每台主机
每台主机
gse.replicas
2
2
GPE
gpe.servers
每台主机
每台主机
gpe.replicas
2
2
REST
restpp.servers
每台主机
每台主机
例:假设我们有一个包含三台主机的集群,分别为m1,m2和m3。Kafka、GPE、GSE和RESTPP在m1和m2上都安装,副本系数为2。则我们可以判断这是一个非分布式图数据的高可用部署。
例: 三节点非分布式高可用集群
gadmin --set zk.servers m1,m2,m3
gadmin --set dictserver.servers m1,m2,m3
gadmin --set dictserver.base_ports 17797,17797,17797
gadmin --set kafka.servers m1,m2
gadmin --set kafka.num.replicas 2
gadmin --set gse.replicas 2
gadmin --set gpe.replicas 2
gadmin --set gse.servers m1,m2
gadmin --set gpe.servers m1,m2
gadmin --set restpp.servers m1,m2

(E) :安装软件包

HA配置完成后,请在第一台计算机节点(通常为m1)上安装软件包。
gadmin pkg-install reset -fy

实际案例

下面的表格列出了不同情况下的安装方式。注意,如果你希望从一种配置方式转换到另外一种配置方式,请事先停止整个TigerGraph系统。​
目标部署方式
集群配置方式 (X为节点数)
具体步骤: A,B,C等字母对应上文中的步骤序号
非分布式图数据, 有HA
每台服务器都保存一个完整的数据副本。
  • 无论是第一次安装还是重新配置,步骤都是: (A) → B → C → D → E. 在步骤D中, 将总的副本数设置为 X , 例: gpe.replicas = X gse.replicas = X restpp.replicas = X ...
  • 注意: (A) 上的括号表示步骤A只适用于首次安装。
分布式图数据,无HA
图数据被分块后分布在不同的节点上。
  • 注意: 无HA等价于副本系数为1。
  • 首次安装时, skip 可跳过步骤B, C, D 和 E。
分布式图数据 有HA
图数据以副本系数N分块。 分块数量Y等于X/N。
  • 无论是第一次安装还是重新配置,步骤都是, (A) → B → C → D → E。在步骤D中, 将总的副本数设置为N,例如: gpe.replicas = N gse.replicas = N ...
  • 注意: (A) 上的括号表示步骤A只适用于首次安装。