1.3. 替换集群资源
heketi 支持替换设备和节点。在以下部分中提供了替换设备和节点的步骤。
1.3.1. 替换设备 复制链接链接已复制到粘贴板!
heketi 不允许使用另一个设备进行一对一替换。但是,如果设备失败,请按照以下示例了解替换失败设备所需的操作顺序。
使用以下命令查找失败的设备:
# heketi-cli topology info… … ... Nodes: Node Id: 8faade64a9c8669de204b66bc083b10d ... ... … Id:a811261864ee190941b17c72809a5001 Name:/dev/vdc State:online Size (GiB):499 Used (GiB):281 Free (GiB):218 Bricks: Id:34c14120bef5621f287951bcdfa774fc Size (GiB):280 Path: /var/lib/heketi/mounts/vg_a811261864ee190941b17c72809a5001/brick_34c14120bef5621f287951bcdfa774fc/brick … … ...以下示例说明了替换故障设备所需的操作序列。这个示例使用设备 ID
a811261864ee190941b17c72809a5001,它属于 ID8faade64a9c8669de204b66bc083b10das。在与被替换设备相同的节点添加新设备。
# heketi-cli device add --name /dev/vdd --node 8faade64a9c8669de204b66bc083b10d Device added successfully禁用失败的设备。
# heketi-cli device disable a811261864ee190941b17c72809a5001 Device a811261864ee190941b17c72809a5001 is now offline删除失败的设备。
# heketi-cli device remove a811261864ee190941b17c72809a5001 Device a811261864ee190941b17c72809a5001 is now removed在这个阶段,brick 从失败的设备迁移。他基于 brick 分配算法选择合适的设备。因此,可能所有 brick 不能迁移到新添加的设备。
删除失败的设备。
使用以下命令删除该设备:
# heketi-cli device delete a811261864ee190941b17c72809a5001 Device a811261864ee190941b17c72809a5001 deleted注意-
您可以使用
--force-forget选项以及Heketi-cli 设备删除 <device-ID>命令来删除失败的设备。但是,建议仅在 device delete 命令失败时使用这个选项。 -
您必须确定该设备已被移除,或者系统在 heketi 之外的干净使用系统命令,然后仅使用
--force-forget选项。
-
您可以使用
必须禁用
performance.read-ahead选项,以允许修复完成。# gluster volume set <VOLUME> performance.read-ahead off注意将
performance.read-ahead选项设置为 OFF,直到完成对卷的修复任务为止,一旦修复完成,则将其设置回为 ON 状态的默认状态。- 如果超过 100,000 个条目需要修复,则必须启动额外的 shd。有关如何启动其他自我修复守护进程的详情,请参考 https://access.redhat.com/solutions/3794011
在另一个设备上重复上述步骤序列之前,您必须等待自我修复操作完成。当条目值的数目返回 0 时,您可以验证自我修复操作是否已完成。
# oc rsh <any_gluster_pod_name> for each in $(gluster volume list) ; do gluster vol heal $each info | grep "Number of entries:" ; done Number of entries: 0 Number of entries: 0 Number of entries: 0