均衡扩容后的Storage数据Graph
用户在扩容Storage服务后,可以自主决定是否均衡Storage服务中的数据。本文介绍如何设置均衡Storage数据。
NebulaGraph的Storage服务的扩容分为两个阶段,第一个阶段等待所有扩容的Pods为Ready
的状态;第二个阶段执行BALANCE DATA
和BALANCE LEADER
命令均衡数据。这两个阶段将控制器副本的扩容过程与均衡数据过程解耦,使用户可以选择在低流量时进行均衡数据操作,有效降低数据迁移对在线服务的影响。
用户可以在集群的CR实例的配置文件中通过参数enableAutoBalance
来控制是否自动均衡数据。
前提条件Graph
已使用K8s创建一个集群。具体步骤,参见Graph。
操作步骤Graph
以下示例使用名为nebula
的集群说明如何设置enableAutoBalance
:
-
执行以下命令进入
nebula
集群的编辑页面。kubectl edit nebulaclusters.apps.nebula-graph.io nebula
-
在YAML文件的
spec.storaged
配置项中,添加enableAutoBalance
并设置其值为true
。apiVersion: apps.nebula-graph.io/v1alpha1 kind: NebulaCluster metadata: name: nebula spec: graphd: image: vesoft/nebula-graphd logVolumeClaim: resources: requests: storage: 2Gi storageClassName: fast-disks replicas: 1 resources: limits: cpu: "1" memory: 1Gi requests: cpu: 500m memory: 500Mi version: v2.6.0 imagePullPolicy: IfNotPresent metad: dataVolumeClaim: resources: requests: storage: 2Gi storageClassName: fast-disks image: vesoft/nebula-metad logVolumeClaim: resources: requests: storage: 2Gi storageClassName: fast-disks replicas: 1 resources: limits: cpu: "1" memory: 1Gi requests: cpu: 500m memory: 500Mi version: v2.6.0 nodeSelector: nebula: cloud reference: name: statefulsets.apps version: v1 schedulerName: default-scheduler storaged: enableAutoBalance: true //将其值设置为true时表示扩容后自动均衡Storage数据。 dataVolumeClaim: resources: requests: storage: 2Gi storageClassName: fast-disks image: vesoft/nebula-storaged logVolumeClaim: resources: requests: storage: 2Gi storageClassName: fast-disks replicas: 3 resources: limits: cpu: "1" memory: 1Gi requests: cpu: 500m memory: 500Mi version: v2.6.0 ...
- 当设置
enableAutoBalance
的值为true
时,表示扩容后自动均衡Storage数据。
- 当设置
enableAutoBalance
的值为false
时,表示扩容后不会均衡Storage数据。
- 当不设置
enableAutoBalance
参数时,默认扩容Storage后系统不会自动均衡Storage数据。
- 当设置
最后更新: November 16, 2021