温馨提示×

MinIO在Linux上的集群搭建方法是什么

小樊
36
2025-12-10 15:53:06
栏目: 智能运维

Linux 上搭建 MinIO 分布式集群的实操步骤

一 架构与前置条件

  • 架构要点:MinIO 分布式模式通过把多个节点的本地磁盘聚合成一个“共享”命名空间对外提供 S3 兼容 的对象存储服务;各节点需提供各自的数据目录,MinIO 负责在集群内做数据分布与冗余。
  • 节点与磁盘:建议至少准备 4 台 Linux 服务器(生产更稳妥),每台至少 2 块磁盘(系统盘 + 数据盘),单盘容量建议 ≥1TB,服务器间网络往返时延 < 10ms 更佳。
  • 系统与账号:操作系统可选 CentOS 7.x/Ubuntu 16.04+;为安全起见创建专用系统用户(如 minio)运行进程;所有节点启用 NTP 时间同步。
  • 网络与端口:开放对象 API 端口 9000/TCP(S3)和管理控制台端口 9001/TCP;如经负载均衡对外,还需开放对应 LB 端口。

二 安装与目录准备

  • 下载二进制(以 x86_64 为例,其他架构替换为对应链接):
    • wget https://dl.min.io/server/minio/release/linux-amd64/minio
    • chmod +x minio && mv minio /usr/local/bin/
  • 创建系统用户与目录(所有节点一致):
    • groupadd --system minio && useradd -r -g minio -s /sbin/nologin minio
    • mkdir -p /data/minio /var/log/minio
    • chown -R minio:minio /data/minio /var/log/minio
  • 说明:数据目录请使用本地磁盘路径,避免使用 NFS 等共享存储参与数据盘(共享盘会破坏数据放置与冗余假设)。

三 配置并启动集群

  • 方式 A 环境变量方式(推荐,便于 systemd 管理)
    • 在所有节点设置统一凭证(示例):
      • export MINIO_ROOT_USER=admin
      • export MINIO_ROOT_PASSWORD=StrongPassw0rd!
    • 在“每个节点”的启动环境中声明集群拓扑(示例为 4 节点,每节点 2 盘):
      • 节点1:export MINIO_VOLUMES=“http://10.0.0.11/data/minio http://10.0.0.11/data/minio2 http://10.0.0.12/data/minio http://10.0.0.12/data/minio2 http://10.0.0.13/data/minio http://10.0.0.13/data/minio2 http://10.0.0.14/data/minio http://10.0.0.14/data/minio2”
      • 节点2:export MINIO_VOLUMES=“http://10.0.0.11/data/minio http://10.0.0.11/data/minio2 http://10.0.0.12/data/minio http://10.0.0.12/data/minio2 http://10.0.0.13/data/minio http://10.0.0.13/data/minio2 http://10.0.0.14/data/minio http://10.0.0.14/data/minio2”
      • 节点3、节点4:与上面相同(所有节点给出一致的卷列表)
    • 启动命令(示例,控制台端口 9001):
      • minio server $MINIO_VOLUMES --console-address “:9001”
  • 方式 B 命令行直传卷列表(等价)
    • 节点1:minio server http://10.0.0.{11…14}/data/minio http://10.0.0.{11…14}/data/minio2 --console-address “:9001”
    • 节点2/3/4:与节点1相同(所有节点给出一致的卷列表)
  • 说明:上述两种方式等价;关键是“每个节点都使用相同的卷 URL 列表”,MinIO 会自动组成集群并进行数据分布与纠删码/副本放置。

四 以 systemd 托管与开机自启

  • 创建服务文件 /etc/systemd/system/minio.service(示例):
    • [Unit]
      • Description=MinIO
      • After=network.target
    • [Service]
      • User=minio
      • Group=minio
      • Environment=“MINIO_ROOT_USER=admin”
      • Environment=“MINIO_ROOT_PASSWORD=StrongPassw0rd!”
      • ExecStart=/usr/local/bin/minio server $MINIO_VOLUMES --console-address “:9001”
      • Restart=on-failure
      • RestartSec=5
      • StandardOutput=/var/log/minio/minio.log
      • StandardError=/var/log/minio/minio-error.log
    • [Install]
      • WantedBy=multi-user.target
  • 启用与启动:
    • systemctl daemon-reload
    • systemctl enable --now minio
    • systemctl status minio
  • 提示:如需自定义 API 端口,可在 ExecStart 中增加 –address “:9029” 等参数。

五 验证与对外访问

  • 控制台与 API:
    • 浏览器访问任一节点 http://<节点IP>:9001 登录控制台;对象 API 使用 http://<节点IP>:9000
  • 健康检查与集群信息:
    • mc alias set myminio http://<任一节点IP>:9000 $MINIO_ROOT_USER $MINIO_ROOT_PASSWORD
    • mc admin info myminio(查看节点、磁盘与健康状态)
  • 负载均衡(可选,生产推荐):
    • 使用 Nginx/HAProxy9000/9001 做四层/七层转发,对外暴露统一域名或 VIP;示例 Nginx upstream 可均衡后端多个节点的 9000 端口。
  • 防火墙与云安全组:
    • 开放 9000/TCP、9001/TCP(以及 LB 端口);云上需配置安全组入站规则。

0