MinIO 安装指南 - Linux ARM64
1. 系统要求
- 操作系统:Linux (ARM64架构)
- 内存:至少2GB RAM
- 存储:根据数据存储需求准备足够的磁盘空间
- 网络:确保防火墙开放9000端口(API)和9001端口(控制台)
2. 安装前准备
2.1 创建MinIO用户和组
# 创建minio系统用户(无需登录权限)
sudo groupadd -r minio
sudo useradd -M -r -g minio minio
2.2 创建必要的目录
# 创建数据存储目录
sudo mkdir -p /files/tools/minio/data
sudo chown -R minio:minio /files/tools/minio/data
# 创建配置文件目录
sudo mkdir -p /files/tools/minio
sudo chown -R minio:minio /files/tools/minio
# 创建日志目录
sudo mkdir -p /files/tools/minio/log
sudo chown -R minio:minio /files/tools/minio/log
3. 安装MinIO
由于您已经下载了MinIO二进制文件,我们继续配置:
3.1 配置MinIO二进制文件
# 确保minio二进制文件有执行权限
sudo chmod +x /files/tools/minio/minio
sudo chown minio:minio /files/tools/minio/minio
# 验证安装
/files/tools/minio/minio --version
3.2 如果需要重新下载(可选)
# 下载最新的ARM64版本到MinIO目录
cd /files/tools/minio/
wget https://dl.min.io/server/minio/release/linux-arm64/minio
chmod +x minio
sudo chown minio:minio minio
4. 配置MinIO
4.1 创建环境配置文件
sudo vim /files/tools/minio/minio.conf
添加以下内容:
# MinIO配置文件
# MinIO访问密钥(用户名)- 至少3个字符
MINIO_ROOT_USER="minioadmin"
# MinIO密钥(密码)- 至少8个字符
MINIO_ROOT_PASSWORD="minioadmin123"
# MinIO数据目录
MINIO_VOLUMES="/files/tools/minio/data"
# MinIO监听地址和端口
MINIO_ADDRESS=":9000"
# MinIO控制台地址和端口
MINIO_CONSOLE_ADDRESS=":9001"
# 区域设置(可选)
MINIO_REGION="cn-north-1"
# 启用浏览器访问
MINIO_BROWSER="on"
# 日志配置
MINIO_LOG_DIR="/files/tools/minio/log"
4.2 设置权限
sudo chmod 600 /files/tools/minio/minio.conf
sudo chown minio:minio /files/tools/minio/minio.conf
5. 创建Systemd服务
5.1 创建服务文件
sudo vim /etc/systemd/system/minio.service
添加以下内容:
[Unit]
Description=MinIO Object Storage Server
Documentation=https://docs.min.io
After=network-online.target
Wants=network-online.target
[Service]
Type=notify
WorkingDirectory=/files/tools/minio/data
User=minio
Group=minio
# 环境配置文件
EnvironmentFile=/files/tools/minio/minio.conf
# 启动命令
ExecStart=/files/tools/minio/minio server $MINIO_VOLUMES --address $MINIO_ADDRESS --console-address $MINIO_CONSOLE_ADDRESS
# 重启策略
Restart=on-failure
RestartSec=5
# 系统限制
LimitNOFILE=65536
LimitNPROC=4096
# 安全设置
PrivateTmp=true
ProtectSystem=full
NoNewPrivileges=true
PrivateDevices=true
ProtectHome=true
# 标准输出和错误输出
StandardOutput=journal
StandardError=journal
# 关闭时发送SIGTERM信号
KillSignal=SIGTERM
SendSIGKILL=no
SuccessExitStatus=0
[Install]
WantedBy=multi-user.target
5.2 重新加载systemd配置
sudo systemctl daemon-reload
6. 启动和管理MinIO
6.1 启动MinIO服务
# 启动服务
sudo systemctl start minio
# 设置开机自启动
sudo systemctl enable minio
# 查看服务状态
sudo systemctl status minio
6.2 查看日志
# 查看实时日志
sudo journalctl -u minio -f
# 查看最近的日志
sudo journalctl -u minio -n 100
7. 防火墙配置
7.1 开放端口(如果使用firewalld)
sudo firewall-cmd --permanent --add-port=9000/tcp
sudo firewall-cmd --permanent --add-port=9001/tcp
sudo firewall-cmd --reload
7.2 开放端口(如果使用ufw)
sudo ufw allow 9000/tcp
sudo ufw allow 9001/tcp
sudo ufw reload
7.3 开放端口(如果使用iptables)
# 开放9000和9001端口
sudo iptables -A INPUT -p tcp --dport 9000 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 9001 -j ACCEPT
# 保存iptables规则(根据系统不同选择一种方式)
# 方法1:Ubuntu/Debian
sudo iptables-save > /etc/iptables/rules.v4
# 方法2:CentOS/RHEL
sudo service iptables save
# 方法3:通用方式(需要安装iptables-persistent)
sudo apt-get install iptables-persistent -y
sudo netfilter-persistent save
7.5 如果遇到连接问题
# 检查端口是否开放
sudo netstat -tulnp | grep -E '9000|9001'
# 检查防火墙规则
sudo iptables -L -n --line-numbers | grep -E '9000|9001'
# 临时关闭防火墙测试(不推荐生产环境)
sudo systemctl stop firewalld # firewalld
sudo ufw disable # ufw
sudo iptables -F # iptables
8. 访问MinIO
8.1 访问方式
- API端点: http://服务器IP:9000
- Web控制台: http://服务器IP:9001
8.2 登录凭证
- 用户名:minioadmin(在配置文件中设置的MINIO_ROOT_USER)
- 密码:minioadmin123(在配置文件中设置的MINIO_ROOT_PASSWORD)
9. MinIO客户端工具(mc)安装
9.1 下载并安装mc
# 下载ARM64版本的mc到MinIO目录
cd /files/tools/minio/
wget https://dl.min.io/client/mc/release/linux-arm64/mc
chmod +x mc
sudo chown minio:minio mc
# 验证安装
/files/tools/minio/mc --version
# 创建软链接(可选,方便使用)
sudo ln -s /files/tools/minio/mc /usr/local/bin/mc
9.2 配置mc连接到MinIO
# 添加MinIO服务器配置
mc alias set myminio http://localhost:9000 minioadmin minioadmin123
# 测试连接
mc admin info myminio
10. 常用操作示例
注意:新版Minio以无法通过UI界面修改桶权限,相关操作只能通过mc命令去执行
10.1 创建存储桶
# 使用mc创建存储桶
mc mb myminio/mybucket
# 列出所有存储桶
mc ls myminio
10.2 上传文件
# 上传单个文件
mc cp /path/to/file myminio/mybucket
# 上传整个目录
mc cp --recursive /path/to/directory myminio/mybucket
10.3 设置存储桶策略
# 设置存储桶为公开读取
mc anonymous set public myminio/mybucket
# 设置存储桶为私有
mc anonymous set private myminio/mybucket
11. 性能优化建议
11.1 系统优化
# 增加系统文件描述符限制
echo "* soft nofile 65536" | sudo tee -a /etc/security/limits.conf
echo "* hard nofile 65536" | sudo tee -a /etc/security/limits.conf
# 优化网络参数
sudo sysctl -w net.core.rmem_max=134217728
sudo sysctl -w net.core.wmem_max=134217728
11.2 MinIO配置优化
在/files/tools/minio/minio.conf
中添加:
# 设置并发连接数
MINIO_API_REQUESTS_MAX=1000
# 设置请求超时时间
MINIO_API_REQUESTS_DEADLINE="30s"
12. 备份和恢复
12.1 备份MinIO数据
# 使用mc镜像功能备份
mc mirror --overwrite myminio/mybucket /backup/mybucket
# 使用rsync备份数据目录
sudo rsync -avz /files/tools/minio/data/ /backup/minio/
12.2 恢复数据
# 恢复存储桶数据
mc mirror --overwrite /backup/mybucket myminio/mybucket
# 恢复整个数据目录
sudo rsync -avz /backup/minio/ /files/tools/minio/data/
sudo chown -R minio:minio /files/tools/minio/data
13. 监控和维护
查看服务器信息
# 查看服务器状态
mc admin info myminio
# 查看磁盘使用情况
mc admin disk info myminio
14. 故障排除
14.1 服务无法启动
# 检查服务状态和错误信息
sudo systemctl status minio
sudo journalctl -u minio -n 50
# 检查端口占用
sudo netstat -tlnp | grep -E '9000|9001'
# 检查权限问题
ls -la /files/tools/minio/data
ls -la /files/tools/minio/minio.conf
14.2 连接问题
# 测试端口连通性
telnet localhost 9000
telnet localhost 9001
# 检查防火墙规则
sudo iptables -L -n | grep -E '9000|9001'
14.3 重置管理员密码
# 停止MinIO服务
sudo systemctl stop minio
# 修改配置文件中的密码
sudo nano /files/tools/minio/minio.conf
# 重启服务
sudo systemctl start minio
附录:常见配置示例
A.1 多磁盘配置
# 在minio.conf中配置多个磁盘
MINIO_VOLUMES="/files/tools/minio/data1 /files/tools/minio/data2 /files/tools/minio/data3 /files/tools/minio/data4"
A.2 集群模式配置
# 配置分布式MinIO(4节点示例)
MINIO_VOLUMES="http://node{1...4}/files/tools/minio/data"
A.3 启用TLS/SSL
# 将证书文件放置在以下位置
/files/tools/minio/certs/public.crt
/files/tools/minio/certs/private.key
# MinIO会自动检测并启用HTTPS