网站首页 > 博客文章 正文
Minio是一款分布式对象存储软件,使用比较广泛,在Minio的安装和数据高可用原理这篇文章中,介绍了它的安装和高可用的原理,这里对minio的扩容做介绍。
扩容前有几点要注意:
- Minio的扩容需要创建新的服务器池(Server Pool),不要在现有的池中增加硬盘(环境变量MINIO_VOLUMES的值中,空格隔开的就是minio的一个个池)
- 配置时间同步,可以在每台服务器安装ntpd
- 扩容前备份原集群桶和IAM配置,使用命令“mc admin cluster bucket export ALIAS”和“mc admin cluster iam export ALIAS”
- 新的主机名最好包含序号,如minio2.example.cn。硬盘的挂载点也包含序号,如/mnt/disk1,/mnt/disk2等
- 硬盘的类型保持相同,如果选择SSD就都用SSD,不建议机械盘和SSD混用。大小也相同
- 扩容操作需要同时(尽量最小时间间隔)重启集群中的全部minio服务,不是一个起来再启动另一个。
- 实验环境
操作系统和软件版本与“Minio的安装和数据高可用原理”保持一致。扩容增加一台服务器,安装四块数据盘作为minio的后端存储。
原服务器域名,minio1.example.cn,硬盘挂载点/mnt/disk{1...4}
新服务器域名,minio2.example.cn,硬盘挂载点/mnt/disk{1...4}
- 节点配置
新服务器minio2.example.cn的安装参照“Minio的安装和数据高可用原理”,安装完成后不要启动,修改环境变量文件/etc/default/minio,
#两个server pool,每个节点四块硬盘组成一个server pool
MINIO_VOLUMES="http://minio1.example.cn:9000/mnt/disk{1...4}/minio http://minio2.example.cn:9000/mnt/disk{1...4}/minio"
#Web UI的地址
MINIO_OPTS="--console-address :9001"
#超管的用户名
MINIO_ROOT_USER=minioadmin
#超管的密码
MINIO_ROOT_PASSWORD=minioadminWo3
#客户端访问minio的API地址,由Nginx做负载均衡,不是WebUI的地址
MINIO_SERVER_URL="http://minio.example.cn"
原服务器minio1.example.cn的环境变量文件/etc/default/minio也需要修改,和上面保持一致。
- 负载均衡配置
为了保证客户端访问minio的稳定性,使用Nginx作为前端负载均衡,Nginx的配置文件如下,
upstream minio_upstream {
least_conn;
server minio1.example.cn:9000;
server minio2.example.cn:9000;
}
server {
listen 80;
server_name minio.example.cn;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://minio_upstream;
}
}
- 扩容
配置完成后,启动Nginx和两个minio实例。启动后发现集群报下面异常,
在minio2服务器上发现是因为minio对硬盘没有写入权限导致,
使用下面命令修改文件系统所有者为minio-user
chown -R minio-user:minio-user /mnt
再次重启minio,状态恢复,查看状态如下,
- 对象均衡
加入新的服务池(server pool)后,集群容器翻倍,但是原有的数据不会自动从Pool 1移动到Pool 2,可以看到Pool 2的空间并没有使用,
可以手动平衡(不是必需的,新的数据会写入Pool 2),
#手动执行数据平衡
mc admin rebalance start ALIAS
#查看平衡的状态
mc admin rebalance status ALIAS
平衡完成后,看到两个池的容器基本一致。
个人感觉这里显示有问题,百分比应该分别是31%和27%才对。看两台服务器文件系统的占用,
- 总结
本文对minio的扩容做了简单介绍,生产环境需要规划好服务器的数量和每台服务器上硬盘的数量,每个池要留够硬盘用于存放校验数据(parity),防止设计不合理降低高可用性。
希望这篇文章能帮助到你!
猜你喜欢
- 2024-10-26 使用分享 | minio 远程客户端mc备份nginx access日志
- 2024-10-26 etcd,minio实用的备份脚本(etcd备份还原原理)
- 2024-10-26 对象存储服务器Minio(超详细)(对象存储服务都有些什么功能?)
- 2024-10-26 如何将mysql备份自动存储到minio(mysql的备份)
- 2024-10-26 私有对象存储(minio)的备份以及还原
你 发表评论:
欢迎- 368℃用AI Agent治理微服务的复杂性问题|QCon
- 364℃手把手教程「JavaWeb」优雅的SpringMvc+Mybatis整合之路
- 358℃初次使用IntelliJ IDEA新建Maven项目
- 351℃Maven技术方案最全手册(mavena)
- 348℃安利Touch Bar 专属应用,让闲置的Touch Bar活跃起来!
- 347℃InfoQ 2024 年趋势报告:架构篇(infoq+2024+年趋势报告:架构篇分析)
- 345℃IntelliJ IDEA 2018版本和2022版本创建 Maven 项目对比
- 343℃从头搭建 IntelliJ IDEA 环境(intellij idea建包)
- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)