对象修复
什么是疗愈?
Healing 是 MinIO 恢复已损坏、破坏或部分丢失的对象的能力。 这些丢失可能来自多种类型的损坏或丢失,包括但不限于:
驱动器级错误或故障
操作系统或文件系统错误或故障
Healing and Erasure Coding
MinIO 恢复受损对象的能力直接与以下因素相关:
驱动器总数擦除集对象存在的位置
具有对象完整部分的可用驱动器数量
奇偶校验设置对于擦除集
Parity指MinIO在写入对象时创建的专用恢复分片数量。 例如,一个纠删码集合可能共有八个驱动器,并在写入时使用三个驱动器作为奇偶校验。 在此场景中,MinIO将对象分割为5个数据分片并创建3个奇偶校验分片。 MinIO将这八个分片分布到纠删码集合中的各个驱动器上。 没有任何一个驱动器仅包含奇偶校验分片或仅包含数据分片。 相反,MinIO以随机方式写入每个对象的分片,以便在驱动器间均匀分布读取操作。
当MinIO需要提供对象时,它会查找该对象的数据分片。 如果任何数据分片丢失或损坏,MinIO会使用一个或多个校验分片来恢复该对象。 在查找校验分片时,如果任何校验分片丢失或损坏,只要存在足够的其他分片来提供对象,MinIO也会恢复这些校验分片。 在此场景下,最多可以丢失或损坏三个数据分片,MinIO仍能成功恢复并提供该对象。
对象中具有完整数据或奇偶校验分片的驱动器数量必须达到或超过纠删集中用于数据分片的驱动器数量。 在上述场景中,必须有五个包含完整分片的驱动器在线且可用,MinIO才能成功提供该对象。
MinIO 何时修复对象?
MinIO 拥有一个强大的对象修复系统。
治疗期间GET请求
MinIO 会在每次请求对象时自动检查对象数据分片的一致性GET or HEAD操作。
对于版本化存储桶,MinIO 还会在操作期间检查一致性。PUT操作。
如果所有数据分片都完好无损,MinIO 会直接从数据分片提供对象,而无需检查相应的校验分片。
如果对象有缺失或损坏的数据分片,MinIO会在操作过程中使用可用的校验分片来修复该对象,然后再提供它。必须对于每个丢失或损坏的数据分片,必须有一个完整的校验分片可用,否则对象将无法恢复。 如果任何校验分片丢失或损坏,只要存在足够多的其他校验分片来服务该对象,MinIO 就会恢复该校验分片。
使用对象扫描仪进行修复
MinIO 使用一种对象扫描器执行与对象相关的多项任务。 其中一项任务是检查对象的完整性,如果发现损坏或损坏,则修复它们。
在每次扫描过程中,MinIO会使用对象名称的哈希值,从每1024个对象中选择一个进行检查。
如果发现任何对象丢失了分片,MinIO 会从可用分片中修复该对象。 默认情况下,MinIO 会不检查比特衰减使用扫描程序检测损坏。 这可能是一项昂贵的操作,而且多块磁盘发生位衰减的风险很低。
通过手动请求进行修复
管理员可以使用mc admin heal启动全系统修复。
该过程非常消耗资源,通常不需要执行。
在手动启动部署的修复过程之前,请先咨询 MinIO 工程师。
Healing metrics
MinIO 提供了多种healing metrics监控部署上愈合过程的状态。
参考指标和告警有关可用端点和配置的更多信息。