确保Ubuntu系统为18.04及以上版本,具备root权限或sudo权限;系统已联网,防火墙开启9000端口(MinIO默认端口)。
# 导入MinIO官方GPG密钥
wget -qO - https://dl.min.io/server/minio/release/linux/amd64/minio-release.gpg | sudo apt-key add -
# 添加MinIO APT仓库
sudo add-apt-repository "deb https://dl.min.io/server/minio/release/ubuntu $(lsb_release -cs) main"
# 更新包列表并安装MinIO
sudo apt update && sudo apt install minio -y
# 验证安装
minio --version
# 安装Snap(若未安装)
sudo apt install snapd
# 通过Snap安装MinIO
sudo snap install minio --classic
# 启动并设置开机自启
sudo systemctl start minio
sudo systemctl enable minio
# 下载MinIO二进制文件
wget https://dl.min.io/server/minio/release/linux/amd64/minio
# 赋予执行权限并移动至系统路径
chmod +x minio
sudo mv minio /usr/local/bin/
# 创建数据目录并启动服务
sudo mkdir -p /data/minio
sudo chown -R $USER:$USER /data/minio
# 启动MinIO(前台模式,生产环境建议用systemd)
minio server /data/minio
若使用手动安装,需创建systemd服务文件实现开机自启:
sudo nano /etc/systemd/system/minio.service
添加以下内容(替换/data/minio为你的数据目录):
[Unit]
Description=MinIO Server
After=network.target
[Service]
ExecStart=/usr/local/bin/minio server /data/minio
Restart=always
User=minio
Group=minio
[Install]
WantedBy=multi-user.target
保存后加载服务并启动:
sudo systemctl daemon-reload
sudo systemctl start minio
sudo systemctl enable minio
MinIO客户端用于管理存储桶和数据传输:
# 下载并安装mc
wget https://dl.min.io/client/mc/release/linux-amd64/mc
chmod +x mc
sudo mv mc /usr/local/bin/
# 配置mc别名(替换为你的MinIO服务器地址、Access Key、Secret Key)
mc alias set myminio http://localhost:9000 YOUR_ACCESS_KEY YOUR_SECRET_KEY
# 测试连接
mc ls myminio/
mc是MinIO官方提供的命令行工具,支持增量/全量备份,操作简单:
# 备份单个存储桶到本地目录(递归复制所有对象)
mc cp -r myminio/mybucket /path/to/backup/location
# 备份所有存储桶到指定目录
mc find myminio/ --name "*" | xargs -I {} mc cp -r myminio/{} /path/to/backup/location
rsync适合备份MinIO数据目录(需停止MinIO服务以保证数据一致性):
# 停止MinIO服务
sudo systemctl stop minio
# 同步数据目录到备份位置(保留文件属性)
rsync -avz --progress /data/minio/ /path/to/backup/location/
# 启动MinIO服务
sudo systemctl start minio
若MinIO通过Docker部署,可通过卷备份数据:
# 停止MinIO容器
docker stop minio-container
# 备份数据卷(假设数据卷挂载在容器的/data目录)
docker cp minio-container:/data /path/to/backup/location
# 启动MinIO容器
docker start minio-container
通过MinIO REST API编写脚本(如Bash+curl),实现自动化备份:
#!/bin/bash
ENDPOINT="http://localhost:9000"
ACCESS_KEY="YOUR_ACCESS_KEY"
SECRET_KEY="YOUR_SECRET_KEY"
BUCKET_NAME="mybucket"
BACKUP_DIR="/path/to/backup/location"
# 创建备份目录
mkdir -p $BACKUP_DIR
# 获取桶中所有对象(递归)
OBJECTS=$(curl -s -u $ACCESS_KEY:$SECRET_KEY "$ENDPOINT/$BUCKET_NAME/?recursive=true" | jq -r '.Contents[].Key')
# 下载每个对象
for OBJECT in $OBJECTS; do
curl -o "$BACKUP_DIR/$OBJECT" -u $ACCESS_KEY:$SECRET_KEY "$ENDPOINT/$BUCKET_NAME/$OBJECT"
done
restic支持增量备份和加密,适合长期存储:
# 安装restic
sudo apt install restic -y
# 初始化备份仓库
restic init --repo /path/to/restic/repo
restic login
# 备份MinIO数据(需先通过mc/rsync将数据复制到本地/tmp/minio-backup)
restic backup /tmp/minio-backup
从备份位置恢复数据到MinIO存储桶:
# 恢复单个存储桶(递归复制所有对象)
mc cp -r /path/to/backup/location/mybucket myminio/
# 恢复单个对象
mc cp /path/to/backup/location/mybucket/object.txt myminio/mybucket/
若存储桶中存在损坏对象,可使用heal命令修复:
# 修复指定存储桶(递归检查所有对象)
mc admin heal myminio/mybucket
# 检查存储桶健康状态
mc admin info myminio/mybucket
若MinIO配置了快照(如通过跨区域复制或第三方工具),可从快照恢复:
# 查看可用快照(需在MinIO控制台或通过API获取)
# 假设快照标签为"snapshot-20250101",仓库名为"myrepo"
mc admin restore myminio/mybucket snapshot-20250101 myrepo
若MinIO节点硬件故障,替换新节点后启动服务即可自动恢复:
# 替换新节点(确保硬件配置与原节点一致)
# 启动MinIO服务(使用原集群的配置文件和数据目录)
minio server /data/minio
# 监控恢复进度(使用mc命令)
mc admin heal myminio/