文档

对象修复

什么是修复?

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

  • 驱动器级错误或故障

  • OS 或文件系统错误或故障

  • 比特腐烂

修复和擦除编码

MinIO 恢复损坏对象的能力与以下因素直接相关

  • 对象所在的 擦除集 中的驱动器总数

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

  • 奇偶校验设置 用于擦除集

    奇偶校验 指的是 MinIO 在写入对象时创建的专用恢复分片数量。例如,擦除集可能总共包含 8 个驱动器,并在写入奇偶校验时使用 3 个驱动器。在这种情况下,MinIO 将对象拆分为 5 个数据分片并创建 3 个奇偶校验分片。MinIO 将这 8 个分片分布在擦除集中的驱动器中。没有一个驱动器只包含奇偶校验分片或只包含数据分片。相反,MinIO 以随机方式写入每个对象的碎片,以均匀地将读操作分布在驱动器之间。

    当 MinIO 需要提供对象时,它会查找对象的 data 分片。如果任何数据分片丢失或损坏,MinIO 将使用一个或多个奇偶校验分片来恢复对象。在查找奇偶校验分片时,如果任何奇偶校验分片丢失或损坏,MinIO 也会恢复这些分片,前提是还有足够的其他分片可以提供服务对象。对于这种情况,最多可以丢失或损坏 3 个数据分片部分,MinIO 仍然可以成功恢复和提供对象。

    具有完整数据或奇偶校验分片的可用驱动器数量必须满足或超过擦除集中用于数据分片的驱动器数量。在上面的场景中,必须有 5 个具有完整分片的驱动器联机并可用,MinIO 才能成功提供对象。

MinIO 何时修复对象?

MinIO 拥有一个强大的对象修复系统。

GET 请求期间修复

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

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

如果对象缺少或损坏数据分片,MinIO 会使用可用的奇偶校验分片来修复对象,然后再将其作为操作的一部分提供服务。对于每个丢失或损坏的数据分片,**必须**有一个完整的奇偶校验分片可用,否则无法恢复该对象。如果任何奇偶校验分片丢失或损坏,MinIO 会恢复奇偶校验分片,前提是有足够的其他奇偶校验分片来提供服务。

使用对象扫描程序进行修复

MinIO 使用 对象扫描程序 来执行与对象相关的许多任务。其中一项任务是检查对象的完整性,如果发现损坏或损坏,则修复它们。

在每次扫描过程中,MinIO 使用对象名称的哈希值从每 1,024 个对象中选择一个进行检查。

如果发现任何对象丢失分片,MinIO 会从可用的分片中修复对象。默认情况下,MinIO **不会** 使用扫描程序检查 比特腐烂 损坏。这可能是一项昂贵的操作,并且多个磁盘上发生比特腐烂的风险很低。

通过手动请求进行修复

管理员可以使用 mc admin heal 来启动整个系统修复。该过程非常消耗资源,通常不需要。

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

修复指标

MinIO 提供多个 修复指标 来监控部署上修复过程的状态。

有关可用端点和配置的更多信息,请参阅 指标和警报

修复输出颜色键

早期的 MinIO 版本生成一个带有绿色、黄色、红色和灰色颜色的表格,以指示单个对象的修复状态。这些颜色已被弃用,取而代之的是更详细的 集群级别可用的修复指标

下表描述了现已弃用的状态颜色的含义。

绿色

健康,对象具有所有数据和奇偶校验分片,这些分片按要求提供服务

黄色

修复中,对象仍在修复过程中,并且有足够的数据或奇偶校验分片可用于完成修复

红色

不健康,对象丢失了一个或多个分片,需要修复

灰色

无法恢复,对象丢失了太多数据和/或奇偶校验分片,无法修复或恢复