8.0 KiB
8.0 KiB
MinIO集群启动步骤说明
📋 快速回答
是的,基本正确! 但需要注意以下几点:
- ✅ 在67机器上执行
67 机器的minio-cluster-start.sh - ✅ 在68机器上执行
68 机器的minio-cluster-start.sh - ⚠️ 必须同时启动(时间差不超过几秒)
- ⚠️ 启动前检查:网络连通性、数据目录、停止旧服务
🚀 完整启动步骤
第一步:前置检查(必须)
1.1 检查网络连通性
在67机器上:
# 测试到68机器的连通性
ping 172.16.0.68
telnet 172.16.0.68 9000 # 应该能连接
在68机器上:
# 测试到67机器的连通性
ping 172.16.0.67
telnet 172.16.0.67 9000 # 应该能连接
1.2 检查数据目录
在67机器上:
# 检查数据目录是否存在
ls -ld /iflytek/soft/minio/data1
ls -ld /iflytek/soft/minio/data2
# 如果不存在,创建目录
mkdir -p /iflytek/soft/minio/data1
mkdir -p /iflytek/soft/minio/data2
chmod 755 /iflytek/soft/minio/data1 /iflytek/soft/minio/data2
在68机器上:
# 检查数据目录是否存在
ls -ld /iflytek/soft/minio/data1
ls -ld /iflytek/soft/minio/data2
# 如果不存在,创建目录
mkdir -p /iflytek/soft/minio/data1
mkdir -p /iflytek/soft/minio/data2
chmod 755 /iflytek/soft/minio/data1 /iflytek/soft/minio/data2
1.3 停止现有MinIO服务
在67机器上:
# 查找并停止现有MinIO进程
ps aux | grep minio
pkill -f 'minio server' || true
# 如果存在PID文件,删除
rm -f /iflytek/soft/minio/minio.pid
在68机器上:
# 查找并停止现有MinIO进程
ps aux | grep minio
pkill -f 'minio server' || true
# 如果存在PID文件,删除
rm -f /iflytek/soft/minio/minio.pid
第二步:部署启动脚本
2.1 在67机器上部署脚本
# 复制集群启动脚本到MinIO目录
cp "67 机器的minio-cluster-start.sh" /iflytek/soft/minio/minio-cluster-start.sh
# 赋予执行权限
chmod +x /iflytek/soft/minio/minio-cluster-start.sh
# 验证脚本内容
cat /iflytek/soft/minio/minio-cluster-start.sh | grep CLUSTER_ENDPOINTS
2.2 在68机器上部署脚本
# 复制集群启动脚本到MinIO目录
cp "68 机器的minio-cluster-start.sh" /iflytek/soft/minio/minio-cluster-start.sh
# 赋予执行权限
chmod +x /iflytek/soft/minio/minio-cluster-start.sh
# 验证脚本内容
cat /iflytek/soft/minio/minio-cluster-start.sh | grep CLUSTER_ENDPOINTS
第三步:同时启动集群(关键步骤)
⚠️ 重要:MinIO集群要求所有节点同时启动(时间差不超过几秒)。
方法1:使用快速启动脚本(推荐)
如果您有SSH免密登录配置,可以使用统一启动脚本:
# 在任意一台机器上执行
cd /path/to/部署文档/生产环境双机部署方案/部署脚本/
./start-minio-cluster.sh
方法2:手动同时启动(推荐)
步骤:
- 打开两个SSH终端窗口(一个连接67,一个连接68)
- 在两个终端中同时执行启动命令
在67机器上:
cd /iflytek/soft/minio
./minio-cluster-start.sh
在68机器上(几乎同时执行):
cd /iflytek/soft/minio
./minio-cluster-start.sh
时间差要求:两个启动命令的执行时间差不超过10秒。
方法3:使用后台启动(备选)
如果无法同时操作,可以先启动67机器,然后在10秒内启动68机器:
# 在67机器上启动
cd /iflytek/soft/minio
./minio-cluster-start.sh
# 立即(10秒内)在68机器上启动
cd /iflytek/soft/minio
./minio-cluster-start.sh
第四步:验证集群状态
4.1 检查进程状态
在67机器上:
# 检查MinIO进程是否运行
ps aux | grep minio | grep -v grep
# 检查端口是否监听
netstat -tlnp | grep 9000
netstat -tlnp | grep 9001
# 检查日志
tail -f /iflytek/soft/minio/logs/minio.log
在68机器上:
# 检查MinIO进程是否运行
ps aux | grep minio | grep -v grep
# 检查端口是否监听
netstat -tlnp | grep 9000
netstat -tlnp | grep 9001
# 检查日志
tail -f /iflytek/soft/minio/logs/minio.log
4.2 使用MinIO客户端验证
# 安装MinIO客户端(如果未安装)
wget https://dl.min.io/client/mc/release/linux-amd64/mc
chmod +x mc
sudo mv mc /usr/local/bin/
# 配置集群别名(连接到67机器)
mc alias set minio-cluster http://172.16.0.67:9000 minioadmin minioadmin@123456
# 查看集群信息
mc admin info minio-cluster
# 查看集群节点状态
mc admin service status minio-cluster
正常输出示例:
● 172.16.0.67:9000
Uptime: 1h
Version: RELEASE.2025-04-22T22-12-26Z
Drives: 2/2 OK
...
● 172.16.0.68:9000
Uptime: 1h
Version: RELEASE.2025-04-22T22-12-26Z
Drives: 2/2 OK
...
4.3 测试集群功能
# 创建测试存储桶
mc mb minio-cluster/test-bucket
# 上传测试文件
echo "test cluster" > test.txt
mc cp test.txt minio-cluster/test-bucket/
# 列出文件
mc ls minio-cluster/test-bucket/
# 从68机器读取(验证同步)
mc alias set minio68 http://172.16.0.68:9000 minioadmin minioadmin@123456
mc cat minio68/test-bucket/test.txt
⚠️ 常见问题
Q1: 启动后集群无法连接
可能原因:
- 网络不通
- 防火墙未开放端口
- 启动时间差过大
解决方法:
# 检查网络
ping 172.16.0.67
ping 172.16.0.68
# 检查防火墙
sudo firewall-cmd --list-ports # CentOS/RHEL
sudo ufw status # Ubuntu
# 检查日志
tail -f /iflytek/soft/minio/logs/minio.log
Q2: 启动后只有部分节点在线
可能原因:
- 端点配置不一致
- 数据目录路径不一致
- 启动时间差过大
解决方法:
# 检查端点配置(两个脚本的CLUSTER_ENDPOINTS必须完全一致)
cat /iflytek/soft/minio/minio-cluster-start.sh | grep CLUSTER_ENDPOINTS
# 检查数据目录路径
ls -ld /iflytek/soft/minio/data1
ls -ld /iflytek/soft/minio/data2
# 重新同时启动
pkill -f 'minio server'
# 然后同时执行启动脚本
Q3: 启动后集群状态异常
解决方法:
# 查看集群健康状态
mc admin heal minio-cluster --dry-run
# 修复集群数据
mc admin heal minio-cluster
# 查看详细错误信息
mc admin service status minio-cluster
📊 启动检查清单
启动前检查:
- 67和68机器网络互通
- 防火墙开放9000和9001端口
- 数据目录已创建(67和68机器各2个目录)
- 已停止现有MinIO服务
- 启动脚本已部署到两台机器
- 启动脚本有执行权限
启动时检查:
- 67和68机器同时启动(时间差<10秒)
- 启动后检查进程是否运行
- 启动后检查端口是否监听
- 启动后检查日志是否有错误
启动后验证:
- 使用mc admin info查看集群信息
- 使用mc admin service status查看节点状态
- 测试上传文件功能
- 测试从不同节点读取文件
🎯 总结
启动流程:
- ✅ 前置检查(网络、目录、停止旧服务)
- ✅ 部署启动脚本到两台机器
- ✅ 同时启动两台机器的MinIO服务(时间差<10秒)
- ✅ 验证集群状态和功能
关键点:
- ⚠️ 必须同时启动(时间差不超过10秒)
- ⚠️ 端点配置必须完全一致(包括顺序)
- ⚠️ 数据目录路径必须完全一致
📚 相关文档
- MinIO集群配置指南(基于启动脚本).md - 完整配置文档
- MinIO集群快速配置指南.md - 快速配置步骤
- MinIO集群文件同步机制说明.md - 同步机制说明
- start-minio-cluster.sh - 统一启动脚本
📝 文档版本: v1.0
🔄 最后更新: 2025-01-27
✅ 适用场景: MinIO集群启动步骤说明