高可用(HA)集群配置
Last updated
Last updated
TigerGraph系统的高可用集群(即High Availability或HA配置)表示在一个服务器集群中,通过副本的方式来确保业务的不间断运行,以防止因为集群中一台或多台服务器宕机或某些组件损坏导致的服务不可用。TigerGraph的高可用配置在所有组件工作正常时提供负载均衡功能,而在某些组件损坏时提供实时切换功能。一台TigerGraph的服务器上包含多个组件(GSE、GPE、RESTPP等)。默认情况下,HA的副本系数(即repliction factor)为“2”,即系统对同一数据同时保存两份完整的副本,并保存在不同的计算机节点上。在高级HA配置中,用户也可以自定义副本系数。
高可用配置至少需要3台计算机节点组成集群。节点可以是物理主机,也可以是虚拟主机。即便图数据库只有一个分块,也必须如此。
若分布式系统上的图数据库有N个分块(N大于一),则集群中必须拥有2N台计算机节点。
节点之间所有的TigerGraph版本必须一致。
进行HA配置的时间位于系统安装完成之后,数据库应用部署之前。
当前版本下,如果需要将一个非HA配置转换成HA配置,必须清除所有的数据和元数据,并关闭TigerGraph服务。在将来的版本中,这个限制会有所改进。
从2.1版本开始,HA配置被集成到了平台安装过程中。请参阅:TigerGraph Platform Installation Guide。
请更具TigerGraph Platform Installation Guide提供的步骤安装TigerGraph系统。
下面的步骤均需要使用 tigergraph 系统账户,并且在m1节点上操作。
首先请确认已经以 tigergraph 系统账户名登录主机m1。在创建或修改HA配置前,首先需要将TigerGraph系统完全关闭。如果系统内存有任何数据,请先清除数据(例如使用命令"gsql DROP ALL")。
在完成集群安装后,使用下面的命令创建HA配置
该命令会自动生成一个副本系数为“2”的分布式数据库配置文件。某些组件可能会拥有高于2的副本系数。
例:
如果HA配置失败(例如某些HA的要求未满足),系统会返回一条报错信息:
{% endcode-tabs-item %} {% endcode-tabs %}
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。则我们可以判断这是一个非分布式图数据的高可用部署。
HA配置完成后,请在第一台计算机节点(通常为m1)上安装软件包。
下面的表格列出了不同情况下的安装方式。注意,如果你希望从一种配置方式转换到另外一种配置方式,请事先停止整个TigerGraph系统。
目标部署方式 | 集群配置方式 (X为节点数) | 具体步骤: A,B,C等字母对应上文中的步骤序号 |
非分布式图数据, 有HA | 每台服务器都保存一个完整的数据副本。 |
|
分布式图数据,无HA | 图数据被分块后分布在不同的节点上。 |
|
分布式图数据 有HA | 图数据以副本系数N分块。 分块数量Y等于X/N。 |
|