【愚公系列】2022年06月 .NET架构班 072-分布式中间件 Minio的集群

举报
愚公搬代码 发表于 2022/06/30 19:53:48 2022/06/30
【摘要】 一、Minio集群概念 1.单主机/多硬盘模式一个主机下,有多个硬盘或者多个磁盘来存储文件。如果所示:架构说明1、1个主节点(Master node)管理索引(创建索引、删除索引)、分配分片维护元数据管理集群节点状态,一个Minio集群中,只有一个Master节点。在生产环境中,内存可以相对小一点,但机器要稳定。2、2个数据(Data node)在Minio集群中,会有N个DataNode...

一、Minio集群概念

1.单主机/多硬盘模式

一个主机下,有多个硬盘或者多个磁盘来存储文件。

如果所示:
在这里插入图片描述
架构说明

1、1个主节点(Master node)

管理索引(创建索引、删除索引)、分配分片维护元数据管理集群节点状态,一个Minio集群中,只有一个Master节点。在生产环境中,内存可以相对小一点,但机器要稳定。

2、2个数据(Data node)

在Minio集群中,会有N个DataNode节点。DataNode节点主要负责:
数据写入、数据检索,大部分Minio的压力都在DataNode节点上
在生产环境中,内存最好配置大一些

二、Minio集群落地

分析:商品图片数据通过客户端,使用Minio存储到磁盘下,当磁盘中的商品图片,商品图片从磁盘删除了,导致商品图片不可用。客户端无法进行正常查询商品图片。如何解决当图片从磁盘上删除后,能够正常访问?

方案:单主机,多硬盘

1.单主机,多硬盘模式搭建

1.1 进入到Minio目录中

在这里插入图片描述

1.2 然后输入以下命令

minio server --address :9010 --console-address ":9011" D:/work/net/MinIO/data1 D:/work/net/MinIO/data2 D:/work/net/MinIO/data3 D:/work/net/MinIO/data4

在这里插入图片描述

1.3 进入到Minio查看结果

在这里插入图片描述

2.Minio单主机/多硬盘原理

2.1 多副本

多副本技术就比较简单直接了,既然要冗余保护关键数据,就干脆多存几份好了,单个数据的算坏不要紧,还有备份可以使用。

这种技术在现代的软件系统中随处可见,比如 mysql 的同步/异步备份,分布式数据库中的三副本存储+一致性协议。

这种方法的优缺点也比较明显,优点是写入效率高,无需多余的计算,直接存多份即可,数据恢复也很快,从副本复制即可。缺点就是存储效率低,以前需要的磁盘容量直接 X2 或者 X3 了,成本很高。

2.2 纠删码

ErasureCode(纠删码)以更低成本的方式提供近似三副本的可靠性,吸引众多分布式存储/云存储的厂商和用户。可以说纠删码是云存储,尤其是现在广泛使用的对象存储的核心。纠删码(Erasure Coding,EC)是一种编码容错技术,最早是在通信行业解决部分数据在传输中的损耗问题。其基本原理就是把传输的信号分段,加入一定的校验再让各段间发生相互关联,即使在传输过程中丢失部分信号,接收端仍然能通过算法将完整的信息计算出来。在数据存储中,纠删码将数据分割成片段,把冗余数据块扩展和编码,并将其存储在不同的位置,例如磁盘、存储节点或者其他地理位置。

问题:现在思考一个问题:现在有 2 份数据(有可能其实是一份数据被分割成了两部分),允许你做 2 的冗余(就是实际存储的使用是要存储数据的 (2+2)/2 = 2 倍),要求达到这样的效果:任意两份数据丢失,数据都能恢复。

1、一个简单的想法是,给两个数据都做一下备份。
在这里插入图片描述
将数据存储为 X1, X2, X3, X4 分别等于 A1, A2, A1, A2;这样假设数据 X1 X2 丢失了,数据就可以从 X3,X4 中恢复出来。但是这样存储存在问题:如果丢失的数据刚好是 X1, X3 呢,那么原先的数据 A1 就彻底丢失找不回来了。但是你可以使用下面的一种存储方式 X1, X2 还是不变,X3=A1+A2, X4=A1+2*A2 这样任意两份数据丢失,都可以恢复出 A1 和 A2 了。

在这里插入图片描述

3.Minio使用纠删码

Minio中:至少有4个数据目录。

1、传统冗余:至少2个数据目录 等分片。4份数据。

2、4个目录中。

总结:Minio至少都有4个数据目录。

规则:必须有一半数据,数据不丢失,才能恢复。

​ N/2 例如:4个目录中,必须保证2个数据不丢失。才能使用。

1、恢复任何磁盘损坏的数据

包括1、直接删除,2、磁盘性道丢失 3、磁盘中毒。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。