在 Debian 上实现 MinIO 高可用
一、总体架构与前提
二、Debian 节点准备
apt update && apt upgrade -y && apt install -y wget curl systemd ufw xfsprogsuseradd -r minio-user -s /sbin/nologinfor d in b c d e; do
mkfs.xfs /dev/sd$d
mkdir -p /mnt/disk$d
echo "/dev/sd$d /mnt/disk$d xfs defaults,noatime 0 0" >> /etc/fstab
done
mount -a
for d in b c d e; do
mkdir -p /mnt/disk$d/minio
chown -R minio-user:minio-user /mnt/disk$d/minio
done
ufw allow 9000/tcp 与 ufw allow 9001/tcp,并确保节点间 9000/9001 互通(可用 telnet 或 nc 测试)。apt install -y ntp,确保集群节点时间一致(偏差 ≤ 3 秒)。三、部署分布式 MinIO(systemd 方式)
wget https://dl.min.io/server/minio/release/linux-amd64/minio -O /usr/local/bin/minio
chmod +x /usr/local/bin/minio
MINIO_ROOT_USER=minioadmin
MINIO_ROOT_PASSWORD=YourStrongPassword
MINIO_VOLUMES="http://node1/mnt/diskb/minio http://node1/mnt/diskc/minio http://node1/mnt/diskd/minio http://node1/mnt/diske/minio \
http://node2/mnt/diskb/minio http://node2/mnt/diskc/minio http://node2/mnt/diskd/minio http://node2/mnt/diske/minio \
http://node3/mnt/diskb/minio http://node3/mnt/diskc/minio http://node3/mnt/diskd/minio http://node3/mnt/diske/minio \
http://node4/mnt/diskb/minio http://node4/mnt/diskc/minio http://node4/mnt/diskd/minio http://node4/mnt/diske/minio"
MINIO_SERVER_URL="http://your-vip-or-lb:9000"
# 可选:控制台 HTTPS
# MINIO_OPTS="--console-address :9001 --certs-dir /etc/minio/certs"
说明:
MINIO_ROOT_USER 与 MINIO_ROOT_PASSWORD,以便相互建立连接。[Unit]
Description=MinIO
Documentation=https://min.io/docs/minio/linux/operations/install-deploy-manage/deploy-minio-multi-node-multi-drive.html
After=network-online.target
Wants=network-online.target
[Service]
Type=notify
User=minio-user
Group=minio-user
EnvironmentFile=/etc/default/minio
ExecStart=/usr/local/bin/minio server $MINIO_VOLUMES $MINIO_OPTS
Restart=always
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl enable --now minio
journalctl -u minio -f
http://your-vip-or-lb:9000http://your-vip-or-lb:9001mc 中查看集群状态,确认 4 节点/16 驱动器均在线。四、高可用与运维要点
MINIO_OPTS 中指定 --certs-dir /etc/minio/certs;或采用 Let’s Encrypt 自动签发证书。mc mirror /local/path myminio/bucket;跨公网可限速:mc mirror --limit-upload 100MB …,并在低峰期分批执行。telnet nodeX 9000)、防火墙、磁盘挂载与权限;再查看 journalctl -u minio 与控制台事件。ntpq -p 或 chronyc tracking 检查,必要时统一 NTP 源并校准至 ≤ 3 秒 偏差。五、扩展与替代方案