中文文档

Object Healing

什么是治愈?

愈合是 MinIO 恢复已损坏、损坏或部分丢失的对象的能力。 损失可能来自多种类型的损坏或丢失,例如但不限于:

  • 硬盘级错误或故障

  • 操作系统或文件系统错误或故障

  • bit rot

修复和擦除编码

MinIO 恢复受损对象的能力与以下几点直接相关:

  • 存在对象的 erasure set 中的硬盘总数

  • 有完整部分对象的可用驱动器数量

  • parity setting 为清除集合

    Parity 是指 MinIO 在写入对象时创建的专用恢复分片的数量。. 例如,擦除集可能共有八个驱动器,在写入时使用三个驱动器进行奇偶校验. 在这种情况下, MinIO 将一个对象分割成 5 个数据分片,并创建 3 个奇偶校验分片. MinIO 将这八个碎片分配给擦除集中的硬盘. 没有一个硬盘只包含奇偶校验碎片或数据碎片. 相反, MinIO 以随机方式为每个对象写入分片,将读取平均分配到各个驱动器上.

    当 MinIO 需要提供对象时,它会查找对象的数据分片. 如果任何数据碎片丢失或损坏, MinIO 使用一个或多个奇偶校验碎片来还原对象. 寻找奇偶校验碎片时, 如果任何奇偶校验碎片丢失或损坏, MinIO 也会恢复这些分片,前提是有足够的其他分片为对象提供服务. 在这种情况下,数据碎片中最多有三个部分可能丢失或损坏,而 MinIO 仍能成功恢复并提供对象服务.

    具有对象完整数据或奇偶校验碎片的可用驱动器数量必须达到或超过擦除集中用于数据碎片的驱动器数量. 在上述情况下,必须有五个硬盘在线且有完整的碎片,MinIO 才能成功为对象提供服务.

MinIO 何时修复对象?

MinIO 拥有强大的对象修复系统.

GET 请求期间进行修复

每次使用 GETHEAD 操作请求对象时,MinIO 都会自动检查对象数据碎片的一致性。. 对于版本控制的存储桶,MinIO 还会在 PUT 操作期间检查一致性.

如果所有数据分片都完好无损,MinIO 将从数据分片中为对象提供服务,而不检查相应的奇偶校验分片.

如果对象有丢失或损坏的数据碎片, MinIO 在将对象作为操作的一部分提供之前,会使用可用的奇偶校验碎片来修复对象. 每个丢失或损坏的数据分片 must 有一个完好的奇偶校验分片可用, 否则将无法恢复. 如果任何奇偶校验碎片丢失或损坏, MinIO 恢复奇偶校验分片, 前提是有足够的其他奇偶校验分区为对象提供服务.

使用物体扫描仪进行修复

MinIO 使用一个 object scanner 执行一系列与对象相关的任务. 其中一项任务是检查对象的完整性,以及, 如果发现损坏或损坏,则对其进行修复.

每次扫描时, MinIO 使用对象名称的哈希值,从每 1024 个对象中选择一个进行检查.

如果发现任何物品丢失了碎片, MinIO 利用可用碎片修复对象. 默认情况下, MinIO not 检查 bit rot 使用扫描仪的损坏. 执行这种操作的成本可能很高,而且在多个磁盘上发生位腐烂的风险很低.

通过手动请求进行修复

管理员可以使用 mc admin heal 启动全面系统修复. 该程序非常耗费资源,通常不需要.

在部署上手动启动修复过程之前,请咨询 MinIO 工程师.

修复指标

MinIO 提供了几种 healing metrics 监控部署上的修复进程状态.

参考 指标和警报 有关可用端点和配置的更多信息.

Join Slack 商业支持购买咨询