对象存储与纠删码
自建对象存储服务器
巴别鸟对象存储是在开源MinIO系统上发展起来的对象存储系统。它继承了MinIO高性能、可扩展、数据安全的优势,同时更适配巴别鸟企业网盘的应用场景。
巴别鸟对象存储系统作为先进的对象存储系统,在速度、安全性、稳定性、高可用、横向扩展方面都有着传统存储系统无可比拟的优势。
巴别鸟对象存储系统优势
性能
MinIO号称是世界上速度最快的对象存储服务器,没有之一。在 32 个 NVMe 驱动器节点和 100Gbe 网络上发布的 GET/PUT 结果超过 325 GiB/秒和 165 GiB/秒,和亚马逊S3相比有明显优势,远远超越传统HDFS。
高可用性:MinIO通过数据的多副本、故障转移和自动恢复,保证高度可靠性和可用性,从而确保数据不丢失和业务不中断。
低冗余且磁盘损坏高容忍:标准且最高的数据冗余系数为2(即存储一个1 M的数据对象,实际占用磁盘空间为2M)。但在任意n/2块disk损坏的情况下依然可以读出数据(n为一个纠删码集合(Erasure Coding Set)中的disk数量)。并且这种损坏恢复是基于单个对象的,而不是基于整个存储卷的。
安全性:
MinIO 通过最高级别的加密以及广泛的优化提供更多功能,几乎消除了通常与存储加密操作相关的开销。
数据分块存储与各个硬盘,获取硬盘或服务器读写权限也无法还原数据。
极高的可扩展性:MinIO支持分布式部署,并且可以水平扩展。在需要更多的存储空间或更高的性能时,可以通过添加新的节点轻松地扩展MinIO。
最低支持单机部署对象存储系统,而不是传统的需要三台独立服务器。
对象存储系统及纠删码
关于纠删码
巴别鸟对象存储系统(MinIO)使用纠删码erasure code 和校验和checksum来保护数据免受硬件故障和无声数据损坏。最高冗余状态下即便丢失一半数量(N/2)的硬盘,您仍然可以恢复数据。
纠删码是一种恢复丢失和损坏数据的数学算法,MinIO采用Reed-Solomon code将对象拆分成N/2数据和N/2奇偶校验块。这就意味着如果是12块盘,一个对象会被分成6个数据块、6个奇偶校验块,可以丢失任意6块盘(不管其是存放的数据块还是奇偶校验块) , 仍可以从剩下的盘中的数据进行恢复,我们称数据存储为D、纠删码(奇偶校验)为P。
默认情况下会以N/2个数据和N/2奇偶校验块的方式来进行驱动器分片(支持自定义以支持更高的空间利用率)
纠删码不同于传统的多副本技术,它的磁盘利用率更高,数据恢复效率更高。(但是不少存储厂商把纠删码宣传为多副本,把P数说成是副本数,这是不准确的,会引起很多误解)
巴别鸟语境下的多副本是指增加备份服务器全量同步存储的数据。
纠删码特点及与raid技术区别
纠删码可以保护数据免受多个驱动器故障的影响
RAID6允许两个驱动器故障而MinIO纠删码允许丢失一半的驱动器
RAID属于卷级别的纠删码而MinIO纠删码是基于对象实现的纠删码(不用停机)
有效空间计算(空间利用率)
假设需要100TB的存储空间,需要购买多少个多大的硬盘取决于选择的冗余标准。譬如:采用3+1的冗余方式,100TB可用空间就需要购买12块12TB的硬盘,4块硬盘一组组成3组,9个数据盘3个校验盘,可用空间就是9*12一共108TB可用。如果采用2+1的冗余方式,就需要15块10TB的硬盘,10个数据盘,5个校验盘。
3+1方案中12块硬盘只能坏任意3块不影响系统使用及数据还原,但如果使用2+1方案,虽然需要购买更多硬盘,但15块硬盘里能坏任意5块也不影响系统使用。
更换坏掉的硬盘后系统能自动修复数据。
空间利用率可以参考下表。如果空间需求量大(超过150TB)并且在持续增长,考虑到存储密度和性价比,建议一台服务器一次性配16块硬盘。
不同数量的磁盘及空间利用率可以点击下方链接进行计算
https://min.io/product/erasure-code-calculator?ref=docs
硬件准备
所需硬件配置。
巴别鸟支持单台服务器搭建对象存储系统(单节点),以硬盘组作为冗余对象。最高可以损坏一半的硬盘也不影响系统的正常使用。
巴别鸟对象存储系统需要客户按要求事先准备好硬件服务器以供部署,最低配置需要2块志强CPU、64GB内存及400G固态硬盘(系统盘)然后增加相应存储容量所需的机械硬盘。
如要计算所需存储空间和购买的硬盘数,可点击下方链接进行计算。
https://min.io/product/erasure-code-calculator?ref=docs
建议硬件配置如下:
| 服务器类型 | 配置要求 | 操作系统 | 服务器用途 | 备注 |
|---|---|---|---|---|
| 存储服务器 | 至强银牌4210*2 20核CPU 64G内存 480G SSD硬盘 +存储所需容量硬盘 硬盘如果考虑性价比,建议使用 8T*12(2U) 或 8T*24(4U)。如果考虑存储密度及未来扩容投入可使用12T硬盘。 | Linux | 对象存储服务器 | 未来扩展建议增加相同磁盘容量的服务器。 |
巴别鸟对象存储使用软件定义存储技术,所以硬盘无需raid,考虑到一些服务器需要raid才能支持多磁盘,这种情况下每块硬盘都做成raid0直通模式即可。
单服务器模式每次扩容需要增加一台配置一致的服务器。扩容时可以不间断服务。
单服务器部署也支持增加一台配置一致的服务器搭建主备模式实时同步,如果一台服务器硬件损坏,可以快速切换到备用服务器。
磁盘有效空间容量和选择的冗余方式有关。譬如:使用8块10T硬盘来组建对象存储系统,采用3+1的冗余方案,相当于4块硬盘一个分组,分为2组,有效可用空间为60TB,同时8块硬盘损坏任意两块也不影响数据及系统使用,替换坏的硬盘即可自动重建。如果采用7+1的冗余方案,有效可用空间就为70TB,8块硬盘里任意损坏1块不影响数据及系统使用。
多服务器部署(分布式)。
巴别鸟对象存储系统支持多服务器部署,如使用服务器为冗余单位,最少要求3台服务器,即2+1模式,但考虑到空间利用率,推荐采用3+1方案(即4台服务器)
每个节点(服务器)的配置要求和上文单服务器部署一致。
建议节点配置一致(相同的操作系统、相同数量的磁盘和相同的网络连接)
每个节点提供的驱动器数量必须相同
节点间的时间差异不能大于15分钟(建议使用NTP确保时间的一致性)
空间利用率计算同单服务器。