驱动器故障恢复
MinIO 支持将故障驱动器热替换为新的健康驱动器。 MinIO 能够检测并修复这些驱动器,无需任何节点或部署级别的重启。MinIO 修复机制仅发生在被替换的驱动器上,在大多数情况下对部署性能的影响极小或可忽略不计。
MinIO healing 确保恢复到驱动器上的所有数据的一致性和正确性。
驱动器独占访问
MinIO需要 独家对象存储所提供的驱动器或卷的访问权限。 任何其他进程、软件、脚本或人员均不得执行任何直接对提供给 MinIO 的驱动器或卷,或 MinIO 置于其上的对象或文件执行操作。
除非得到 MinIO 工程团队指示,否则不得使用脚本或工具直接修改、删除或移动所提供驱动器上的任何数据分片、校验分片或元数据文件,包括在不同驱动器或节点间的转移操作。 此类操作极有可能导致大范围损坏和数据丢失,超出 MinIO 的自我修复能力范围。
以下步骤提供了更详细的驱动器更换流程说明。
这些步骤假设 MinIO 部署中每个节点使用以下方式管理驱动器:/etc/fstab按照每驱动器的标签,根据已记录的先决条件.
1) 卸载故障驱动器
使用以下命令卸载每个故障驱动器umount例如,以下
命令卸载位于/dev/sdb:
umount /dev/sdb
2) 更换故障驱动器
从节点硬件中移除故障驱动器,并用已知良好的驱动器替换。替换驱动器必须满足以下要求:
XFS 格式化空旷而空荡。
相同驱动器类型(例如 HDD、SSD、NVMe)。
同等或更优的性能。
同等或更大容量。
使用容量更大的替换驱动器不会增加集群的总存储容量。MinIO 使用最小驱动器的容量作为所有驱动器的上限服务器池.
以下命令将驱动器格式化为 XFS 文件系统,并为其分配与故障驱动器匹配的标签。
mkfs.xfs /dev/sdb -L DRIVE1
MinIO强烈建议使用基于标签的挂载方式,确保驱动器顺序在系统重启后保持一致。
3) 审查和更新fstab
Review the/etc/fstab文件并根据需要进行更新,使得失败驱动器的条目指向新格式化的替换驱动器。
如果使用基于标签的驱动器分配,请确保每个标签指向正确的新格式化驱动器。
如果使用基于UUID的驱动器分配,请根据新格式化的驱动器更新每个挂载点的UUID。您可以使用
lsblk查看驱动器 UUID。
例如,考虑
$ cat /etc/fstab
# <file system> <mount point> <type> <options> <dump> <pass>
LABEL=DRIVE1 /mnt/drive1 xfs defaults,noatime 0 2
LABEL=DRIVE2 /mnt/drive2 xfs defaults,noatime 0 2
LABEL=DRIVE3 /mnt/drive3 xfs defaults,noatime 0 2
LABEL=DRIVE4 /mnt/drive4 xfs defaults,noatime 0 2
Note
依赖挂载外部存储的云环境实例,如果遇到一个或多个远程文件挂载返回错误或失败,可能会遭遇启动故障。
例如,挂载了持久性EBS卷的AWS ECS实例在使用标准配置时可能无法正常启动。/etc/fstab如果一个或多个EBS卷无法挂载时的配置
您可以设置nofail在启动时静默错误报告并允许实例在一个或多个挂载问题的情况下启动的选项。
在具有本地连接磁盘的系统上不应使用此选项,因为静默驱动器错误会阻止 MinIO 和操作系统以正常方式响应这些错误。
根据之前的示例命令,无需进行任何更改fstab由于更换驱动器在/mnt/drive1使用相同的
标签DRIVE1作为故障驱动器。
4) 重新安装更换的硬盘
使用mount -a要重新挂载在此过程开始时卸载的驱动器:
mount -a
该命令应导致所有被替换驱动器的重新挂载。
5) 监控 MinIO 的驱动器检测与修复状态
使用mc admin logs命令or journalctl -u minioforsystemd托管安装应在重新挂载驱动器后监控服务器日志输出。输出应包含标识每个已格式化和空驱动器的消息。
使用mc admin heal监控整体愈合关于部署状态。MinIO 会主动修复被替换的驱动器,确保从降级状态快速恢复。
6) 后续步骤
监控集群中是否出现进一步的驱动器故障。某些批次的驱动器可能会在相近时间内接连发生故障。遇到驱动器故障率高于预期的部署环境,应安排专项维护计划来更换已知的问题批次。建议使用MinIO SUBNET与 MinIO 工程团队协调,获取有关此类操作的指导。