centos

minio在centos上的高可用性安装方案

小樊
37
2025-11-09 21:52:20
栏目: 智能运维

MinIO在CentOS上的高可用性安装方案

一、高可用性部署前提

MinIO的高可用性需通过多节点分布式集群实现,官方推荐奇数个节点(3或5个)以避免脑裂问题。核心依赖技术为纠删码(Erasure Coding),可在节点或磁盘故障时保证数据可用性(如EC:4配置可容忍4块驱动器故障)。

二、环境准备

1. 节点规划

2. 系统优化

3. 依赖安装

在所有节点安装wgetunzip等基础工具:

sudo yum install -y wget unzip

三、MinIO安装与配置

1. 下载并安装MinIO

在所有节点执行以下命令,下载MinIO二进制文件并赋予执行权限:

wget https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x minio
sudo mv minio /usr/local/bin/

2. 创建数据目录

在每节点创建存储目录并设置权限(以/data/minio_data1/data/minio_data2为例):

sudo mkdir -p /data/minio_data{1,2}
sudo chown -R minio:minio /data/minio_data{1,2}

3. 配置Systemd服务(开机自启)

创建/usr/lib/systemd/system/minio.service文件,内容如下(替换为实际节点IP和存储路径):

[Unit]
Description=MinIO service
After=network.target

[Service]
WorkingDirectory=/data/minio/run/
ExecStart=/usr/local/bin/minio server --address ":9000" --console-address ":9001" \
  http://minio1/data/minio_data1 http://minio1/data/minio_data2 \
  http://minio2/data/minio_data1 http://minio2/data/minio_data2 \
  http://minio3/data/minio_data1 http://minio3/data/minio_data2
Restart=on-failure
User=minio
Group=minio

[Install]
WantedBy=multi-user.target

关键参数说明

启动服务并设置开机自启:

sudo systemctl daemon-reload
sudo systemctl enable --now minio

四、集群验证

1. 使用mc工具连接集群

下载并配置mc(MinIO Client):

wget https://dl.min.io/client/mc/release/linux-amd64/mc
chmod +x mc
sudo mv mc /usr/local/bin/

# 添加集群别名(以minio1为例)
mc alias set myminio http://minio1:9000 minio minio123

2. 检查集群状态

mc admin info myminio

若输出显示**集群状态为"OK"**且包含所有节点信息,则说明集群部署成功。

3. 测试数据写入与同步

创建Bucket并上传文件,验证数据是否同步到所有节点:

# 创建Bucket
mc mb myminio/mybucket

# 上传文件
mc cp /path/to/local/file.txt myminio/mybucket/

# 查看文件分布(需登录控制台或使用API)
mc ls myminio/mybucket

五、高可用增强配置

1. 负载均衡(可选)

使用NginxHAProxy作为反向代理,分发请求到集群节点,提高可用性。以Nginx为例:

sudo yum install -y nginx

编辑/etc/nginx/nginx.conf,添加以下内容:

stream {
    upstream minio_cluster {
        server minio1:9000;
        server minio2:9000;
        server minio3:9000;
    }

    server {
        listen 9000;
        proxy_pass minio_cluster;
    }
}

重启Nginx:

sudo systemctl restart nginx

之后可通过http://nginx-ip:9000访问集群。

2. 监控与告警

六、注意事项

0
看了该问题的人还看了