Files
2025-11-27 00:02:01 +08:00

8.0 KiB
Raw Permalink Blame History

MinIO集群启动步骤说明

📋 快速回答

是的,基本正确! 但需要注意以下几点:

  1. ✅ 在67机器上执行 67 机器的minio-cluster-start.sh
  2. ✅ 在68机器上执行 68 机器的minio-cluster-start.sh
  3. ⚠️ 必须同时启动(时间差不超过几秒)
  4. ⚠️ 启动前检查:网络连通性、数据目录、停止旧服务

🚀 完整启动步骤

第一步:前置检查(必须)

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:手动同时启动(推荐)

步骤:

  1. 打开两个SSH终端窗口(一个连接67,一个连接68)
  2. 在两个终端中同时执行启动命令

在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: 启动后集群无法连接

可能原因:

  1. 网络不通
  2. 防火墙未开放端口
  3. 启动时间差过大

解决方法:

# 检查网络
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: 启动后只有部分节点在线

可能原因:

  1. 端点配置不一致
  2. 数据目录路径不一致
  3. 启动时间差过大

解决方法:

# 检查端点配置(两个脚本的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查看节点状态
  • 测试上传文件功能
  • 测试从不同节点读取文件

🎯 总结

启动流程:

  1. ✅ 前置检查(网络、目录、停止旧服务)
  2. ✅ 部署启动脚本到两台机器
  3. ✅ 同时启动两台机器的MinIO服务(时间差<10秒)
  4. ✅ 验证集群状态和功能

关键点:

  • ⚠️ 必须同时启动(时间差不超过10秒)
  • ⚠️ 端点配置必须完全一致(包括顺序)
  • ⚠️ 数据目录路径必须完全一致

📚 相关文档


📝 文档版本: v1.0
🔄 最后更新: 2025-01-27
✅ 适用场景: MinIO集群启动步骤说明