跳转至

Group&ZoneGraph

NebulaGraph 提供 Group&Zone 功能,可以将 Storage 节点进行分组管理,实现资源隔离。

背景信息Graph

用户可以将 Storage 节点加入某个 Zone 中,多个 Zone 构成一个 Group。创建图空间时指定 Group,就会在 Group 内的 Storage 节点上创建及存储图空间。分片及其副本会均匀存储在各个 Zone 中。如下图所示。

Group&Zone 示意图

8 台启动 Storage 服务的机器两两组合,加入 4 个 Zone。然后将 Zone1、Zone2、Zone3 加入 Group1,Zone3、Zone4 加入 Group2。

指定 Group1 创建图空间 S1,分片及其副本会均匀存储在 Zone1~Zone3,不会存储到 Zone4 的机器上。

指定 Group2 创建图空间 S2,分片及其副本会均匀存储在 Zone3~Zone4。不会存储到 Zone1 和 Zone2 的机器上。

上述例子简单介绍了 Zone 功能,用户可以通过合理规划 Zone 和 Group,实现资源隔离。

适用场景Graph

  • 期望将图空间创建在某些指定的 Storage 节点上,从而达到资源隔离的目的。
  • 集群滚动升级。需要停止一个或多个服务器并更新,然后重新投入使用,直到集群中所有的节点都更新为新版本。

注意事项Graph

  • Zone 是 Storage 节点的集合,每个 Storage 节点只能加入一个 Zone。
  • Zone 中可以存储分片的副本,但同一个分片在一个 Zone 中只能有一个副本。
  • 多个 Zone 可以组成一个 Group,方便管理,并且可以进行资源隔离。
  • 一个 Zone 可以加入多个 Group。
  • 创建 Space 时如果指定 Group,该图空间的副本将均匀分布在该 Group 的各个 Zone 中。
  • 一个 Group 可以创建多个图空间,但是 Group 中 Zone 的数量需要大于等于创建图空间时指定的副本数(replica_factor)。

基本语法Graph

ADD ZONEGraph

创建 Zone,并将 Storage 节点加入 Zone。

ADD ZONE <zone_name> <host1>:<port1> [,<host2>:<port2>...];

示例:

nebula> ADD ZONE zone1 192.168.8.111:9779, 192.168.8.129:9779;

ADD HOST...INTO ZONEGraph

将单个 Storage 节点加入已创建的 Zone。

Note

加入之后请使用 Graph 命令实现负载均衡。

ADD HOST <host1>:<port1> INTO ZONE <zone_name>;

DROP HOST...FROM ZONEGraph

从 Zone 中删除单个 Storage 节点。

Note

Group 中正在使用的 Storage 节点无法直接删除,需要先删除关联的图空间,才能删除 Storage 节点。

DROP HOST <host1>:<port1> FROM ZONE <zone_name>;

SHOW ZONESGraph

查看所有 Zone。

SHOW ZONES;

DESCRIBE ZONEGraph

查看指定 Zone。

DESCRIBE ZONE <zone_name>;
DESC ZONE <zone_name>;

DROP ZONEGraph

删除 Zone。

Note

已加入 Group 的 Zone 无法直接删除,需要先从 Group 中剔除该 Zone,或删除所属的 Group 后,才能删除 Zone。

DROP ZONE <zone_name>;

ADD GROUPGraph

创建 Group,并将 Zone 加入 Group。

ADD GROUP <group_name> <zone_name> [,<zone_name>...];

示例:

nebula> ADD GROUP group1 zone1,zone2;

ADD ZONE...INTO GROUPGraph

将单个 Zone 加入已创建的 Group。

Note

加入之后请使用 Graph 命令实现负载均衡。

ADD ZONE <zone_name> INTO GROUP <group_name>;

DROP ZONE...FROM GROUPGraph

从 GROUP 中删除单个 Zone。

Note

Group 中正在使用的 Zone 无法直接删除,需要先删除关联的图空间,才能删除 Zone。

DROP ZONE <zone_name> FROM GROUP <group_name>;

SHOW GROUPSGraph

查看所有 Group。

SHOW GROUPS;

DESCRIBE GROUPGraph

查看指定 Group。

DESCRIBE GROUP <group_name>;
DESC GROUP <group_name>;

DROP GROUPGraph

删除 Group。

Note

正在使用的 Group 无法直接删除,需要先删除关联的图空间,才能删除 Group。

DROP GROUP <group_name>;

最后更新: November 24, 2021
Back to top