增加 GlusterFS 集群的存储容量
增加 GlusterFS 集群的存储容量。
您可以通过在现有存储节点上添加设备或向 GlusterFS 集群中添加存储节点来增加 GlusterFS 集群的存储容量。
在开始之前,先设置 kubectl CLI。 请参阅从 kubectl CLI 访问集群。
注:每次在 kubectl 命令中使用 -- heketi-cli 时,都必须提供 --useradmin 和 --secret <admin_password> 参数以用于 Heketi pod 认证。<admin_password> 是在 GlusterFS 安装期间用于创建 Heketi 认证密钥的密码。
在 GlusterFS 存储节点上添加设备
您可以在 GlusterFS 集群中存在的存储节点上添加设备。 设备必须符合 GlusterFS 设备需求。 请参阅硬件需求。
添加设备之后,要使其成为 Heketi 拓扑的一部分,首先检索所需信息,然后运行更新拓扑的命令。
检索所需信息
需要在其上添加设备的节点的标识。 要获取节点标识,请运行以下命令:
-
获取 Heketi pod 名称。
kubectl -n kube-system get pod -l glusterfs=heketi-pod以下是样本输出:
NAME READY STATUS RESTARTS AGE heketi-7b69bb4d48-g4kx9 1/1 Running 0 1h -
获取集群标识。
kubectl -n kube-system exec <Heketi pod name> -- heketi-cli --user admin --secret <admin_password> cluster list以下是样本命令和输出:
kubectl -n kube-system exec heketi-7b69bb4d48-g4kx9 -- heketi-cli --user admin --secret admin cluster list Clusters: Id:2a47436e012604919dae5fbb4fc3899c [file][block] # -
获取节点标识:
kubectl -n kube-system exec <Heketi pod name> -- heketi-cli --user admin --secret <admin_password> cluster info <cluster ID>此命令会返回节点的列表。
以下是样本命令和输出:
kubectl -n kube-system exec heketi-7b69bb4d48-g4kx9 -- heketi-cli --user admin --secret admin cluster info 2a47436e012604919dae5fbb4fc3899c Cluster id: 2a47436e012604919dae5fbb4fc3899c Nodes: 6c4c66317f5650e7b61057fede8dbe25 8164c019b2e7c67b224709a97d05d0e9 de3d0a9a21868a09f92fb50e166cceda Volumes: 896044a59b18316790ff5554455a7a9e b971b2bb34703143e094f9b5241e4ddf f3f93e7eddd48e95779361ff35bd2222 Block: true File: true -
标识具有新设备的节点。 可以使用节点 IP 地址来进行标识。 要检索节点 IP 地址,请对所有节点运行以下命令。 将具有新设备的存储节点的节点标识记录下来。
kubectl -n kube-system exec <Heketi pod name> -- heketi-cli --user admin --secret <admin_password> node info <node ID>注:获取新设备的符号链接。 有关获取符号链接的更多信息,请参阅符号链接。
以下是样本命令和输出:
kubectl -n kube-system exec heketi-7b69bb4d48-g4kx9 -- heketi-cli --user admin --secret admin node info de3d0a9a21868a09f92fb50e166cceda Node Id: de3d0a9a21868a09f92fb50e166cceda State: online Cluster Id: 2a47436e012604919dae5fbb4fc3899c Zone: 1 Management Hostname: 192.168.0.96 Storage Hostname: 192.168.0.96 Devices: Id:4c6ba3295f71a78515d6bd5d5aad58ae Name:/dev/disk/by-path/pci-0000_00_10_0 State:online Size (GiB):24 Used (GiB):2 Free (GiB):22 #
更新拓扑
使用有关新设备的信息更新 Heketi 拓扑。 运行以下命令:
kubectl -n kube-system exec <Heketi pod name> -- heketi-cli --user admin --secret <admin_password> device add --name=<device symlink> --node=<Node ID>
以下是样本命令和输出:
kubectl -n kube-system exec heketi-7b69bb4d48-g4kx9 -- heketi-cli --user admin --secret admin device add --name=/dev/disk/by-path/pci-0000_00_11_0 --node=de3d0a9a21868a09f92fb50e166cceda
Device added successfully
#
向 GlusterFS 集群中添加存储节点
您可以向 GlusterFS 集群中添加存储节点。 新的存储节点上的设备必须满足 GlusterFS 设备需求。 请参阅硬件需求。
在继续之前,先完成下列步骤:
- 向
config.yaml文件中添加新节点,此文件位于/<installation_directory>/cluster文件夹内。 请参阅在 IBM Cloud Private 安装期间配置 GlusterFS。 - 向随 GlusterFS 存储节点创建的定制主机组添加新节点。 有关更多信息,请参阅添加主机组。
使用 kubectl CLI 完成以下步骤:
-
获取 GlusterFS pod 名称。
kubectl -n kube-system get pod -owide -l glusterfs=pod以下是样本命令和输出:
kubectl -n kube-system get pod -owide -l glusterfs=pod NAME READY STATUS RESTARTS AGE IP NODE glusterfs-4srll 1/1 Running 1 3h 192.168.0.96 192.168.0.96 glusterfs-5zp55 0/1 ContainerCreating 0 7s 192.168.0.139 192.168.0.139 glusterfs-j2t6d 1/1 Running 0 3h 192.168.0.56 192.168.0.56 glusterfs-q8mcm 1/1 Running 0 3h 192.168.0.184 192.168.0.184 # -
从任意现有的 GlusterFS pod 运行同级探测命令。
kubectl -n kube-system exec <GlusterFS pod name> -- gluster peer probe <IP address or host name of the new node>以下是样本命令和输出:
kubectl -n kube-system exec glusterfs-4srll -- gluster peer probe 192.168.0.139 peer probe: success. # -
获取 Heketi pod 名称。
kubectl -n kube-system get pod -l glusterfs=heketi-pod以下是样本输出:
NAME READY STATUS RESTARTS AGE heketi-7b69bb4d48-g4kx9 1/1 Running 0 1h -
获取集群标识。
kubectl -n kube-system exec <Heketi pod name> -- heketi-cli --user admin --secret <admin_password> cluster list以下是样本命令和输出:
kubectl -n kube-system exec heketi-7b69bb4d48-g4kx9 -- heketi-cli --user admin --secret admin cluster list Clusters: Id:2a47436e012604919dae5fbb4fc3899c [file][block] # -
向 GlusterFS 集群中添加新节点。
kubectl -n kube-system exec <Heketi pod name> -- heketi-cli --user admin --secret <admin_password> node add --zone=1 --cluster=<cluster ID> --management-host-name=<IP address or host name of the new node> --storage-host-name=<IP address of the new node>以下是样本命令和输出:
kubectl -n kube-system exec heketi-7b69bb4d48-g4kx9 -- heketi-cli --user admin --secret admin node add --zone=1 --cluster=2a47436e012604919dae5fbb4fc3899c --management-host-name=192.168.0.139 --storage-host-name=192.168.0.139 Node information: Id: 5df753379b9629eda0c5eb71687ee2ea State: online Cluster Id: 2a47436e012604919dae5fbb4fc3899c Zone: 1 Management Hostname 192.168.0.139 Storage Hostname 192.168.0.139 # -
使用新节点的设备信息更新拓扑。
kubectl -n kube-system exec <Heketi pod name> -- heketi-cli --user admin --secret <admin_password> device add --name=<device symlink> --node=<Node ID>注:添加设备的 symlink 作为名称。 有关获取符号链接的更多信息,请参阅符号链接。
以下是样本命令和输出:
kubectl -n kube-system exec heketi-7b69bb4d48-g4kx9 -- heketi-cli --user admin --secret admin device add --name=/dev/disk/by-path/pci-0000_00_10_0 --node=5df753379b9629eda0c5eb71687ee2ea Device added successfully #