第 1 章 管理集群


heketi 允许管理员通过管理一个或多个红帽 Gluster 存储集群来添加和删除存储容量。

他提供了一个 RESTful 管理界面,可用于管理红帽 Gluster 存储卷的生命周期。利用 Heketi,如 OpenStack Manila、Kubernetes 和 OpenShift 等云服务可以动态置备 Red Hat Gluster Storage 卷,并包括了任何受支持的持久性类型。他将自动确定集群中 brick 的位置,确保在不同故障域中放置 brick 及其副本。Heketi 还支持任意数量的红帽 Gluster 存储群集,允许云服务提供网络文件存储,而无需受限于单个红帽 Gluster 存储群集。
使用 Heketi 时,管理员不再管理或配置 brick、磁盘或受信存储池。Heketi 服务将管理所有硬件,使管理员能够按需分配存储。所有用 Heketi 注册的磁盘都必须以原始格式提供,然后使用提供的磁盘上由 LVM 管理。

注意

副本 3 和仲裁卷是支持使用 Heketi 创建的卷类型。

heketi 卷创建

heketi 卷创建

创建卷请求到 Heketi,使得它能够选择在 2 个区域和 4 个节点之间分布的 brick。在红帽 Gluster 存储中创建卷后,Hketi 为最初发出请求的服务提供卷信息。

1.1. 增加存储容量

您可以使用以下方法增加存储容量:

  • 添加设备
  • 添加新节点
  • 添加一个全新的群集。

1.1.1. 添加新设备

您可以在现有节点中添加更多设备来提高存储容量。当添加更多设备时,您必须确保将设备添加为集合。例如,当扩展副本副本数为 2 的分布式复制卷时,应将一个设备添加到至少两个节点中。如果使用副本 3,则至少应将一个设备添加到至少三个节点。

您可以使用 CLI 添加设备,如下所示:

注册指定的设备。以下示例演示了如何将设备的 /dev/sde' 添加到节点 d6f2c22f2757bf67b1486d868dcb7794 中:

# heketi-cli device add --name=/dev/sde --node=d6f2c22f2757bf67b1486d868dcb7794
OUTPUT:
Device added successfully

1.1.2. 添加新节点

将存储添加到 Heketi 的另一种方式是向集群添加新节点。与添加设备一样,您可以使用 CLI 将新节点添加到现有集群中。在集群中添加新节点后,您必须将新设备注册到该节点。

注意

若要添加节点成功,请确保打开了用于 glusterd 通信的端口。有关端口的详情请参考 https://access.redhat.com/documentation/en-us/red_hat_gluster_storage/3.5/html/installation_guide/port_information

  1. 扩展 OCP 集群以添加新节点。更多信息请参阅 https://access.redhat.com/documentation/en-us/openshift_container_platform/3.11/html-single/configuring_clusters/#adding-cluster-hosts_adding-hosts-to-cluster

    注意
    • 如果新节点已成为 OCP 集群的一部分,请跳过这一步并继续下一步 2。
    • OCP 集群可以扩展,以作为计算节点或 infra 节点添加新节点。例如,对于 infra,它是 node3.example.com openshift_node_group_name='node-config-infra',对于计算节点,它是 node3.example.com openshift_node_group_name='node-config-compute'。
  2. 配置防火墙规则:

    注意

    若要添加节点成功,请确保打开了用于 glusterd 通信的端口。有关端口的详情请参考 https://access.redhat.com/documentation/en-us/red_hat_gluster_storage/3.5/html/installation_guide/port_information

    1. 在新添加的 glusterfs 节点的 /etc/sysconfig/iptables 文件中添加以下规则:

      -A OS_FIREWALL_ALLOW -p tcp -m state --state NEW -m tcp --dport 24007 -j ACCEPT
      -A OS_FIREWALL_ALLOW -p tcp -m state --state NEW -m tcp --dport 24008 -j ACCEPT
      -A OS_FIREWALL_ALLOW -p tcp -m state --state NEW -m tcp --dport 2222 -j ACCEPT
      -A OS_FIREWALL_ALLOW -p tcp -m state --state NEW -m multiport --dports 49152:49664 -j ACCEPT
      -A OS_FIREWALL_ALLOW -p tcp -m state --state NEW -m tcp --dport 24010 -j ACCEPT
      -A OS_FIREWALL_ALLOW -p tcp -m state --state NEW -m tcp --dport 3260 -j ACCEPT
      -A OS_FIREWALL_ALLOW -p tcp -m state --state NEW -m tcp --dport 111 -j ACCEPT
    2. 重新载入/重启 iptables:

      # systemctl restart iptables
  3. 执行以下步骤将标签添加到要部署 RHGS Container 的节点:

    1. 执行以下命令,验证 Red Hat Openshift Container Storage 是否已部署并以预期身份工作:

      # oc get ds

      例如:

      # oc get ds
      NAME                DESIRED   CURRENT   READY     UP-TO-DATE   AVAILABLE   NODE SELECTOR            AGE
      glusterfs-storage   3         3         3         3            3           glusterfs=storage-host   1d
    2. 为新添加的每个节点添加标签,为该新集群添加了 Red Hat Gluster Storage pod:

      # oc label node <NODE_NAME> glusterfs=<node_label>

      其中,

      • NODE_NAME: 是新创建的节点的名称。
      • node_label:现有 daemonset 中使用的名称。当您执行 oc get ds 时,这是您在上一步中获取的值。

      例如:

      # oc label node 192.168.90.3 glusterfs=storage-host
      node "192.168.90.3" labeled
    3. 通过执行以下命令验证 Red Hat Gluster Storage pod 是否在新添加的节点上运行:

      观察在这些新节点上生成的其他 Gluster 存储 pod

      # oc get pods

      例如:

      # oc get pods
      NAME              READY     STATUS    RESTARTS   AGE
      glusterfs-356cf   1/1       Running   0          30d
      glusterfs-fh4gm   1/1       Running   0          30d
      glusterfs-hg4tk   1/1       Running   0          30d
      glusterfs-v759z   0/1       Running   0          1m

      您应看到其他 Gluster 存储 pod,在本例中为 4gluster pod,而不是像前面一样查看 3。它们需要 1-2 分钟才能健康。(如 glusterfs-v759z 0/1 不健康状态)。

    4. 验证 Red Hat Gluster Storage pod 是否正在运行

      # oc get pods -o wide -l glusterfs=storage-pod
  4. 使用 Heketi CLI 向集群添加新节点。下面介绍如何使用 CLI 将新节点 1 添加到 '597fceb5d6c876b899e48f599b988f54 ' 集群:

    # heketi-cli node add --zone=1 --cluster=597fceb5d6c876b899e48f599b988f54 --management-host-name=node4.example.com --storage-host-name=192.168.10.104
    
    OUTPUT:
    Node information:
    Id: 095d5f26b56dc6c64564a9bc17338cbf
    State: online
    Cluster Id: 597fceb5d6c876b899e48f599b988f54
    Zone: 1
    Management Hostname node4.example.com
    Storage Hostname 192.168.10.104
  5. 使用 Heketi CLI 在集群中添加设备。有关添加设备的详情请参考 第 1.1.1 节 “添加新设备”

    注意

    当节点添加到使用 heketi 的 gluster 受信存储池时,现有的端点不会自动更新。
    要更新端点,请执行以下命令:

    # heketi-cli volume endpoint patch <volume-id>
    # oc patch ep <heketi-db-endpoint-name> -p <changes>

