系统更新与依赖安装
更新系统包并安装必要工具,确保后续操作顺利:
sudo yum update -y && sudo yum install -y wget curl unzip
硬件要求
MinIO性能高度依赖硬件,建议配置:
sudo tee /etc/yum.repos.d/minio.repo << EOF
[minio]
name=MinIO Repository
baseurl=https://dl.min.io/server/minio/release/linux/centos/7/\$basearch/
enabled=1
gpgcheck=1
gpgkey=https://dl.min.io/server/minio/release/linux/centos/7/\$basearch/RPM-GPG-KEY-minio
EOF
sudo yum install minio -y
sudo systemctl start minio && sudo systemctl enable minio
docker pull minio/minio
docker run -d --name minio-server \
-p 9000:9000 -p 9001:9001 \
-e MINIO_ROOT_USER=admin -e MINIO_ROOT_PASSWORD=your_strong_password \
-v /mnt/data:/data \
minio/minio server /data --console-address ":9001"
注:
/mnt/data需替换为实际数据目录,your_strong_password建议设置为12位以上复杂密码。
编辑/etc/systemd/system/minio.service文件,添加以下内容(替换数据目录与访问密钥):
[Unit]
Description=MinIO Server
Wants=network-online.target
After=network-online.target
[Service]
User=minio
Group=minio
WorkingDirectory=/mnt/data
EnvironmentFile=/etc/default/minio
ExecStart=/usr/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 restart minio
/etc/default/minio:MINIO_BROKER_THREADS=16 # 并发处理线程数(根据CPU核心数调整)
MINIO_REQUESTS_KEEPALIVE=300s # 保持活动连接时间
--no-compress # 关闭压缩(适用于高吞吐场景,如视频存储)
/etc/default/minio:MINIO_LOG_LEVEL=info # 生产环境建议使用info或warn
minio server /data1 /data2 /data3 /data4
设置强访问密钥
避免使用默认的minioadmin,通过环境变量设置复杂密钥:
export MINIO_ROOT_USER=admin
export MINIO_ROOT_PASSWORD=YourStrongPassword@123
./minio server /mnt/data
配置SSL/TLS加密
使用Let’s Encrypt获取免费证书,配置MinIO使用HTTPS:
sudo yum install -y certbot python3-certbot-nginx
sudo certbot certonly --standalone -d yourdomain.com
启动命令添加证书路径:
minio server --certs-dir /etc/letsencrypt/live/yourdomain.com /mnt/data
配置防火墙
开放MinIO端口(默认9000为API,9001为控制台):
sudo firewall-cmd --permanent --zone=public --add-port=9000/tcp
sudo firewall-cmd --permanent --zone=public --add-port=9001/tcp
sudo firewall-cmd --reload
禁用IPv6(可选)
若无需IPv6,可在/etc/sysctl.conf中添加:
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
sudo sysctl -p
使用Prometheus+Grafana监控
部署MinIO Exporter采集指标,通过Grafana展示集群状态(如CPU、内存、磁盘I/O、请求延迟)。
日志管理
使用logrotate定期轮转日志,避免日志文件过大:
sudo vim /etc/logrotate.d/minio
添加以下内容:
/mnt/data/*.log {
daily
rotate 7
compress
missingok
notifempty
}
定期备份
使用mc(MinIO Client)工具将数据备份到异地或其他存储介质:
wget https://dl.min.io/client/mc/release/linux-amd64/mc
chmod +x mc
./mc alias set myminio http://localhost:9000 admin YourStrongPassword@123
./mc mirror /mnt/data myminio/backup-data