中文文档

硬盘故障恢复

MinIO支持使用新的健康驱动器替换失败的驱动器进行热交换。 MinIO可以检测并修复这些驱动器,无需重启任何节点或部署级别。 MinIO 修复 仅发生在更换的驱动器上,并且在大多数情况下对部署性能的影响最小或可以忽略不计。

MinIO 修复确保恢复到驱动器上的所有数据的完整性和正确性。

Exclusive access to drives

MinIO 要求 专有 对提供给对象存储的驱动器或卷的访问。 其他任何进程、软件、脚本或人员都不得直接对提供给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

检查 /etc/fstab 文件,并根据需要更新, 以便故障驱动器的条目指向新格式化的替换驱动器。

  • I如果使用基于标签的驱动器分配, 请确保每个标签都指向正确的新格式化驱动器。

  • 如果使用基于UUID的驱动器分配,请根据新格式化的驱动器更新每个点的UUID。 您可以使用 lsblk 命令查看驱动器UUID。

例如, consider

$ 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

备注

依赖挂载外部存储的云环境实例可能会遇到启动失败,如果其中一个或多个远程文件系统挂载返回错误或失败。 例如,如果一个或多个EBS卷挂载失败,那么即使使用了标准的 /etc/fstab 配置,带有挂载持久性EBS卷的AWS ECS实例也可能无法启动。

您可以通过设置 nofail 选项来在启动时静默错误报告,并允许实例在有一个或多个挂载问题的情况下启动。

您不应该在具有本地连接磁盘的系统上使用这个选项,因为静默驱动器错误会阻止MinIO和操作系统以正常方式对这些错误做出响应。

由于替换驱动器在 /mnt/drive1 上使用了与故障驱动器相同的 标签 DRIVE1 ,因此不需要对 fstab 进行任何更改。

4) 重新挂载替换后的驱动器

使用 mount -a 命令来重新挂载在本次操作开始时卸载的 驱动器:

mount -a

该命令应导致所有替换后的驱动器被重新挂载。

5) 监控 MinIO 的驱动器检测和修复状态

在重新挂载驱动器后,使用 mc admin logs 命令 或者 对于使用 systemd 管理的安装,使用 journalctl -u minio 命令来监控服务器日志输出。 输出应包括标识每个已格式化和 清空驱动器的消息。

使用 mc admin heal 命令来监控部署上的整体 修复 状态。 MinIO会积极修复替换的驱动器, 以确保从降级状态快速恢复。

6) 下一步

监控集群是否有进一步的驱动器故障。 有些驱动器批次可能会在彼此接近的时间失败。 遇到高于预期驱动器故障率的部署应安排专门维护,以更换已知的坏批次驱动器。 考虑使用 MinIO SUBNET 来与MinIO工程团队协调,获取此类操作的指导。

Join Slack 商业支持购买咨询