8.4 KiB
8.4 KiB
MinIO集群配置指南(基于启动脚本)
📋 概述
本文档基于67和68机器的MinIO启动脚本,配置MinIO分布式集群模式。
集群架构
- 67机器: 提供2个数据目录(节点1和节点2)
- 68机器: 提供2个数据目录(节点3和节点4)
- 集群规模: 4节点集群(满足MinIO最小集群要求)
- 高可用性: 支持1个节点故障(4节点集群可容忍1个节点故障)
🎯 前置条件
1. 网络要求
✅ 两台机器网络互通
✅ 防火墙开放9000和9001端口
✅ 确保两台机器可以互相访问
# 在67机器上测试
ping 172.16.0.68
telnet 172.16.0.68 9000
# 在68机器上测试
ping 172.16.0.67
telnet 172.16.0.67 9000
2. 数据目录准备
67机器需要创建2个数据目录:
mkdir -p /iflytek/soft/minio/data1
mkdir -p /iflytek/soft/minio/data2
68机器需要创建2个数据目录:
mkdir -p /iflytek/soft/minio/data1
mkdir -p /iflytek/soft/minio/data2
3. 停止现有单机MinIO服务
# 在67机器上
ps aux | grep minio
kill $(cat /iflytek/soft/minio/minio.pid) # 如果存在PID文件
# 在68机器上
ps aux | grep minio
kill $(cat /iflytek/soft/minio/minio.pid) # 如果存在PID文件
🚀 配置步骤
第一步:准备集群启动脚本
1.1 在67机器上配置
# 复制集群启动脚本
cp "67 机器的minio-cluster-start.sh" /iflytek/soft/minio/minio-cluster-start.sh
chmod +x /iflytek/soft/minio/minio-cluster-start.sh
1.2 在68机器上配置
# 复制集群启动脚本
cp "68 机器的minio-cluster-start.sh" /iflytek/soft/minio/minio-cluster-start.sh
chmod +x /iflytek/soft/minio/minio-cluster-start.sh
第二步:启动集群(重要:必须同时启动)
⚠️ 重要提示:MinIO集群模式要求所有节点同时启动或几乎同时启动(时间差不超过几秒)。
2.1 在67机器上启动
# 进入MinIO目录
cd /iflytek/soft/minio
# 启动集群节点
./minio-cluster-start.sh
2.2 在68机器上启动(几乎同时)
# 进入MinIO目录
cd /iflytek/soft/minio
# 启动集群节点
./minio-cluster-start.sh
建议:使用SSH同时连接到两台机器,或者使用脚本同时启动。
第三步:验证集群状态
3.1 安装MinIO客户端(mc)
# 在任意一台机器上安装
wget https://dl.min.io/client/mc/release/linux-amd64/mc
chmod +x mc
sudo mv mc /usr/local/bin/
3.2 配置集群别名
# 连接到集群(可以连接到任意节点)
mc alias set minio-cluster http://172.16.0.67:9000 minioadmin minioadmin@123456
3.3 查看集群信息
# 查看集群详细信息
mc admin info minio-cluster
# 查看集群状态
mc admin heal minio-cluster --dry-run
# 查看集群节点
mc admin service status minio-cluster
正常输出示例:
● minio1:9000
Uptime: 1h
Version: RELEASE.2025-04-22T22-12-26Z
Drives: 2/2 OK
...
● minio2:9000
Uptime: 1h
Version: RELEASE.2025-04-22T22-12-26Z
Drives: 2/2 OK
...
第四步:测试集群功能
4.1 创建存储桶
# 创建测试存储桶
mc mb minio-cluster/test-bucket
# 列出存储桶
mc ls minio-cluster/
4.2 上传测试文件
# 上传测试文件
echo "test cluster" > test.txt
mc cp test.txt minio-cluster/test-bucket/
# 列出文件
mc ls minio-cluster/test-bucket/
4.3 测试故障转移
# 停止67机器的MinIO服务
kill $(cat /iflytek/soft/minio/minio.pid)
# 等待几秒后,测试集群是否仍可用
mc ls minio-cluster/test-bucket/ # 应该仍然可以访问
# 重启67机器
./minio-cluster-start.sh
# 验证数据一致性
mc admin heal minio-cluster
📊 集群配置说明
端点配置
67机器端点:
- 本地节点1:
/iflytek/soft/minio/data1 - 本地节点2:
/iflytek/soft/minio/data2 - 远程节点3:
http://172.16.0.68:9000/iflytek/soft/minio/data1 - 远程节点4:
http://172.16.0.68:9000/iflytek/soft/minio/data2
68机器端点(与67机器完全一致):
- 远程节点1:
http://172.16.0.67:9000/iflytek/soft/minio/data1 - 远程节点2:
http://172.16.0.67:9000/iflytek/soft/minio/data2 - 本地节点3:
/iflytek/soft/minio/data1 - 本地节点4:
/iflytek/soft/minio/data2
性能参数
- 内存限制: 最大32GB
- API请求限制: 10000
- 请求超时: 300秒
- GC线程数: 4
- 缓冲区大小: 64MiB
🔧 常用管理命令
服务管理
# 启动集群(两台机器同时执行)
./minio-cluster-start.sh
# 停止集群
kill $(cat /iflytek/soft/minio/minio.pid)
# 查看日志
tail -f /iflytek/soft/minio/logs/minio.log
集群管理
# 查看集群信息
mc admin info minio-cluster
# 查看集群健康状态
mc admin heal minio-cluster --dry-run
# 修复集群数据
mc admin heal minio-cluster
# 查看集群节点状态
mc admin service status minio-cluster
数据管理
# 创建存储桶
mc mb minio-cluster/bucket-name
# 上传文件
mc cp file.txt minio-cluster/bucket-name/
# 下载文件
mc cp minio-cluster/bucket-name/file.txt ./
# 列出文件
mc ls minio-cluster/bucket-name/
# 删除文件
mc rm minio-cluster/bucket-name/file.txt
⚠️ 注意事项
1. 启动顺序
- 必须同时启动:所有节点必须在几秒内启动,否则集群无法形成
- 建议使用脚本:创建启动脚本确保同时启动
2. 端点一致性
- 所有节点必须使用相同的端点列表:67和68机器的端点列表必须完全一致
- 路径必须正确:确保数据目录路径在两台机器上完全一致
3. 网络要求
- 端口开放:确保9000和9001端口在两台机器上都可以访问
- 防火墙配置:如果使用防火墙,需要开放相应端口
4. 数据目录
- 权限设置:确保MinIO进程有读写权限
- 磁盘空间:确保有足够的磁盘空间
🔍 故障排查
问题1:集群无法启动
症状:启动后节点无法加入集群
解决方法:
# 1. 检查网络连通性
ping 172.16.0.67
ping 172.16.0.68
telnet 172.16.0.67 9000
telnet 172.16.0.68 9000
# 2. 检查防火墙
firewall-cmd --list-all | grep 9000
# 3. 检查日志
tail -f /iflytek/soft/minio/logs/minio.log
# 4. 确保所有节点同时启动
问题2:节点状态异常
症状:mc admin info 显示节点状态异常
解决方法:
# 1. 检查节点日志
tail -f /iflytek/soft/minio/logs/minio.log
# 2. 检查数据目录权限
ls -la /iflytek/soft/minio/data1
ls -la /iflytek/soft/minio/data2
# 3. 执行集群修复
mc admin heal minio-cluster
# 4. 重启异常节点
kill $(cat /iflytek/soft/minio/minio.pid)
./minio-cluster-start.sh
问题3:数据不一致
症状:两个节点文件数量不一致
解决方法:
# 1. 检查集群健康状态
mc admin heal minio-cluster --dry-run
# 2. 执行修复
mc admin heal minio-cluster
# 3. 检查节点状态
mc admin info minio-cluster
📚 相关文档
- MinIO集群文件同步机制说明.md - MinIO集群自动同步机制详解(重要!)
- MinIO高可用配置指南.md - MinIO高可用方案对比
- MinIO集群Nginx配置指南.md - MinIO集群nginx负载均衡配置(推荐)
- 基于现有启动脚本的MinIO主从配置.md - 主从同步方案
- 67 机器的minio-cluster-start.sh - 67机器集群启动脚本
- 68 机器的minio-cluster-start.sh - 68机器集群启动脚本
🎯 配置总结
集群架构
- 节点数量: 4节点(67机器2个 + 68机器2个)
- 高可用性: 支持1个节点故障
- 数据冗余: 使用纠删码技术,自动数据冗余
配置要点
- ✅ 同时启动:所有节点必须同时启动
- ✅ 端点一致:所有节点使用相同的端点列表
- ✅ 网络互通:确保两台机器网络互通
- ✅ 端口开放:确保9000和9001端口可访问
📝 文档版本: v1.0
🔄 最后更新: 2025-01-27
✅ 适用场景: 67/68双机MinIO集群配置