本文档基于67和68机器的MinIO启动脚本,配置MinIO分布式集群模式。
✅ 两台机器网络互通
✅ 防火墙开放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
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
# 在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文件
# 复制集群启动脚本
cp "67 机器的minio-cluster-start.sh" /iflytek/soft/minio/minio-cluster-start.sh
chmod +x /iflytek/soft/minio/minio-cluster-start.sh
# 复制集群启动脚本
cp "68 机器的minio-cluster-start.sh" /iflytek/soft/minio/minio-cluster-start.sh
chmod +x /iflytek/soft/minio/minio-cluster-start.sh
⚠️ 重要提示:MinIO集群模式要求所有节点同时启动或几乎同时启动(时间差不超过几秒)。
# 进入MinIO目录
cd /iflytek/soft/minio
# 启动集群节点
./minio-cluster-start.sh
# 进入MinIO目录
cd /iflytek/soft/minio
# 启动集群节点
./minio-cluster-start.sh
建议:使用SSH同时连接到两台机器,或者使用脚本同时启动。
# 在任意一台机器上安装
wget https://dl.min.io/client/mc/release/linux-amd64/mc
chmod +x mc
sudo mv mc /usr/local/bin/
# 连接到集群(可以连接到任意节点)
mc alias set minio-cluster http://172.16.0.67:9000 minioadmin minioadmin@123456
# 查看集群详细信息
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
...
# 创建测试存储桶
mc mb minio-cluster/test-bucket
# 列出存储桶
mc ls minio-cluster/
# 上传测试文件
echo "test cluster" > test.txt
mc cp test.txt minio-cluster/test-bucket/
# 列出文件
mc ls minio-cluster/test-bucket/
# 停止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机器端点:
/iflytek/soft/minio/data1/iflytek/soft/minio/data2http://172.16.0.68:9000/iflytek/soft/minio/data1http://172.16.0.68:9000/iflytek/soft/minio/data268机器端点(与67机器完全一致):
http://172.16.0.67:9000/iflytek/soft/minio/data1http://172.16.0.67:9000/iflytek/soft/minio/data2/iflytek/soft/minio/data1/iflytek/soft/minio/data2# 启动集群(两台机器同时执行)
./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. 检查网络连通性
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. 确保所有节点同时启动
症状: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
症状:两个节点文件数量不一致
解决方法:
# 1. 检查集群健康状态
mc admin heal minio-cluster --dry-run
# 2. 执行修复
mc admin heal minio-cluster
# 3. 检查节点状态
mc admin info minio-cluster
📝 文档版本: v1.0
🔄 最后更新: 2025-01-27
✅ 适用场景: 67/68双机MinIO集群配置