MinIO集群配置指南(基于启动脚本).md 8.4 KB

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

📚 相关文档


🎯 配置总结

集群架构

  • 节点数量: 4节点(67机器2个 + 68机器2个)
  • 高可用性: 支持1个节点故障
  • 数据冗余: 使用纠删码技术,自动数据冗余

配置要点

  1. ✅ 同时启动:所有节点必须同时启动
  2. ✅ 端点一致:所有节点使用相同的端点列表
  3. ✅ 网络互通:确保两台机器网络互通
  4. ✅ 端口开放:确保9000和9001端口可访问

📝 文档版本: v1.0
🔄 最后更新: 2025-01-27
✅ 适用场景: 67/68双机MinIO集群配置