当前位置: 首页 > news >正文

Minio的扩容

Minio是一款分布式对象存储软件,这篇文章介绍如何对minio进行扩容。

扩容前有几点要注意:

  1. Minio的扩容需要创建新的服务器池(Server Pool),不要在现有的池中增加硬盘(环境变量MINIO_VOLUMES的值中,空格隔开的就是minio的一个个池)
  2. 配置时间同步,可以在每台服务器安装ntpd
  3. 扩容前备份原集群桶和IAM配置,使用命令“mc admin cluster bucket export ALIAS”和“mc admin cluster iam export ALIAS”
  4. 新的主机名最好包含序号,如minio2.example.cn。硬盘的挂载点也包含序号,如/mnt/disk1,/mnt/disk2等
  5. 硬盘的类型保持相同,如果选择SSD就都用SSD,不建议机械盘和SSD混用。大小也相同
  6. 扩容操作需要同时(尽量最小时间间隔)重启集群中的全部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组成的minio集群

  • 对象均衡

加入新的服务池(server pool)后,集群容器翻倍,但是原有的数据不会自动从Pool 1移动到Pool 2,可以看到Pool 2的空间并没有使用,

minio2空间没有使用

可以手动平衡(不是必需的,新的数据会写入Pool 2),

#手动执行数据平衡
mc admin rebalance start ALIAS
#查看平衡的状态
mc admin rebalance status ALIAS

平衡完成后,看到两个池的容器基本一致。

minio数据平衡

个人感觉这里显示有问题,百分比应该分别是31%和27%才对。看两台服务器文件系统的占用,

minio1文件系统占用
minio2文件系统占用
  • 总结

本文对minio的扩容做了简单介绍,生产环境需要规划好服务器的数量和每台服务器上硬盘的数量,每个池要留够硬盘用于存放校验数据(parity),防止设计不合理降低高可用性。

http://www.lqws.cn/news/545977.html

相关文章:

  • 【docker】docker run参数说明
  • Imbalanced-learn 5. Ensemble of samplers
  • 【水印论文阅读1】将水印规则的定义域从离散的符号空间转移到连续的语义空间
  • 【大模型水印论文阅读2】前缀文本编码、均匀性约束
  • 【linux】程序地址空间
  • 信息抽取领域关键Benchmark方法:分类体系
  • 不同类型的微型导轨精度降低速度有何差异?
  • 专注搜索引擎优化的专业模板平台
  • 【MySQL进阶】服务器配置与管理——系统变量,选项,状态变量
  • CVE-2015-5531源码分析与漏洞复现(Elasticsearch目录遍历漏洞)
  • C语言高级编程
  • 【日志】Unity游戏实习该怎么准备
  • Unity知识点-Renderer常用材质变量
  • 数据结构之顺序表(C语言版本)
  • 【高并发服务器项目测试报告】
  • 大事件项目记录4-用户接口开发-更新用户基本信息
  • 【论文阅读 | CVPR 2025 |MambaVision:一种混合 Mamba-Transformer 视觉骨干网络】
  • Node.js到底是什么
  • Dockerfile——AI教你学Docker
  • 【Python】实现对LGBT+ rights worldwide (2025)数据集的可视化展示
  • 还在手动部署?用Jenkins+Docker+Git实现自动化CI/CD
  • 使用ant-design-vue 写个适用于web端的条件搜索栏组件,可折叠展开
  • 2025Mybatis最新教程(七)
  • 机器学习中为什么要用混合精度训练
  • 2025.6.27总结
  • HTTP协议中Connection: Keep-Alive和Keep-Alive: timeout=60, max=100的作用
  • SpringMVC系列(四)(请求处理的十个实验(下))
  • 多模态融合相机L3CAM
  • 高斯过程动态规划(GPDP)
  • 免费无广告PDFCreator:虚拟打印软件一键转 PDF/PNG/JPG