MinIO 在 CentOS 上的集群配置指南

一 规划与准备
二 安装与目录准备
sudo useradd -r -s /sbin/nologin miniosudo mkdir -p /data/minio/data /opt/minio/bin /etc/miniosudo chown -R minio:minio /data/minio /opt/minio /etc/miniosudo -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/miniosudo ln -s /opt/minio/bin/minio /usr/local/bin/minio(可选)。三 集群部署与 systemd 服务
方式 A 环境变量文件(推荐,便于集中管理)
sudo vim /etc/default/minio内容示例:MINIO_ROOT_USER=minioadminMINIO_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"sudo vim /usr/lib/systemd/system/minio.service[Unit]Description=MinIODocumentation=https://min.io/docs/minio/linux/index.htmlWants=network-online.targetAfter=network-online.target[Service]Type=notifyUser=minioGroup=minioEnvironmentFile=-/etc/default/minioExecStart=/usr/local/bin/minio server $minio_opts $minio_volumesRestart=alwaysLimitNOFILE=65536TasksMax=infinityTimeoutStopSec=infinitySendSIGKILL=no[Install]WantedBy=multi-user.targetsudo 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 bashexport MINIO_ROOT_USER=minioadminexport 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/datasudo chmod +x /opt/minio/bin/run.shsudo vim /usr/lib/systemd/system/minio.service[Unit]Description=MinIOAfter=network.target[Service]Type=simpleUser=minioGroup=minioWorkingDirectory=/opt/minio/binExecStart=/opt/minio/bin/run.shRestart=on-failureRestartSec=5[Install]WantedBy=multi-user.targetsudo systemctl daemon-reload && sudo systemctl enable --now minio说明:集群启动命令需在每个节点上列出全部节点的数据目录 URL;控制台端口建议使用 9001,对象端口 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;}}五 验证与运维要点
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/hostsjournalctl -u minio -f