通过添加新的红帽 Gluster 存储群集,可以增加存储容量。新集群的节点必须作为 OCP 节点(聚合模式)或 RHGS 节点(独立模式)准备。要在现有 Red Hat Openshift Container Storage 安装中添加新集群,请执行以下命令:

  1. 执行以下命令,验证 Red Hat Openshift Container Storage 是否已部署并以预期身份工作。

    # oc get ds

    例如:

    # oc get ds
    NAME                DESIRED   CURRENT   READY     UP-TO-DATE   AVAILABLE   NODE SELECTOR            AGE
    glusterfs-storage   3         3         3         3            3           glusterfs=storage-host   1d
    注意

    第 1.1.2 节 “添加新节点” 部分执行步骤 1 和步骤 2 来添加新主机。对要添加的所有节点重复上述步骤。

  2. 通过执行以下命令验证 Red Hat Gluster Storage pod 是否在运行:

    # oc get pods
  3. 为新添加的每个节点添加标签,在其中为新集群添加 Red Hat Gluster Storage pod,以执行以下命令:

    # oc label node <NODE_NAME> glusterfs=<node_label>

    其中,

    • NODE_NAME: 是新创建的节点的名称
    • node_label:现有 daemonset 中使用的名称。

    例如:

    # oc label node 192.168.90.3 glusterfs=storage-host
    node "192.168.90.3" labeled

    观察在这些新节点上生成的其他 Gluster 存储 pod

    # oc get pods

    例如:

    # oc get pods
    NAME              READY     STATUS    RESTARTS   AGE
    glusterfs-356cf   1/1       Running   0          30d
    glusterfs-fh4gm   1/1       Running   0          30d
    glusterfs-hg4tk   1/1       Running   0          30d
    glusterfs-v759z   0/1       Running   0          1m
    glusterfs-rgs3k   0/1       Running   0          1m
    glusterfs-gtq9f   0/1       Running   0          1m

    您应看到其他 Gluster 存储 pod,在这个示例中,6 gluster 容器集而不是像以前一样 3。它们需要 1-2 分钟才能正常运行。(例如,glusterfs-v759z、glusterfs-rgs3k 和 glusterfs-gtq9f 0/1 不健康)。

  4. 通过执行以下命令验证 Red Hat Gluster Storage pod 是否在运行:

    # oc get ds

    例如:

    # oc get ds
    NAME                DESIRED   CURRENT   READY     UP-TO-DATE   AVAILABLE   NODE SELECTOR            AGE
    glusterfs-storage   6         6         6         6            6           glusterfs=storage-host   2h
  5. 使用以下命令在 Heketi 中创建新集群:

    # heketi-cli cluster create
  6. 如添加新设备和添加新节点 中所述,在新创建的集群中添加节点和设备。??? ???
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部