diff --git a/docs-2.0/2.quick-start/3.quick-start-on-premise/3.1add-storage-hosts.md b/docs-2.0/2.quick-start/3.quick-start-on-premise/3.1add-storage-hosts.md index f4029d65439..51148f1fd40 100644 --- a/docs-2.0/2.quick-start/3.quick-start-on-premise/3.1add-storage-hosts.md +++ b/docs-2.0/2.quick-start/3.quick-start-on-premise/3.1add-storage-hosts.md @@ -27,12 +27,6 @@ ADD HOSTS : [,: ...]; ``` - - 示例: ```ngql diff --git a/docs-2.0/2.quick-start/6.cheatsheet-for-ngql-command.md b/docs-2.0/2.quick-start/6.cheatsheet-for-ngql-command.md index 532687c969c..3bee9c28daf 100644 --- a/docs-2.0/2.quick-start/6.cheatsheet-for-ngql-command.md +++ b/docs-2.0/2.quick-start/6.cheatsheet-for-ngql-command.md @@ -434,14 +434,20 @@ * [SUBMIT JOB BALANCE](../synchronization-and-migration/2.balance-syntax.md) + {{comm.comm_begin}} + | 语法 | 说明 | + | :-------------------------------- | :----------------------------------------------------------- | + |`SUBMIT JOB BALANCE LEADER`|启动任务均衡分布所有图空间中的 leader。该命令会返回任务 ID。| + {{comm.comm_end}} + + {{ent.ent_begin}} | 语法 | 说明 | | :-------------------------------- | :----------------------------------------------------------- | |`SUBMIT JOB BALANCE LEADER`|启动任务均衡分布所有图空间中的 leader。该命令会返回任务 ID。| - {{ ent.ent_begin }} |`SUBMIT JOB BALANCE DATA`|启动任务均衡分布当前图空间中的所有分片。该命令会返回任务 ID(`job_id`)。| |`SUBMIT JOB BALANCE DATA REMOVE [,: ...]`|启动任务迁空当前图空间指定的 Storage 服务中的分片。端口默认为`9779`。| - {{ ent.ent_end }} - + |`SUBMIT JOB BALANCE IN ZONE`|在当前图空间内每个 Zone 内部启动任务均衡分布分片。| + {{ent.ent_end}} * [作业管理](../3.ngql-guide/4.job-statements.md) @@ -453,11 +459,7 @@ | `SHOW JOB ` | 显示当前图空间内指定作业和相关任务的信息。Meta 服务将`SUBMIT JOB`请求解析为多个任务,然后分配给进程 nebula-storaged。 | | `SHOW JOBS` | 列出当前图空间内所有未过期的作业。 | | `STOP JOB` | 停止当前图空间内未完成的作业。 | - | `RECOVER JOB` | 重新执行当前图空间内失败的作业,并返回已恢复的作业数量。 | - + | `RECOVER JOB` | 重新执行当前图空间内失败的作业,并返回已恢复的作业数量。 || * [终止查询](../3.ngql-guide/17.query-tuning-statements/6.kill-query.md) diff --git a/docs-2.0/20.appendix/learning-path.md b/docs-2.0/20.appendix/learning-path.md index c2bfdf422cd..aebb69915f7 100644 --- a/docs-2.0/20.appendix/learning-path.md +++ b/docs-2.0/20.appendix/learning-path.md @@ -144,13 +144,13 @@ | ------------------------------------------------------------ | |[创建快照](https://docs.nebula-graph.com.cn/{{nebula.release}}/backup-and-restore/3.manage-snapshot/#_5)| - + |[Zone](../4.deployment-and-installation/5.zone.md)| + {{ent.ent_end}} - SSL 加密 diff --git a/docs-2.0/3.ngql-guide/16.subgraph-and-path/2.find-path.md b/docs-2.0/3.ngql-guide/16.subgraph-and-path/2.find-path.md index 066af2b9243..fa4987846e0 100644 --- a/docs-2.0/3.ngql-guide/16.subgraph-and-path/2.find-path.md +++ b/docs-2.0/3.ngql-guide/16.subgraph-and-path/2.find-path.md @@ -11,7 +11,7 @@ {{comm.comm_begin}} ```ngql -FIND { SHORTEST | SINGLE SHORTEST | ALL | NOLOOP } PATH [WITH PROP] FROM TO +FIND { SHORTEST | ALL | NOLOOP } PATH [WITH PROP] FROM TO OVER [REVERSELY | BIDIRECT] [] [UPTO {STEP|STEPS}] YIELD path as @@ -23,8 +23,6 @@ YIELD path as - `SHORTEST`:查找所有最短路径。 -- `SINGLE SHORTEST`:查找所有最短路径,随机返回其中一条。 - - `ALL`:查找所有路径。 - `NOLOOP`:查找非循环路径。 diff --git a/docs-2.0/3.ngql-guide/4.job-statements.md b/docs-2.0/3.ngql-guide/4.job-statements.md index 3036f227995..835860ddb38 100644 --- a/docs-2.0/3.ngql-guide/4.job-statements.md +++ b/docs-2.0/3.ngql-guide/4.job-statements.md @@ -48,31 +48,26 @@ nebula> SUBMIT JOB BALANCE DATA REMOVE 192.168.8.100:9779; +------------+ ``` -{{ ent.ent_end }} +## SUBMIT JOB BALANCE IN ZONE [REMOVE] -## SUBMIT JOB BALANCE LEADER +`SUBMIT JOB BALANCE IN ZONE`语句会启动一个任务在当前图空间中的所有 Zone 内部均衡分布分片副本。该命令会返回任务 ID。 -`SUBMIT JOB BALANCE LEADER`语句会启动任务均衡分布所有图空间中的 leader。该命令会返回任务 ID。 +`SUBMIT JOB BALANCE IN ZONE REMOVE`语句会启动一个任务清空当前图空间的 Zone 内指定的 Storage 节点。清空 Storage 节点前,需要确保 Zone 内剩余 Storage 节点数量可以满足设置的副本数。例如,如果设置了副本数为 3,那么在执行该命令前,需要确保剩余 Storage 节点数量大于等于 3。 示例: ```ngql -nebula> SUBMIT JOB BALANCE LEADER; +# 在当前图空间指定的 Zone 内均衡分布分片副本 +nebula> SUBMIT JOB BALANCE IN ZONE; +------------+ | New Job Id | +------------+ -| 33 | +| 25 | +------------+ ``` - - ## SUBMIT JOB COMPACT `SUBMIT JOB COMPACT` 语句会在当前图空间内触发 RocksDB 的长耗时 `compact` 操作。 diff --git a/docs-2.0/3.ngql-guide/9.space-statements/1.create-space.md b/docs-2.0/3.ngql-guide/9.space-statements/1.create-space.md index ec9a52f6b64..a44ca3e29cf 100644 --- a/docs-2.0/3.ngql-guide/9.space-statements/1.create-space.md +++ b/docs-2.0/3.ngql-guide/9.space-statements/1.create-space.md @@ -10,6 +10,8 @@ ### 创建图空间 +{{comm.comm_begin}} + ```ngql CREATE SPACE [IF NOT EXISTS] ( [partition_num = ,] @@ -23,14 +25,37 @@ CREATE SPACE [IF NOT EXISTS] ( |:---|:---| |`IF NOT EXISTS`|检测待创建的图空间是否存在,只有不存在时,才会创建图空间。仅检测图空间的名称,不会检测具体属性。| |``|1、在{{nebula.name}}实例中唯一标识一个图空间。
2、图空间名称设置后无法被修改。
3、不能以数字开头;支持 1~4 字节的 UTF-8 编码字符,包括英文字母(区分大小写)、数字、中文等,但是不包括除下划线外的特殊字符;使用特殊字符、保留关键字或数字开头时,需要用反引号(\`)包围且不能使用英文句号(`.`)。详情参见[关键字和保留字](../../3.ngql-guide/1.nGQL-overview/keywords-and-reserved-words.md)。
**注意**:如果以中文为图空间命名,报`SyntaxError`错误时,需使用反引号(\`)包围中文字符。| -|`partition_num`|指定图空间的分片数量。建议设置为集群中硬盘数量的 20 倍(HDD 硬盘建议为 2 倍)。例如集群中有 3 个硬盘,建议设置 60 个分片。默认值为 100。| +|`partition_num`|指定图空间的分片数量。建议设置为集群中硬盘数量的 20 倍(HDD 硬盘建议为 2 倍)。例如集群中有 3 个硬盘,建议设置 60 个分片。默认值为 10。| +|`replica_factor`|指定每个分片的副本数量。建议在生产环境中设置为 3,在测试环境中设置为 1。由于需要基于多数表决,副本数量必须是**奇数**。默认值为 1。| +|`vid_type`|必选参数。指定点 ID 的数据类型。可选值为`FIXED_STRING()`和`INT64`。`INT`等同于`INT64`。
`FIXED_STRING()`表示数据类型为定长字符串,长度为`N`字节,超出长度会报错。例如,UTF-8中,一个中文字符的长度为三个字节,如果设置`N`为 12,那么`vid_type`为最多 4 个中文字符。
`INT64`表示数据类型为整数。| +|`COMMENT`|图空间的描述。最大为 256 字节。默认无描述。| + +{{comm.comm_end}} + +{{ent.ent_begin}} + +```ngql +CREATE SPACE [IF NOT EXISTS] ( + [partition_num = ,] + [replica_factor = ,] + vid_type = {FIXED_STRING() | INT[64]} + ) + [COMMENT = ''] + [ON ']; +``` + +|参数|说明| +|:---|:---| +|`IF NOT EXISTS`|检测待创建的图空间是否存在,只有不存在时,才会创建图空间。仅检测图空间的名称,不会检测具体属性。| +|``|1、在{{nebula.name}}实例中唯一标识一个图空间。
2、图空间名称设置后无法被修改。
3、不能以数字开头;支持 1~4 字节的 UTF-8 编码字符,包括英文字母(区分大小写)、数字、中文等,但是不包括除下划线外的特殊字符;使用特殊字符、保留关键字或数字开头时,需要用反引号(\`)包围且不能使用英文句号(`.`)。详情参见[关键字和保留字](../../3.ngql-guide/1.nGQL-overview/keywords-and-reserved-words.md)。
**注意**:如果以中文为图空间命名,报`SyntaxError`错误时,需使用反引号(\`)包围中文字符。| +|`partition_num`|指定图空间的分片数量。建议设置为集群中硬盘数量的 20 倍(HDD 硬盘建议为 2 倍)。例如集群中有 3 个硬盘,建议设置 60 个分片。默认值为 10。| |`replica_factor`|指定每个分片的副本数量。建议在生产环境中设置为 3,在测试环境中设置为 1。由于需要基于多数表决,副本数量必须是**奇数**。默认值为 1。| |`vid_type`|必选参数。指定点 ID 的数据类型。可选值为`FIXED_STRING()`和`INT64`。`INT`等同于`INT64`。
`FIXED_STRING()`表示数据类型为定长字符串,长度为`N`字节,超出长度会报错。例如,UTF-8中,一个中文字符的长度为三个字节,如果设置`N`为 12,那么`vid_type`为最多 4 个中文字符。
`INT64`表示数据类型为整数。| |`COMMENT`|图空间的描述。最大为 256 字节。默认无描述。| +|`zone_list`|指定图空间所属的 Zone 列表,分片副本将分布在这些 Zone 中。副本数量不能超过指定 Zone 数量。不指定`zone_list`时,分片副本默认分布在所有 Zone 中。详情请参见 [管理 Zone](../../4.deployment-and-installation/5.zone.md)。| + +{{ent.ent_end}} - !!! caution @@ -105,9 +130,9 @@ nebula> SHOW HOSTS; +-------------+------+----------+--------------+--------------------------------+--------------------------------+---------+ | Host | Port | Status | Leader count | Leader distribution | Partition distribution | Version | +-------------+------+----------+--------------+--------------------------------+--------------------------------+---------+ -| "storaged0" | 9779 | "ONLINE" | 8 | "basketballplayer:3, test:5" | "basketballplayer:10, test:10" | "3.1.0" | -| "storaged1" | 9779 | "ONLINE" | 9 | "basketballplayer:4, test:5" | "basketballplayer:10, test:10" | "3.1.0" | -| "storaged2" | 9779 | "ONLINE" | 3 | "basketballplayer:3" | "basketballplayer:10, test:10" | "3.1.0" | +| "storaged0" | 9779 | "ONLINE" | 8 | "basketballplayer:3, test:5" | "basketballplayer:10, test:10" | "{{nebula.release}}" | +| "storaged1" | 9779 | "ONLINE" | 9 | "basketballplayer:4, test:5" | "basketballplayer:10, test:10" | "{{nebula.release}}" | +| "storaged2" | 9779 | "ONLINE" | 3 | "basketballplayer:3" | "basketballplayer:10, test:10" | "{{nebula.release}}" | +-------------+------+----------+--------------+--------------------------------+--------------------------------+---------+ ``` diff --git a/docs-2.0/3.ngql-guide/9.space-statements/4.describe-space.md b/docs-2.0/3.ngql-guide/9.space-statements/4.describe-space.md index 4267f0c7a15..5e7beed57b3 100644 --- a/docs-2.0/3.ngql-guide/9.space-statements/4.describe-space.md +++ b/docs-2.0/3.ngql-guide/9.space-statements/4.describe-space.md @@ -12,6 +12,7 @@ DESC[RIBE] SPACE ; ## 示例 + ```ngql nebula> DESCRIBE SPACE basketballplayer; +----+--------------------+------------------+----------------+---------+------------+--------------------+---------+ @@ -21,7 +22,10 @@ nebula> DESCRIBE SPACE basketballplayer; +----+--------------------+------------------+----------------+---------+------------+--------------------+---------+ ``` - +{{ent.ent_end}} diff --git a/docs-2.0/4.deployment-and-installation/5.zone.md b/docs-2.0/4.deployment-and-installation/5.zone.md index d622a25e46c..b810b9b150a 100644 --- a/docs-2.0/4.deployment-and-installation/5.zone.md +++ b/docs-2.0/4.deployment-and-installation/5.zone.md @@ -1,157 +1,232 @@ -# 管理逻辑机架(Zone) +# 管理 Zone -{{nebula.name}}提供 Zone 功能,可以管理集群中的 Storage 节点,实现资源隔离。 -## 背景信息 +Zone 是{{nebula.name}}中存储(Storage)节点的逻辑机架,它将多个 Storage 节点划分成可管理的逻辑区域,实现资源隔离。同时,用户可以控制 Graph 服务访问指定的 Zone 内的副本数据,从而减少流量消耗,提高访问效率。本文介绍如何使用 Zone 功能。 -!!! compatibility "历史版本兼容性" +## 原理介绍 - 从 3.0.0 版本开始,在配置文件中添加的 Storage 节点无法直接读写,配置文件的作用仅仅是将 Storage 节点注册至 Meta 服务中。必须使用`ADD HOSTS`命令后,才能正常读写 Storage 节点。 - -用户可以将 Storage 节点加入某个 Zone 中,创建图空间时指定 Zone,就会在 Zone 内的 Storage 节点上创建及存储图空间。分片及其副本会均匀存储在各个 Zone 中。如下图所示。 +用户可以将 Storage 节点加入某个 Zone 中,创建图空间时指定 Zone 的列表,就会在这些 Zone 内的 Storage 节点上创建及存储图空间。分片副本会均匀存储在各个 Zone 中。如下图所示。 ![Zone 示意图](https://docs-cdn.nebula-graph.com.cn/figures/zone1.png) -6 台启动 Storage 服务的机器两两组合,加入 3 个 Zone。指定这三个 Zone 创建图空间 S1,分片及其副本会均匀存储在 Zone1~Zone3。 +在上图中,6 台启动 Storage 服务的机器两两组合,加入 3 个 Zone。当指定这三个 Zone 创建分片副本数为 3 的图空间 S1 时,分片副本会均匀存储在 Zone1 ~ Zone3。 ## 适用场景 - 期望将图空间创建在某些指定的 Storage 节点上,从而达到资源隔离的目的。 - 集群滚动升级。需要停止一个或多个服务器并更新,然后重新投入使用,直到集群中所有的节点都更新为新版本。 + +- 节省成本。将不同的图空间分配到不同的 Zone 中,并通过控制客户端访问指定的 Zone 内的副本数据,从而减少流量消耗,提高访问效率。 -## 基本语法 +## 注意事项 -### ADD HOSTS...INTO NEW ZONE +- 如果当前集群中有数据,需要先清空集群数据,再开启 Zone 功能。有关如何开启 Zone 功能,请参见下文**开启 Zone**。 +- 一个 Storage 节点只能属于一个 Zone,但一个 Zone 可以包含多个不同的 Storage 节点。 +- 不支持删除 Zone。 +- 不支持修改 Zone 的名称。 -将 Storage 节点加入新建 Zone。 +## 开启 Zone -```ngql -ADD HOSTS : [,: ...] [INTO NEW ZONE ""]; -``` +1. 在配置文件`nebula-metad.conf`中,手动添加`--zone_list`字段,并设置其值为需要添加的 Zone 的名称,如`--assigned_zone=zone1, zone2, zone3`。 -示例: + !!! danger -```ngql -nebula> ADD HOSTS 192.168.10.100:9779, 192.168.10.101:9779, 192.168.10.102:9779; -``` + 一旦`--zone_list`的值配置完并启动 Meta 服务后,不允许被修改,否则再次重启 Meta 服务会失败。 -未使用`INTO NEW ZONE ""`时,每个 Storage 节点会默认自动创建并加入名称格式为`default_zone__`的独立 Zone 中。 + !!! note -```ngql -nebula> SHOW ZONES; -+------------------------------------+------------------+------+ -| Name | Host | Port | -+------------------------------------+------------------+------+ -| "default_zone_192.168.10.100_9779" | "192.168.10.100" | 9779 | -| "default_zone_192.168.10.101_9779" | "192.168.10.101" | 9779 | -| "default_zone_192.168.10.102_9779" | "192.168.10.102" | 9779 | -+------------------------------------+------------------+------+ -``` + 如果 Zone 的名称使用特殊字符(不包括下划线)、保留关键字,或数字开头时,在查询语句中指定 Zone 名称时需要用反引号(`)包围;Zone 名称中不能使用英文句号(.);多个 Zone 名称之间使用英文逗号(,)分隔。 + + 关于 Meta 配置文件的详情,参见 [Meta 服务配置](../5.configurations-and-logs/1.configurations/2.meta-config.md)。 -### ADD HOSTS...INTO ZONE +2. 重启 Meta 服务。 -将 Storage 节点加入已创建的 Zone。 - +1. 开启 Zone。详情见上文**开启 Zone**。 +2. 在配置文件`nebula-graphd.conf`中,添加以下配置: + + 1. 添加`--assigned_zone`字段,并设置其值为需要访问的 Zone 的名称,如`--assigned_zone=zone1`。 + + !!! note + + - 不同的 Graph 服务可以设置不同的`--assigned_zone`值,但`--assigned_zone`的值必须是`--zone_list`中的一个。 + - `--assigned_zone`的值是一个字符串,不支持使用英文逗号(,)分隔。 + - 当`--assigned_zone`的值为空时,表示访问所有 Zone。 + + 2. 设置`--enable_intra_zone_routing=true`,以开启定向访问指定 Zone 的功能。 -```ngql -ADD HOSTS : [,: ...] INTO ZONE ""; -``` + !!! caution + + 不同的 Graph 服务中的`--enable_intra_zone_routing`值建议保持一致,否则会导致 Storage 节点的负载不均衡及未知风险。 + +3. 重启 Graph 服务。 -### DROP HOSTS + +关于 Graph 的配置,参见 [Graph 服务配置](../5.configurations-and-logs/1.configurations/3.graph-config.md)。 -从集群中删除 Storage 节点。 +## Zone 命令 !!! note - 无法直接删除正在使用的 Storage 节点,需要先删除关联的图空间,才能删除 Storage 节点。 + 在执行 Zone 命令前,请确保已开启 Zone 功能并配置了`--zone_list`。详情见上文**开启 Zone**。 + +### 查看所有 Zone 信息 ```ngql -DROP HOSTS : [,: ...]; +nebula> SHOW ZONES; ++--------+-----------------+------+ +| Name | Host | Port | ++--------+-----------------+------+ +| "az1" | "192.168.8.111" | 9779 | +| "az1" | "192.168.8.112" | 9779 | +| "az2" | "" | 0 | +| "az3" | "" | 0 | ++--------+-----------------+------+ ``` -### SHOW ZONES +!!! note + 在当前图空间中,执行`SHOW ZONES`返回是所有的 Zone 信息,而不是当前图空间所在的 Zone 信息。信息中的`Host`和`Port`字段是指定 Zone 中的 Storage 节点的 IP 和端口。 -查看所有 Zone。 +### 查看指定 Zone ```ngql -SHOW ZONES; +DESCRIBE ZONE ; +DESC ZONE ; ``` -### DESC ZONE +示例: +```ngql +nebula> DESC ZONE az1 ++-----------------+------+ +| Hosts | Port | ++-----------------+------+ +| "192.168.8.111" | 7779 | +| "192.168.8.111" | 9779 | ++-----------------+------+ +``` -查看指定 Zone。 +### 在 Zone 中创建图空间 ```ngql -DESCRIBE ZONE ""; -DESC ZONE ""; +CREATE SPACE IF NOT EXISTS ( + [partition_num = ,] + [replica_factor = ,] + vid_type = {FIXED_STRING() | INT[64]} + ) + [COMMENT = ''] + [ON ]; ``` -### RENAME ZONE +!!! note + + - 创建图空间时指定的 Zone 必须是 Meta 配置文件中`--zone_list`值中的一个或者多个,否则无法创建图空间。 + - 创建图空间时指定的 Zone 必须包含至少一个 Storage 节点,否则无法创建图空间。 + - 创建图空间时指定的分片副本数必须小于等于 Zone 的数量,否则无法创建图空间。 + +!!! caution + + 不建议在开启 Zone 功能并为 Graph 服务配置了访问指定 Zone(设置`--assigned_zone`)的情况下,创建图空间时不指定 Zone。这样会导致无法查询到分布在其他 Zone 中的分片副本数据,因为 Graph 服务只会访问指定 Zone 中的分片副本数据,而创建图空间时不指定 Zone 会使分片副本分布在其他 Zone 中。 + +示例: + +```ngql +nebula> CREATE SPACE IF NOT EXISTS my_space_1 (vid_type=FIXED_STRING(30)) on az1 +``` -重命名 Zone。 +### 查看图空间的 Zone 信息 ```ngql -RENAME ZONE "" TO ""; +DESC SPACE ; ``` -### DROP ZONE +示例: -删除 Zone。 +```ngql +nebula> DESC SPACE my_space_1 ++----+--------------+------------------+----------------+---------+------------+--------------------+---------+---------+ +| ID | Name | Partition Number | Replica Factor | Charset | Collate | Vid Type | Zones | Comment | ++----+--------------+------------------+----------------+---------+------------+--------------------+---------+---------+ +| 22 | "my_space_1" | 10 | 1 | "utf8" | "utf8_bin" | "FIXED_STRING(30)" | ["az1"] | | ++----+--------------+------------------+----------------+---------+------------+--------------------+---------+---------+ +``` -!!! note +### 将 Storage 节点加入 Zone - Zone 中没有分片时,才可以删除该 Zone。 +```ngql +ADD HOSTS : [,: ...] INTO ZONE ; +``` + +示例: ```ngql -DROP ZONE ""; +nebula> ADD HOSTS 192.168.8.111:9779,192.168.8.112:9779 INTO ZONE az1; ``` -### MERGE ZONE...INTO +### 迁移 Zone 中的 Storage 节点数据至其他 Storage 节点 -将多个 Zone 中的 Storage 节点合并至新建 Zone。 +```ngql +BALANCE IN ZONE REMOVE : [,: ...] +``` !!! note - 合并时将检查所有图空间分片的分布情况,防止同一个分片的不同副本因为合并导致分布在同一个 Zone 中。 + - 执行该命令前,需要先指定图空间。 + - 需要确保其他 Storage 节点数量足够以满足设置的分片副本数。当 Storage 节点数量不足时,会导致迁移失败。执行`SHOW JOBS `查看迁移任务的状态,当返回`FINISHED`时,表示迁移任务完成。 - +示例: ```ngql -MERGE ZONE "" [,"" ...] INTO ""; +nebula> USE my_space_1; +nebula> BALANCE IN ZONE REMOVE 192.168.8.111:9779; ++------------+ +| New Job Id | ++------------+ +| 34 | ++------------+ + +# 查看迁移任务的状态 +nebula> SHOW JOBS 34 ++--------+----------------+------------+----------------------------+----------------------------+ +| Job Id | Command | Status | Start Time | Stop Time | ++--------+----------------+------------+----------------------------+----------------------------+ +| 33 | "DATA_BALANCE" | "FINISHED" | 2023-09-01T08:03:16.000000 | 2023-09-01T08:03:16.000000 | ++--------+----------------+------------+----------------------------+----------------------------+ ``` -示例: +### 将 Storage 节点从 Zone 中移除 ```ngql -MERGE ZONE "default_zone_192.168.10.100_9779","default_zone_192.168.10.101_9779","default_zone_192.168.10.102_9779" INTO "merge_zone"; +DROP HOSTS : [,: ...]; ``` -### DIVIDE ZONE +!!! note -将一个 Zone 中的所有 Storage 节点分离至多个新建 Zone。 + 无法直接删除正在使用的 Storage 节点,需要先删除关联的图空间,才能删除 Storage 节点。 - +```ngql +nebula> DROP HOSTS 192.168.8.111:9779; +``` + +### 负载均衡 Zone 中的 Storage 节点 ```ngql -DIVIDE ZONE "" INTO ""(:) [""(:) ...]; +BALANCE IN ZONE; ``` +!!! note + + 执行该命令前,需要先指定图空间。 + 示例: ```ngql -DIVIDE ZONE "merge_zone" INTO "zone1"(192.168.10.100:9779) "zone2"(192.168.10.101:9779) "zone3"(192.168.10.102:9779); +nebula> USE my_space_1; +nebula> BALANCE IN ZONE; ``` + diff --git a/docs-2.0/5.configurations-and-logs/1.configurations/2.meta-config.md b/docs-2.0/5.configurations-and-logs/1.configurations/2.meta-config.md index e37cd174d8e..cdb5c8135e2 100644 --- a/docs-2.0/5.configurations-and-logs/1.configurations/2.meta-config.md +++ b/docs-2.0/5.configurations-and-logs/1.configurations/2.meta-config.md @@ -84,7 +84,7 @@ Meta 服务提供了两份初始配置文件`nebula-metad.conf.default`和`nebul | 名称 | 预设值 | 说明 |是否支持运行时动态修改| | :------------------------- | :-------- | :------------------------ |:------------------| -|`default_parts_num` | `100` | 创建图空间时的默认分片数量。 |不支持| +|`default_parts_num` | `10` | 创建图空间时的默认分片数量。 |不支持| |`default_replica_factor` | `1` | 创建图空间时的默认副本数量。 |不支持| ## rocksdb options 配置 @@ -108,4 +108,15 @@ Meta 服务提供了两份初始配置文件`nebula-metad.conf.default`和`nebul |`ng_black_box_dump_period_seconds` |`5` |黑匣子采集指标的时间间隔。单位:秒。|不支持| |`ng_black_box_file_lifetime_seconds` |`1800` |采集指标后生成文件的保存时间。单位:秒|支持| -{{ ent.ent_end }} \ No newline at end of file + +## Zone 配置 + +| 名称 | 预设值 | 说明 | 是否支持运行时动态修改 | +| :-------------------- | :----- | :------------------- | :--------------------- | +| `enable_zones` | `false` | 是否开启 Zone 功能。详情参见[管理 Zone](../../4.deployment-and-installation/5.zone.md)。 | 不支持 | + +{{ ent.ent_end }} + + + + diff --git a/docs-2.0/8.service-tuning/load-balance.md b/docs-2.0/8.service-tuning/load-balance.md index c6c2d8bb1c1..6b8747c66a1 100644 --- a/docs-2.0/8.service-tuning/load-balance.md +++ b/docs-2.0/8.service-tuning/load-balance.md @@ -17,13 +17,10 @@ {{ ent.ent_begin }} ## 均衡分片分布 -!!! enterpriseonly - - 仅企业版支持均衡分片分布。 - !!! note - 如果当前图空间已经有失败的均衡分片分布作业,无法开始新的均衡分片分布作业,只能恢复之前失败的作业。如果作业一直执行失败,可以先停止作业,再开始新的均衡分片分布作业。 + - 如果当前图空间已经有失败的均衡分片分布作业,无法开始新的均衡分片分布作业,只能恢复之前失败的作业。如果作业一直执行失败,可以先停止作业,再开始新的均衡分片分布作业。 + - 本文介绍默认不开启 Zone 功能的均衡分片分布及迁移 Storage 节点数据方法。当开启 Zone 功能后,均衡分片分布会在指定的 Zone 中进行。详情参见[管理 Zone](../4.deployment-and-installation/5.zone.md)。 `SUBMIT JOB BALANCE DATA`语句会开始一个作业,将当前图空间的分片平均分配到所有 Storage 服务器。通过创建和执行一组子任务来迁移数据和均衡分片分布。 diff --git a/mkdocs.yml b/mkdocs.yml index 2f87af669f7..b97efa651a9 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -138,6 +138,7 @@ plugins: - nebula-cloud/nebula-cloud-on-alibabacloud/3.delete-service-instance.md - nebula-cloud/nebula-cloud-on-alibabacloud/4.scaling-services.md - 3.ngql-guide/6.functions-and-expressions/9.user-defined-functions.md + - 4.deployment-and-installation/5.zone.md # exclude.ent.end # exclude.comm.begin (hide the comm-doc when releasing ent) - nebula-dashboard/1.what-is-dashboard.md @@ -579,7 +580,7 @@ nav: - 管理服务: 4.deployment-and-installation/manage-service.md - 连接服务: 4.deployment-and-installation/connect-to-nebula-graph.md - 管理 Storage 主机: 4.deployment-and-installation/manage-storage-host.md -# - 管理逻辑机架(Zone): 4.deployment-and-installation/5.zone.md + - 管理 Zone: 4.deployment-and-installation/5.zone.md - 升级版本: 4.deployment-and-installation/3.upgrade-nebula-graph/upgrade-nebula-ent.md - 卸载悦数图数据库: 4.deployment-and-installation/4.uninstall-nebula-graph.md