# 工具部署MinIO
工具类型: shell 脚本
文档更新: 2025-02-22 16:43:06
适用场景: 非云化产品的的私有化部署(自建环境)
# 免责申明和使用须知
1.工具定位声明
- 本工具为 辅助部署工具,旨在帮助快速搭建云原生环境所依赖的中间件(包含并不仅限于Kubernetes、Nacos、Kafka等),便于项目组快速部署微服务应用。
- 不承诺提供中间件的长期完整维护、支持或安全保障。
2.开源组件免责声明
- 本工具使用的 Kubernetes、etcd、calico、Nacos、Kafka等组件均为开源软件,受各自开源许可证保护。
- 本工具 不修改、不篡改 任何开源组件,仅作为安装和部署的辅助工具。
- 使用本工具即表示您已阅读并同意相关开源组件的 使用许可协议。
3.安全与责任声明
- 本工具 不承担 因使用过程中出现的安全问题、系统崩溃、数据丢失等后果的责任。
- 建议用户自行评估部署环境的安全性,并根据自身需求选择合适的版本和配置。
4.不提供长期维护
- 本工具仅为临时部署工具,不承诺对中间件进行持续更新、补丁修复、安全处置和兼容性支持。
- 用户应自行关注官方更新,并根据实际需要决定是否升级或更换工具。
5.商业使用提醒
- 若您将本工具用于 商业环境,请确保所有使用组件符合其 开源许可证,并遵守相关法律法规。
- 本工具不提供任何形式的商业支持或担保。
6.用户自主决策
- 本工具仅供参考和学习使用,最终部署方案由用户自行决定。
- 在使用前,请确保您具备足够的技术能力,并了解Kubernetes、Nacos、Kafka等等云原生组件的运行机制和配置方法。
# 相关下载
安装工具: https://pan.baidu.com/s/1cp8zb9ifxSk0-C8FfHw6tg?pwd=2024
推荐使用控制台具备全功能菜单的最后一个版本: RELEASE.2025-04-22T22-12-26Z
# 工具安装部署
# 环境准备要求
MinIO工具部署原理是:[MinIO主机] —-SSH远程部署—-> [MinIO单机/MinIO集群]
故,如果是单机,就将工具放在当前单机服务器上;如果是集群,就将工具放在集群第一个节点上,其余服务器确保SSH端口互通,工具自动部署。
# 准备工具安装包
将工具安装所需包上传到服务器任意位置,如 /seeyon/scripts/minio
,安装包包含两个文件(amd是X86,arm是ARM架构,按需选择上传):
上传后,解压安装包,其中.7z文件需要安装解压命令,如果操作系统没有,也可以在windows电脑解压然后改成zip再上传:
tar -xf multi-install-minio-amd64.tgz
7z x minio-binaries-20250422-amd64.7z
# 如果是全量包 不需要再下载和解压 minio-binaries-20250422-amd64.7z
# 运维机配置工具参数
vim multi-install-minio.sh
参数说明:
- 具体参数解读,可见安装工具云盘地址里面的部署视频。
- disks{"/dev/sdb"}和fsFormat="xfs"参数是主动格式化选项,需要确保minio独立服务器独立数据盘存储,工具会对数据盘进行格式化;个人单机环境不要调整,更不要设置成系统盘地址
- 单机和集群环境,都需要配置服务器的SSH信息,要求每台服务器的SSH信息保持一致
- 安装工具默认已经提供了桶的初始化信息,可以直接复用。
# 执行脚本工具
1、直接运行.sh不会执行安装,脚本工具会输出用法供参考:
bash multi-install-minio.sh
一般单机部署选择:单节点单设备;集群部署选择:多节点多设备。 生产环境默认推荐集群模式,以确保对象存储的高可用能力。
2、运行部署命令,参考上一步的用法信息,执行部署命令。 如单机部署执行:
bash multi-install-minio.sh i ss
部署过程中,如缺少依赖,按工具提示自行安装依赖再重新部署。
3、部署完成,注意记录部署信息,供后续配置使用
4、访问MinIO管理控制台效果:
# 日常运维
1、部署脚本目录下 /document/v8-minio.txt
存放了桶信息。
2、部署脚本目录下 document/deploy-minio.info
存放了minio的http和api访问地址及帐号密码。
3、服务启停:
启动systemctl start minio
停止systemctl stop minio
重启systemctl restart minio
查看状态systemctl status minio
# 单机部署截图
# 集群部署截图
# 附录
在MinIO集群中扩容磁盘需要遵循特定的规则,以确保数据均衡和纠删码(Erasure Coding)的有效性。以下是扩容磁盘的关键步骤和要求:
# 一、扩容磁盘的基本规则
扩容单位 MinIO要求以纠删码组(Erasure Set)为单位扩容,且扩容后需保持每组磁盘数量一致。
- 默认情况下,纠删码组大小为 4到16块磁盘(必须跨节点分布)。
- 例如:初始集群为4节点×2磁盘=8块,若默认纠删码组大小为4,则共有2个纠删码组(每组4块,跨4节点)。
扩容磁盘数量要求
- 必须成组扩容:每次扩容的磁盘数需是纠删码组大小的整数倍。
- 若纠删码组大小为4,则每次至少扩容4块(例如:+4、+8、+12等)。
- 必须均匀分布到所有节点:新磁盘需在所有节点间均衡添加。
- 例如:4节点集群扩容4块磁盘 → 每节点新增1块磁盘。
- 必须成组扩容:每次扩容的磁盘数需是纠删码组大小的整数倍。
扩容后磁盘数量限制
- 单个MinIO集群最多支持32个节点,每个节点最多16块磁盘(总磁盘数≤512块)。
# 二、具体扩容步骤
# 场景示例
初始集群:4节点,每节点2块100G磁盘(共8块,默认2个纠删码组,每组4块)。 目标:扩容到每节点4块磁盘(共16块)。
# 步骤1:准备新磁盘
- 确保每个节点新增的磁盘容量和类型与原磁盘一致(推荐)。
- 例如:每节点新增2块100G磁盘(共+8块)。
# 步骤2:动态扩容(无需停机)
扩展磁盘目录 修改MinIO启动命令,将新磁盘路径加入原有命令:
# 原命令(假设): minio server http://node{1...4}/data/{1...2}/disk # 扩容后命令(每节点新增2块磁盘): minio server http://node{1...4}/data/{1...4}/disk
- 重启MinIO服务(滚动重启节点,避免服务中断)。
自动数据均衡
- MinIO会自动将数据均衡分布到新磁盘,无需手动干预。
- 通过监控工具(如
mc admin info
)观察均衡进度。
# 步骤3:验证扩容
# 检查集群状态和可用容量
mc admin info myminio
- 确认新磁盘已加入,且
Usable Space
按纠删码比例增加。
# 三、扩容后的容量计算
- 初始容量:8块×100G = 800G,默认EC:4(4数据+4校验),可用400G。
- 扩容后:16块×100G = 1600G,EC组仍为4数据+4校验(每组8块,共2组),可用800G。
- 可用容量公式:
(数据分片数 / 总磁盘数) × 总原始容量
。
- 可用容量公式:
# 四、注意事项
不可缩减磁盘
MinIO不支持减少磁盘数量,扩容后无法回退。节点扩展 vs 磁盘扩展
- 增加节点:需保持每节点磁盘数一致(如从4节点×2盘扩容到8节点×2盘)。
- 增加磁盘:需保持所有节点同步增加(如4节点×2盘→4节点×4盘)。
性能影响
- 扩容期间可能短暂影响I/O性能(数据均衡占用资源)。
- 建议在低峰期操作。
# 五、总结
- 扩容要求:成组(纠删码组倍数)、均匀分布、同类型磁盘。
- 操作步骤:修改启动命令→滚动重启→自动均衡。
- 容量增长:可用空间按纠删码比例线性增加(如默认EC:4下,50%利用率)。
通过遵循上述规则,可以安全地扩展MinIO集群的存储容量。
快速跳转
