第 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,使得它能够选择在 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
扩展 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'。
配置防火墙规则:
注意若要添加节点成功,请确保打开了用于 glusterd 通信的端口。有关端口的详情请参考 https://access.redhat.com/documentation/en-us/red_hat_gluster_storage/3.5/html/installation_guide/port_information
在新添加的 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重新载入/重启 iptables:
# systemctl restart iptables
执行以下步骤将标签添加到要部署 RHGS Container 的节点:
执行以下命令,验证 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为新添加的每个节点添加标签,为该新集群添加了 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通过执行以下命令验证 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 不健康状态)。
验证 Red Hat Gluster Storage pod 是否正在运行
# oc get pods -o wide -l glusterfs=storage-pod
使用 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使用 Heketi CLI 在集群中添加设备。有关添加设备的详情请参考 第 1.1.1 节 “添加新设备”。
注意当节点添加到使用 heketi 的 gluster 受信存储池时,现有的端点不会自动更新。
要更新端点,请执行以下命令:# heketi-cli volume endpoint patch <volume-id># oc patch ep <heketi-db-endpoint-name> -p <changes>
1.1.3. 将新集群添加到现有 Red Hat Openshift Container Storage 安装中 复制链接链接已复制到粘贴板!
通过添加新的红帽 Gluster 存储群集,可以增加存储容量。新集群的节点必须作为 OCP 节点(聚合模式)或 RHGS 节点(独立模式)准备。要在现有 Red Hat Openshift Container Storage 安装中添加新集群,请执行以下命令:
执行以下命令,验证 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 来添加新主机。对要添加的所有节点重复上述步骤。
通过执行以下命令验证 Red Hat Gluster Storage pod 是否在运行:
# oc get pods为新添加的每个节点添加标签,在其中为新集群添加 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 不健康)。
通过执行以下命令验证 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使用以下命令在 Heketi 中创建新集群:
# heketi-cli cluster create- 如添加新设备和添加新节点 中所述,在新创建的集群中添加节点和设备。??? ???