Rocky Linux 9.3 上部署 MinIO 集群的完整指南(含多节点配置)
1. 环境准备与基础配置在Rocky Linux 9.3上部署MinIO集群前需要确保系统环境满足基本要求。我建议使用至少4台配置相同的服务器3个存储节点1个仲裁节点每台配备4核CPU及以上8GB内存起步100GB系统盘多块数据盘建议用XFS文件系统稳定的千兆内网连接先在所有节点执行基础环境配置# 更新系统并安装依赖 sudo dnf update -y sudo dnf install -y curl wget lsof xfsprogs # 关闭SELinux生产环境需按需配置 sudo setenforce 0 sudo sed -i s/^SELINUXenforcing/SELINUXpermissive/ /etc/selinux/config # 时间同步集群节点时间必须一致 sudo dnf install -y chrony sudo systemctl enable --now chronyd数据盘建议用XFS格式并挂载到统一路径比如/minio/disk{1..n}。这是我常用的自动化脚本#!/bin/bash DISKS(/dev/sdb /dev/sdc) # 根据实际磁盘修改 for disk in ${DISKS[]}; do sudo mkfs.xfs -f $disk UUID$(blkid -s UUID -o value $disk) DISK_NUM$(echo $disk | grep -o [0-9]\$) MOUNT_POINT/minio/disk$DISK_NUM sudo mkdir -p $MOUNT_POINT echo UUID$UUID $MOUNT_POINT xfs defaults,noatime 0 0 | sudo tee -a /etc/fstab done sudo mount -a sudo chown -R minio:minio /minio2. MinIO多节点集群部署2.1 二进制文件安装在所有节点执行以下命令安装MinIO二进制文件# 下载最新稳定版示例为2023年12月发布的RELEASE.2023-12-06T18-11-18Z wget https://dl.min.io/server/minio/release/linux-amd64/minio -O /usr/local/bin/minio chmod x /usr/local/bin/minio mkdir -p /etc/minio /var/log/minio # 创建专用用户 useradd -r minio -s /sbin/nologin chown minio:minio /etc/minio /var/log/minio2.2 集群配置文件主配置节点通常选择第一个节点创建/etc/default/minio关键参数说明MINIO_ROOT_USERadmin MINIO_ROOT_PASSWORDYourStrongPassword123! MINIO_VOLUMEShttp://node{1...3}/minio/disk{1...4} # 3节点4磁盘示例 MINIO_OPTS--address :9000 --console-address :9001 MINIO_SERVER_URLhttp://minio-cluster.yourdomain.com # 集群访问域名将配置文件同步到所有节点# 使用rsync同步配置 rsync -avz /etc/default/minio node2:/etc/default/ rsync -avz /etc/default/minio node3:/etc/default/2.3 Systemd服务配置所有节点创建/etc/systemd/system/minio.service[Unit] DescriptionMinIO Documentationhttps://min.io/docs/minio/linux/index.html Wantsnetwork-online.target Afternetwork-online.target [Service] Userminio Groupminio EnvironmentFile/etc/default/minio ExecStart/usr/local/bin/minio server $MINIO_OPTS $MINIO_VOLUMES Restartalways LimitNOFILE65536 TimeoutStopSec20 SendSIGKILLno [Install] WantedBymulti-user.target启动集群服务注意顺序# 所有节点执行 systemctl daemon-reload systemctl enable --now minio # 检查集群状态任意节点执行 minio server info3. 高可用与负载均衡配置3.1 Nginx反向代理建议使用Nginx做负载均衡配置示例upstream minio_servers { server node1:9000; server node2:9000; server node3:9000; keepalive 32; } server { listen 80; server_name minio.yourdomain.com; location / { proxy_pass http://minio_servers; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_connect_timeout 300; proxy_http_version 1.1; proxy_set_header Connection ; } }3.2 防火墙规则统一开放必要端口firewall-cmd --permanent --add-port9000/tcp # API端口 firewall-cmd --permanent --add-port9001/tcp # 控制台端口 firewall-cmd --permanent --add-servicehttp firewall-cmd --reload4. 运维监控与优化4.1 监控配置启用Prometheus监控# 在所有MinIO节点配置 mc admin prometheus generate minio将生成的配置加入Prometheus的scrape_configs。推荐监控指标节点在线状态存储空间使用率请求延迟百分位网络吞吐量4.2 性能调优根据实际负载调整内核参数# 提高TCP连接复用 echo net.ipv4.tcp_tw_reuse 1 /etc/sysctl.conf # 增加文件描述符限制 echo minio - nofile 65536 /etc/security/limits.conf # 磁盘调度策略SSD推荐 echo deadline /sys/block/sdb/queue/scheduler4.3 日常维护命令常用运维操作示例# 扩展集群节点 mc admin server add minio-cluster/ http://node4:9000 minio minio123 # 查看集群健康状态 mc admin info minio-cluster/ # 数据均衡操作 mc admin rebalance start minio-cluster/遇到节点故障时的处理流程确认故障节点无法恢复从集群中移除节点mc admin server remove minio-cluster/ http://故障节点:9000准备新节点并加入集群触发数据修复mc admin heal -r minio-cluster/
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2489982.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!