Minio是一款高性能的分布式对象存储服务,采用Apache License v2.0开源协议,兼容Amazon S3云存储服务接口。它特别适合存储非结构化数据,如图片、视频、日志文件等。与传统文件系统不同,Minio采用对象存储架构,每个对象包含数据本身、元数据和唯一标识符,更适合海量数据的存储和管理。
选择RPM方式安装Minio有以下几个显著优势:
在开始安装前,需要确认系统满足以下要求:
可以通过以下命令检查系统信息:
bash复制cat /etc/redhat-release # 查看系统版本
uname -m # 查看系统架构
free -h # 查看内存情况
df -h # 查看磁盘空间
Minio服务默认使用9000端口,如果系统启用了防火墙,需要开放该端口:
bash复制sudo firewall-cmd --zone=public --add-port=9000/tcp --permanent
sudo firewall-cmd --reload
对于生产环境,建议同时配置SELinux策略或将其设置为permissive模式:
bash复制sudo setenforce 0
sudo sed -i 's/^SELINUX=enforcing/SELINUX=permissive/' /etc/selinux/config
官方推荐从Minio的GitHub仓库下载最新的RPM包。可以使用wget直接下载:
bash复制wget https://dl.min.io/server/minio/release/linux-amd64/minio-20230622180639.0.0.x86_64.rpm -O minio.rpm
注意:版本号会随时间变化,建议访问https://min.io/download#/linux获取最新下载链接
使用yum或rpm命令安装下载的RPM包:
bash复制sudo yum install minio.rpm
或者
bash复制sudo rpm -ivh minio.rpm
安装完成后,Minio会创建以下目录结构:
/usr/local/bin/minio:Minio可执行文件/etc/default/minio:环境变量配置文件/etc/systemd/system/minio.service:systemd服务单元文件/var/lib/minio:默认数据存储目录/var/log/minio:日志目录编辑环境变量配置文件:
bash复制sudo vi /etc/default/minio
设置以下关键参数:
bash复制MINIO_VOLUMES="/var/lib/minio/data" # 数据存储路径
MINIO_OPTS="--address :9000" # 监听地址和端口
MINIO_ROOT_USER="admin" # 管理员用户名
MINIO_ROOT_PASSWORD="yourpassword" # 管理员密码
重要提示:生产环境务必使用复杂密码,并确保密码安全!
重新加载systemd配置并启动服务:
bash复制sudo systemctl daemon-reload
sudo systemctl enable minio
sudo systemctl start minio
检查服务状态:
bash复制sudo systemctl status minio
如果一切正常,应该能看到类似下面的输出:
code复制● minio.service - MinIO
Loaded: loaded (/etc/systemd/system/minio.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2023-06-28 14:30:45 CST; 10s ago
Minio提供了一个基于Web的管理界面,默认可以通过以下地址访问:
code复制http://<服务器IP>:9000
使用配置文件中设置的管理员用户名和密码登录。首次登录后,建议立即修改默认密码。
在Web控制台中:
Minio提供了mc(Minio Client)命令行工具,可以更方便地管理Minio服务。安装方法:
bash复制wget https://dl.min.io/client/mc/release/linux-amd64/mc
chmod +x mc
sudo mv mc /usr/local/bin/
配置mc连接到本地Minio服务:
bash复制mc alias set myminio http://localhost:9000 admin yourpassword
基本使用示例:
bash复制mc ls myminio # 列出所有存储桶
mc mb myminio/new-bucket # 创建新存储桶
mc cp file.txt myminio/my-bucket # 上传文件
对于生产环境,建议使用独立的磁盘或分区作为数据目录:
bash复制sudo mkfs.xfs /dev/sdb
bash复制sudo mkdir /data
sudo mount /dev/sdb /data
bash复制echo '/dev/sdb /data xfs defaults 0 0' | sudo tee -a /etc/fstab
bash复制sudo sed -i 's|MINIO_VOLUMES=.*|MINIO_VOLUMES="/data"|' /etc/default/minio
在/etc/default/minio中添加以下参数:
bash复制MINIO_OPTS="--address :9000 --console-address :9001"
对于高并发场景,可以调整以下内核参数:
bash复制echo 'net.core.somaxconn = 1024' | sudo tee -a /etc/sysctl.conf
echo 'vm.overcommit_memory = 1' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
Minio默认日志位置在/var/log/minio,可以通过以下方式管理日志:
bash复制sudo vi /etc/logrotate.d/minio
添加以下内容:
code复制/var/log/minio/*.log {
daily
rotate 7
compress
delaycompress
missingok
notifempty
create 640 minio minio
sharedscripts
postrotate
systemctl restart minio >/dev/null 2>&1 || true
endscript
}
如果systemctl status minio显示服务未运行:
bash复制journalctl -u minio -f
bash复制sudo chown -R minio:minio /var/lib/minio
检查步骤:
bash复制sudo systemctl status minio
bash复制sudo firewall-cmd --list-ports
bash复制curl http://localhost:9000
可能原因及解决方案:
为Minio配置HTTPS访问:
bash复制MINIO_OPTS="--address :9000 --certs-dir /etc/minio/certs"
建议的安全实践:
配置基本监控:
bash复制MINIO_OPTS="$MINIO_OPTS --prometheus-job-id minio-instance-1"
bash复制curl -I http://localhost:9000/minio/health/live
Minio支持多种备份方式:
bash复制mc mirror myminio/mybucket backupmyminio/backupbucket
bash复制mc admin config export myminio > minio-backup-config.json
恢复步骤:
bash复制mc admin config import myminio < minio-backup-config.json
bash复制mc mirror backupmyminio/backupbucket myminio/mybucket
启用存储桶版本控制可以防止意外删除:
bash复制mc version enable myminio/mybucket
升级步骤:
bash复制sudo systemctl stop minio
bash复制sudo systemctl start minio
建议的维护任务:
如果需要卸载Minio:
bash复制sudo systemctl stop minio
sudo systemctl disable minio
bash复制sudo yum remove minio
bash复制sudo rm -rf /var/lib/minio /var/log/minio /etc/default/minio