CentOS 环境下 MinIO 故障排查手册
一 快速定位流程
systemctl status minio、systemctl start minio、systemctl is-enabled miniojournalctl -u minio -n 50 --no-pager、journalctl -n 100 --no-pager | grep -i miniofree -h、df -h、du -sh <数据目录>、uptime、top -bn1 | head -20ps aux | grep minio、ss -tlnp | grep :9000、ss -tlnp | grep :9001cat /etc/default/minio、cat /usr/lib/systemd/system/minio.service二 常见故障与修复
ExecStartPre 报错 “Variable MINIO_VOLUMES not set in /etc/default/minio” 或状态码 217/USER。/etc/default/minio 中设置:MINIO_VOLUMES=/data、MINIO_ROOT_USER=admin、MINIO_ROOT_PASSWORD=StrongPass!、MINIO_OPTS="--console-address :9001"EnvironmentFile=-/etc/default/minioUser=minio 对应的系统用户存在,或改为已存在用户,并赋权数据目录systemctl daemon-reload && systemctl restart miniojournalctl -u minio -l。ss -tlnp | grep :9000 或 lsof -i :9000MINIO_OPTS 或 minio server 命令中变更)。firewall-cmd --permanent --zone=public --add-port=9000/tcp --permanent、firewall-cmd --permanent --zone=public --add-port=9001/tcp --permanent、firewall-cmd --reloadsetenforce 0 验证;长期方案为配置正确的 SELinux 策略或设置为 permissive(生产谨慎)。df -h、du -sh <数据目录>,清理无用文件dd if=/dev/zero of=/swapfile bs=1M count=2048 && chmod 600 /swapfile && mkswap /swapfile && swapon /swapfilefree -h、journalctl | grep -i 'killed process'。mkdir -p /datachown -R minio:minio /data && chmod -R 755 /dataUser=root 且目录对 root 可写。三 配置与网络验证
EnvironmentFile=-/etc/default/minio、ExecStart=/usr/local/bin/minio server $MINIO_OPTS $MINIO_VOLUMES、User=minio、Group=minio、Restart=always、LimitNOFILE=65536systemctl daemon-reloadMINIO_ROOT_USER=adminMINIO_ROOT_PASSWORD=StrongPass!MINIO_VOLUMES=/dataMINIO_OPTS="--console-address :9001"curl -I http://127.0.0.1:9000、curl -I http://127.0.0.1:9001curl -I http://<服务器IP>:9000、ss -tlnp | grep :9000四 Docker 部署的排查要点
docker run -p 9000:9000 -p 9001:9001 --name minio1 -v /mnt/data:/data -v /mnt/config:/root/.minio minio/minio server /data --console-address ":9001"-e 设置 MINIO_ROOT_USER、MINIO_ROOT_PASSWORD,使用 docker logs -f minio1 查看容器日志。五 高效收集信息用于进一步支持
echo "=== systemctl status ==="; systemctl status minio -lecho "=== journalctl -u minio -n 200 ==="; journalctl -u minio -n 200 --no-pagerecho "=== ss -tlnp | grep -E '9000|9001' ==="; ss -tlnp | grep -E '9000|9001'echo "=== free -h / df -h / du -sh /data ==="; free -h; df -h; du -sh /data 2>/dev/null || echo "/data not exist"echo "=== ps aux | grep minio ==="; ps aux | grep minioecho "=== firewall-cmd --list-all ==="; firewall-cmd --list-all 2>/dev/null || echo "firewalld not installed"echo "=== /etc/default/minio ==="; cat /etc/default/minio 2>/dev/null || echo "Not found"echo "=== /usr/lib/systemd/system/minio.service ==="; cat /usr/lib/systemd/system/minio.service 2>/dev/null || echo "Not found"