确保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/