跳转至

均衡扩容后的 Storage 数据

Enterpriseonly

仅企业版NebulaGraph集群支持均衡扩容后的 Storage 数据。

用户在扩容 Storage 服务后,可以自主决定是否均衡 Storage 服务中的数据。本文介绍如何设置均衡 Storage 数据。

NebulaGraph的 Storage 服务的扩容分为两个阶段,第一个阶段等待所有扩容的 Pods 为Ready的状态;第二个阶段执行BALANCE DATABALANCE LEADER命令均衡数据。这两个阶段将控制器副本的扩容过程与均衡数据过程解耦,使用户可以选择在低流量时进行均衡数据操作,有效降低数据迁移对在线服务的影响。

用户可以在集群的 CR 实例的配置文件中通过参数enableAutoBalance来控制是否自动均衡数据。

前提条件

已使用 K8s 创建一个集群。具体步骤,参见使用 Kubectl 创建NebulaGraph集群

操作步骤

以下示例使用名为nebula的集群、名为nebula_cluster.yaml的 YAML 配置文件,说明如何设置enableAutoBalance

  1. 执行以下命令进入nebula集群的编辑页面。

    kubectl edit nebulaclusters.apps.nebula-graph.io nebula
    
  2. 在 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: v3.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: v3.6.0
      nodeSelector:
        nebula: cloud
      reference:
        name: statefulsets.apps
        version: v1
      schedulerName: default-scheduler
      storaged:
        enableAutoBalance: true   //将其值设置为 true 时表示扩容后自动均衡 Storage 数据。
        dataVolumeClaims:
        - resources:
            requests:
              storage: 2Gi
          storageClassName: fast-disks 
        - 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: v3.6.0
    ...    
    
    • 当设置enableAutoBalance的值为true时,表示扩容后自动均衡 Storage 数据。
    • 当设置enableAutoBalance的值为false时,表示扩容后不会均衡 Storage 数据。
    • 当不设置enableAutoBalance参数时,默认扩容 Storage 后系统不会自动均衡 Storage 数据。
  3. 执行kubectl apply -f nebula_cluster.yaml使上述更新生效。


最后更新: November 7, 2023