Minio的容量算法及实际存储空间计算公式

集群磁盘可用容量计算

1. 数据的上传,下载流程

1.1上传流程:

1.先根据对象名去做一个Hash,计算出对应的Set,然后来创建临时目录。创建临时目录的目的是为了确保数据强一致性,所以中间数据都会被写入到这个临时目录里(直到所有数据写完后,再统一把目录写入到最终的路径上)
2.接下来读数据编码,每次最多读10M的数据处理,然后做编码,再被写入到磁盘上,循环的过程就是把数据保存下来。
3.数据保存完后,再写meta信息。
4.然后挪到最终的位置上,删除临时目录。

1.2读取流程:

1.先根据对象名做Hash,找到对象对应的Set
2.然后去读取meta信息,通过meta信息来获得编码的方式,然后去解码。它是以10M数据做EC编码,读的时候也是逐个part解析,每个part给他做解码,然后写入到一个io write里面。
备注:做EC码时,只要一半的编码块就能还原整个对象,所以读meta时读了N份,但是读数据时只要读N/2就可以了。
Ps:最简单的理解就是 一个对象存储在一个Set上面,这个Set包含16个Drive,其中一半是数据块,一半是校验块,这种方式最多能忍受一半的编码丢失或损坏。所有编码块的大小是原对象的2倍,跟传统多副本存储方案相比,他只冗余存了一份,但可靠性更高。

2.MinIo 纠删码奇偶校验 ( EC:N)

1.MinIO 使用 Reed-Solomon 算法根据部署中的擦除集大小将对象拆分为数据块和奇偶校验块。对于给定大小的擦除集M,MinIO 将对象拆分为N奇偶校验块和M数据块。
2.MinIO 使用该EC:N符号来表示N部署中的奇偶校验块 ( )的数量。MinIO 默认为EC:4每个对象 4 个奇偶校验块。MinIO对部署中的EC:N所有擦除集和服务器池使用相同的值 。
3.MinIO 可以容忍N每个擦除集丢失多达驱动器并继续执行读写操作(“仲裁”)。如果N恰好等于擦除集中驱动器的 1/2,则 MinIO 写入仲裁要求 N+1驱动器避免数据不一致(“裂脑”)
引入官方文档:https://docs.min.io/minio/baremetal/concepts/erasure-coding.html#minio-ec-parity

3.计算方式

xxxxxxxxxx

MinIO使用Reed-Solomon来将对象分片到若干数据块(Data block)和校验块(Partity block)中。对于12磁盘组成的存储,一个对象可以分片到最多6个校验块+6个数据块中,最少2个校验块+10个数据块中。
数据盘变量配置:
MINIO_STORAGE_CLASS_STANDARD:设置默认标准存储类型的奇偶校验计数,例如"EC:4"
冗余盘变量配置:
MINIO_STORAGE_CLASS_RRS:设置默认低冗余存储类型的奇偶校验计数,例如"EC:2"

MinIO 可创建每组4到16个磁盘组成的纠删码集合。所以你提供的磁盘总数必须是其中一个数字的倍数。
MinIO会根据给定的磁盘总数或者节点总数选择最大的纠删码集合大小,确保统一分布,即每个节点参与每个集合的磁盘数量相等。
每个对象被写入一个EC集合中,因此该对象分布在不超过16个磁盘上。

由官方计算器和实际操作得出结论

官方可用容量计算器:https://min.io/product/erasure-code-calculator
实际测试环境操作

4. 最后得出存储效率公式

存储效率=M/(K+M)
M=校验块
K=实际数据存储块

一组纠删码存储合集不会大于16,最小是4,这也跟官方文档中使用最少纠删码模式4个磁盘对应成立.
列如:
校验块为4 数据块为12 就能算出有效存储为75%, 允许故障盘数是 4块盘

参考链接:
https://cooting.cn/archives/146.html
https://docs.min.io/minio/baremetal/
http://www.minio.org.cn/
https://www.jianshu.com/p/3e81b87d5b0b
minio原理和使用:https://www.jianshu.com/p/c2b43ff67df0

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学亮编程手记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值