第二章 九析带你轻松完爆 MinIO - MinIO 纠删码(erasure code) 模式

网友投稿 1158 2022-10-28

第二章 九析带你轻松完爆 MinIO - MinIO 纠删码(erasure code) 模式

目录

1 前言

2 邀约

3 简介

4 纠删码

5 纠删码为什么有效

6 单机纠删码模式部署

7 纠删码机制验证

1 前言

如果你对博客有任何疑问,请告诉我。

2 邀约

你可以从 b 站搜索 “九析”,获取免费的、更生动的视频资料:

3 简介

MinIO 使用纠删码和校验和等特性保护数据免受硬件故障和静默数据损坏。使用最高级别的冗余,使用者可最多丢失多达一半(N/2)的驱动器,仍可以自动恢复数据。

4 纠删码

纠删码是一种用来重建丢失或损坏数据的数学算法。MinIO 使用 Reed-Solomon 码将需要存储的对象切分为可变数据块和奇偶校验块。例如,在由 12 个驱动器构成的存储架构中,对象分片范围可以是 6 个数据块、6 个奇偶校验块到 10 个数据块、2 个奇偶校验块。

Reed Solomon(里德-所罗门码):是一种纠删码算法,利用范特蒙矩阵或者柯西矩阵的特性来实现纠错码的功能。

默认情况下,MinIO 会在 N/2 个数据和 N/2 个奇偶校验驱动器上将对象进行碎片化。不过,可以使用存储类进行自定义配置。MinIO 官方推荐 N/2 的数据块和奇偶校验块,因为可以确保在故障时对磁盘进行最好保护。

如果 MinIO 使用上面介绍的 12 个驱动器所构成的存储架构,并且运行默认配置,那么你在最多丢失 6 (12/2)个以内的驱动器的情况下,依旧可以从剩余的驱动器中自动重建数据。

5 纠删码为什么有效

与 RAID 或复制不同,纠删码可以保护数据不受多驱动器故障的影响。RAID6 仅可以保证在两个以内驱动器发生故障时数据可以得到保护,而 MinIO 纠删码却可以在丢失多达一半驱动器情况下,仍然保证数据安全。此外,MinIO 的纠删码在对象级别,可以一次修复一个对象。对于 RAID,修复只能在卷级别完成,这意味着高停机时间。因为 MinIO 单独对每一个对象进行编码,故它可以逐步修复对象。部署后的 MinIO 服务器在整个生命周期内都不需要更换驱动器或进行修复。MinIO 纠删码旨在提高操作效率,并在任何时候都可以充分利用硬件加速的优势。

6 单机纠删码模式部署

所谓 standalone non-erasure code mode 是指 minio server 启动时仅传入一个本地磁盘目录的参数,执行命令如下:

minio server /jiuxi

在这样的启动模式下,对于每一个要存储的对象,minio 直接在 jiuxi 目录下存储这份数据,并不会建立副本,更不会启用纠删码机制。因此,这种情况无论是针对 MinIO 服务器还是磁盘都属于“单点”,没有任何高可用保障措施,一旦磁盘损坏就意味着整个数据丢失。

所谓 standalone erasure code mode 是指 minio server 启动时传入多个本地磁盘目录作为参数。一旦遇到多个磁盘参数,minio server 将会自动启动 erasure code mode。当然磁盘个数并非任意,而是有要求的,如不满足要求,MinIO 实例启动将会失败,如下图所示:

erasure code 启用后,要求传给 MinIO server 的驱动器参数至少为 4 个。minio server 启用纠删码机制后,会自动将传入的 disk driver 划分为多个纠删码集(erasure coding set),每个 erasure coding set 中的 disk driver 数量可以是 4,6,8,10,12,14,16。MinIO server 会根据传入 disk driver 的数量自动计算 erasure coding set 个数,以及每个 erasure coding set 中的驱动(driver)个数。如下图我们传入八个驱动参数给 Minio server:

从上图日志可知,Minio server 将 /jiuxi/oss1 ~ /jiuxi/oss8 这些驱动(driver)放入了一个 erasure coding set 中,并且 minio server 还给出了一个警告:“WARNING: Host local has more than 4 drivers of set. A host failure will result in data becoming unavailable.”,这个警告意思是说,当前纠删码集中有多于四个驱动器都在一台主机上,如果主机出现故障,那么这些数据就不再可用(纠删码集有8个驱动,根据纠删码机制,这个set最大允许失效的磁盘数量是4个)。

7 纠删码机制验证

上面花了大量篇幅解释纠删码机制,下面看看实际的例子,上面已经开启了单机纠删码模式,即使用命令:minio server /jiuxi/oss{1...8}。

自此,九析带你轻松完爆 MinIO 单机纠删码工作模式。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:面向业务管理中业务层与管理层接口研究与设计
下一篇:Mybatis Log Plugin的使用方式
相关文章

 发表评论

暂时没有评论,来抢沙发吧~