MinIO is a high-performance, S3 compatible object store. It is built for large scale AI/ML, data lake and database workloads. It runs on-prem and on any cloud (public or private) and from the data center to the edge. MinIO is software-defined and open source under GNU AGPL v3.
MinIO一旦集群搭建成功后,就不可以更改集群节点数。因为存在在MinIO的对象到底存储在哪个问题。
MinIO实现了一个峰值锁叫DSync
。它在节点数量少时,性能非常高;但节点数量过多时,性能就下降了。功能实现的最大节点就是32,所以导致MinIO单个集群的最大节点数也是32。
官方回复是,他们十年做GlusterFS的经验看,一个超大的集群是难以维护的,尤其是宕机之后的恢复时间也特别长,所以他们在做MinIO的时候一个核心设计理念就是简单,易于维护。
1、可同时向多个集群写入;
2、当集群容量达到阈值,从写集群中剔除,变成只读;
3、读取的时候,根据编码到文件名上的集群信息,从而路由到正确的集群;
MinIO本身提供一个叫联合模式
的方式来组建集群,但是要额外引入其他依赖。可以考虑在LB层根据其请求里面的一些header信息做流量转发。
当配置多个集群的时候,可以先从配置中获取可用的集群,再从LB上根据请求的header信息,可控制向哪个集群写。当某个集群的容量达到阈值时,可以从配置中剔除该集群,把他变成只读集群。读取的时候把集群ID或信息码编码到文件名上去,这样可以通过解析文件名就能获取到对应的集群。