minio在centos上的集群配置指南
导读:MinIO 在 CentOS 上的集群配置指南 一 规划与准备 节点与目录规划:准备至少4 台 CentOS 7/8 服务器,每台挂载至少 2 块磁盘用于数据目录,便于构建 Erasure Code 的分布式存储;示例目录:/data/m...
MinIO 在 CentOS 上的集群配置指南
一 规划与准备
- 节点与目录规划:准备至少4 台 CentOS 7/8 服务器,每台挂载至少 2 块磁盘用于数据目录,便于构建 Erasure Code 的分布式存储;示例目录:/data/minio/data。所有节点需可互通,建议配置 /etc/hosts 或使用内网 DNS。
- 时间同步:安装并启用 NTP/chrony,保证节点间时间误差在毫秒级,避免签名与一致性异常。
- 资源与内核参数:为运行用户(如 minio)设置文件句柄上限,建议 nofile ≥ 65535;检查并优化 ulimit。
- 防火墙与端口:开放对象服务端口 9000/TCP 与管理控制台端口 9001/TCP(或自定义端口),或在内网使用安全组放行。
- 数据目录要求:数据目录必须是空挂载卷,不要使用 / 或 /root 的挂载点,避免元数据与权限风险。
二 安装与目录准备
- 创建系统用户与目录(所有节点执行):
- 创建用户:
sudo useradd -r -s /sbin/nologin minio - 创建目录:
sudo mkdir -p /data/minio/data /opt/minio/bin /etc/minio - 授权:
sudo chown -R minio:minio /data/minio /opt/minio /etc/minio
- 创建用户:
- 下载 MinIO 二进制(所有节点执行):
sudo -u minio wget https://dl.min.io/server/minio/release/linux-amd64/minio -O /opt/minio/bin/miniosudo -u minio chmod +x /opt/minio/bin/minio
- 建议将二进制放入 PATH:
sudo ln -s /opt/minio/bin/minio /usr/local/bin/minio(可选)。
三 集群部署与 systemd 服务
-
方式 A 环境变量文件(推荐,便于集中管理)
- 创建环境文件(所有节点一致或按节点定制):
sudo vim /etc/default/minio
内容示例:
MINIO_ROOT_USER=minioadmin MINIO_ROOT_PASSWORD=StrongPassw0rd! minio_volumes="http://192.168.1.101/data/minio/data http://192.168.1.102/data/minio/data \ http://192.168.1.103/data/minio/data http://192.168.1.104/data/minio/data" minio_opts="--console-address :9001"- 创建 systemd 服务:
sudo vim /usr/lib/systemd/system/minio.service
[Unit] Description=MinIO Documentation=https://min.io/docs/minio/linux/index.html Wants=network-online.target After=network-online.target [Service] Type=notify User=minio Group=minio EnvironmentFile=-/etc/default/minio ExecStart=/usr/local/bin/minio server $minio_opts $minio_volumes Restart=always LimitNOFILE=65536 TasksMax=infinity TimeoutStopSec=infinity SendSIGKILL=no [Install] WantedBy=multi-user.target- 启动与开机自启:
sudo systemctl daemon-reload & & sudo systemctl enable --now minio & & sudo systemctl status minio -l
- 创建环境文件(所有节点一致或按节点定制):
-
方式 B 启动脚本(适合快速验证)
- 创建脚本:
sudo -u minio vim /opt/minio/bin/run.sh
#!/usr/bin/env bash export MINIO_ROOT_USER=minioadmin export MINIO_ROOT_PASSWORD=StrongPassw0rd! /opt/minio/bin/minio server \ --config-dir /etc/minio \ --console-address ":9001" \ http://192.168.1.101/data/minio/data \ http://192.168.1.102/data/minio/data \ http://192.168.1.103/data/minio/data \ http://192.168.1.104/data/minio/data- 赋权:
sudo chmod +x /opt/minio/bin/run.sh - 创建服务:
sudo vim /usr/lib/systemd/system/minio.service
[Unit] Description=MinIO After=network.target [Service] Type=simple User=minio Group=minio WorkingDirectory=/opt/minio/bin ExecStart=/opt/minio/bin/run.sh Restart=on-failure RestartSec=5 [Install] WantedBy=multi-user.target- 启动:
sudo systemctl daemon-reload & & sudo systemctl enable --now minio
说明:集群启动命令需在每个节点上列出全部节点的数据目录 URL;控制台端口建议使用 9001,对象端口 9000。
- 创建脚本:
四 负载均衡与网络配置
- 使用 Nginx 做四层/七层负载均衡(示例为四节点,端口 9000):
upstream minio_servers { server 192.168.1.101:9000 max_fails=2 fail_timeout=30s; server 192.168.1.102:9000 max_fails=2 fail_timeout=30s; server 192.168.1.103:9000 max_fails=2 fail_timeout=30s; server 192.168.1.104:9000 max_fails=2 fail_timeout=30s; } server { listen 80; server_name minio.example.com; location / { proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; client_max_body_size 10G; proxy_buffers 1024 4k; proxy_read_timeout 300s; proxy_next_upstream error timeout http_404; proxy_pass http://minio_servers; } } - 建议为控制台(9001)单独配置虚拟主机或监听,避免与 S3 API 混用。
- 生产环境建议开启 TLS/HTTPS(可使用 certbot 或企业 CA),并在客户端使用 https:// 访问。
五 验证与运维要点
- 控制台与连通性:浏览器访问任一节点的 http://:9001,使用 MINIO_ROOT_USER/PASSWORD 登录;创建 bucket 并上传小文件验证。
- 客户端验证(mc):
- 安装 mc:
wget https://dl.min.io/client/mc/release/linux-amd64/mc & & chmod +x mc & & sudo mv mc /usr/local/bin/ - 添加服务别名:
mc config host add minio http://< LB_IP> :9000 minioadmin 'StrongPassw0rd!' - 查看与测试:
mc ls minio、mc mb minio/test、mc cp /etc/hosts minio/test/hosts
- 安装 mc:
- 日志与排错:
- 服务日志:
journalctl -u minio -f - 控制台/启动日志:如使用脚本输出重定向,查看脚本日志文件(如 minio_server.log)
- 服务日志:
- 常见问题:
- 目录非空或挂载点不合规会导致启动失败;
- 密码复杂度不足会被拒绝;
- 时间不同步会引起认证/校验错误;
- 防火墙未放行 9000/9001 会导致访问异常。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: minio在centos上的集群配置指南
本文地址: https://pptw.com/jishu/778775.html
