集群扩容
MinIO 支持两种扩展方式:
- 通过修改命令行,在命令行上指定新的集群集来扩展
- 通过引入第三方组件etcd,在不动原有集群的基础上实现动态扩展方案
MinIO集群扩容方法
常见的集群扩容方法可分为两类:水平扩容和垂直扩容。水平扩容,一般指通过增加节点数扩展系统性能;而垂直扩容则指提升各节点自身的性能,例如增加节点的磁盘存储空间。直接采用垂直扩容方式扩容MinIO集群的节点磁盘空间,会为集群运行带来若干问题,官方也并不推荐。因此本文主要介绍MinIO的两种水平扩容方式:对等扩容和联邦扩容。
3.1 对等扩容
首先,MinIO的极简设计理念使得MinIO分布式集群并不支持向集群中添加单个节点并进行自动调节的扩容方式,这是因为加入单个节点后所引发的数据均衡以及纠删组划分等问题会为整个集群带来复杂的调度和处理过程,并不利于维护。因此,MinIO提供了一种对等扩容的方式,即要求增加的节点数和磁盘数均需与原集群保持对等。
例如原集群包含4个节点4块磁盘,则在扩容时必须同样增加4个节点4块磁盘(或为其倍数),以便系统维持相同的数据冗余SLA,从而极大地降低扩容的复杂性。如上例,在扩容后,MinIO集群并不会对全部的8个节点进行完全的数据均衡,而是将原本的4个节点视作一个区域,新加入的4节点视作另一区域,当有新对象上传时,集群将依据各区域的可用空间比例确定存放区域,在各区域内仍旧通过哈希算法确定对应的纠删组进行最终的存放。此外,集群进行一次对等扩容后,还可依据扩容规则继续进行对等扩容,但出于安全性考虑,集群的最大节点数一般不得超过32个。
对等扩容的优点在于配置操作简单易行,通过一条命令即可完成扩容(注意:推荐使用连续的节点IP,并参照MinIO官网在扩容命令中使用{})。而对等扩容的局限性在于:①扩容需重启;②扩容存在限制,集群节点数一般不超过32个,这是由于MinIO集群通过分布式锁保证强一致性,若集群节点数过大,维护强一致性将带来性能问题。
3.2 联邦扩容
MinIO官方提供了另一种扩容机制——联邦扩容,即通过引入etcd,将多个MinIO分布式集群在逻辑上组成一个联邦,对外以一个整体提供服务,并提供统一的命名空间。MinIO联邦集群的架构如图3-1所示。
1、配置扩展方式
MinIO 支持通过在命令行上指定新的集群集来扩展分布式集群,多个节点的存储容量和就是分布式MinIO的存储容量。
部署有一个服务器池,由四个具有顺序主机名的 MinIO 服务器主机组成。
youduk1 youduk2
youduk3 youduk4
每个主机有 4 个本地连接的驱动器,具有顺序挂载点: 我没有节点。只用目录来测试
/home/minio/data/data1 /home/minio/data/data2
/home/minio/data/data3 /home/minio/data/data4
新增服务器池由八个具有顺序主机名的新 MinIO 主机组成:
youduk5 youduk6 youduk7 youduk8
youduk9 youduk10 youduk11 youduk12
新增 所有主机都有八个带有顺序挂载点的本地连接磁盘:
/home/minio/data/data1 /home/minio/data/data2 /home/minio/data/data3 /home/minio/data/data4 /home/minio/data/data5 /home/minio/data/data6 /home/minio/data/data7 /home/minio/data/data8
环境配置 与上方配置安装方式相同
每台节点
MINIO_VOLUMES=“http://youduk{1…4}:9029/home/minio/data/data{1…4}”
修改为
MINIO_VOLUMES=“http://youduk{1…4}:9029/home/minio/data/data{1…4} http://youduk{5…12}:9029/home/minio/data/data{1…8}”
通过以上扩展策略,就可以按需扩展集群。重新配置后重启集群,会立即在集群中生效,并对现有集群无影响。如上命令中,我们可以把原来的集群看做一个集群池,新增集群看做另一个集群池,新对象按每个集群池中的可用空间比例放置在集群池中。在每个集群池内,基于确定性哈希算法确定位置。
注意: 添加的每个集群池必须具有与原始集群池相同的磁盘数量(纠删码集)大小,以便维持相同的数据冗余SLA。 例如,第一个集群池有8个磁盘,就可以将集群扩展为16个、32个或1024个磁盘的集群池,只需确保部署的SLA是原始集群池的倍数即可。
2、etcd扩展方案
etcd 用于存储桶DNS服务记录
参考 https://www.sohu.com/a/455702322_115128