【MinIO理论】MinIO Erasure Code Quickstart Guide

什么是擦除码?

       擦除码是一种重建丢失数据或损坏数据的数学算法。MinIO使用Reed-Solomon码将对象分成可变数据和奇偶校验块。例如,在12个驱动器的设置中,一个对象会分片成一定数量的数据块和奇偶校验块,并分布存储到所有驱动器上,范围从6个数据块和6个奇偶校验块到10个数据块和2个奇偶校验块。
       默认情况下,MinIO按照N/2个数据块和N/2个奇偶校验块来对对象进行分片,其中N为驱动器数量。不过,可以使用存储类来自定义配置。我们建议使用N/2个数据块和奇偶校验块,因为它可以确保对驱动器故障提供最佳保护。
       在上面12驱动器的示例中,MinIO服务器以默认配置运行时,您可以丢失任意六个驱动器,并且仍然可以从其余驱动器可靠地重建数据。

擦除码为什么是有用的?

       与RAID或副本方式不同,擦除码可保护数据免受多个驱动器故障的影响。例如,RAID6可以防止两个驱动器发生故障,而在MinIO擦除码中,您可以丢失多达一半的驱动器,而且数据仍然是安全的。此外,MinIO的擦除码位于对象级别,可以一次修复一个对象。对于RAID,只能在卷级别进行修复,这会导致较高的停机时间。由于MinIO对每个对象进行单独编码,因此可以逐步修复对象。存储服务器一旦部署后,在服务器的生命周期内不应该更换驱动器或进行修复。MinIO的擦除码后端是为提高操作效率而设计的,并充分利用了硬件加速的优势。

 什么是位衰减?

位衰减 ,也称为数据衰减或静默数据损坏,是当今磁盘驱动器面临的一个数据丢失问题。驱动器上的数据可能会悄无声息地损坏,而不会发出错误信号,这使得位损坏比永久性硬盘驱动器故障更危险。MinIO的擦除码后端使用高效的HighwayHash校验和来防止位衰减。

磁盘驱动器如何使用擦除码?

       MinIO中的擦除编码集可以包含4到16个驱动器。因此,您提供的驱动器数量必须是其中一个数字的倍数。每个对象都被写入一个擦除编码集。

       在给定数量的磁盘驱动器下Minio使用尽可能大的EC集规模。例如,18个驱动器(超过4~16,需分为两组)配置为2组9个驱动器,24个驱动器配置为2组12个驱动器。MinIO以standalone erasure coded方式运行时,这种情况是真实的。然而,在分布式设置中,选择了基于节点(亲和性)的擦除条带大小。

所有驱动器的大小应大致相同。

翻译自:https://github.com/minio/minio/blob/master/docs/erasure/README.md

重点:

  1. 官方建议:建议使用N/2个数据块和奇偶校验块,因为它可以确保对驱动器故障提供最佳保护。
  2. MinIO中的擦除编码集可以包含4到16个驱动器。在给定数量的磁盘驱动器下Minio使用尽可能大的EC集规模。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值