Linux 上使用 MinIO 实现数据备份的实用方案
一 核心思路与工具
- 使用 mc(MinIO Client) 完成对象存储层面的复制、镜像与同步,适合跨桶、跨集群、跨云备份。
- 使用 cron 定时调度备份任务,实现按日/小时等频率的自动化执行。
- 结合 tar.gz 归档 与 find 清理,将桶内容落盘为可长期保留的备份包,控制存储占用。
- 在具备 POSIX 文件系统的场景下,可对 MinIO 数据目录 使用 rsync 做文件系统级增量备份(停机或只读更稳妥)。
二 方案一 桶到桶备份与同步(推荐)
- 安装与配置 mc
- 下载并解压 mc,放到 PATH,例如:
- wget https://download.min.io/minio-client/stable/minio-linux-amd64.tar.gz
- tar -xzf minio-linux-amd64.tar.gz
- sudo mv minio /usr/local/bin
- 添加别名(示例):
- mc alias set minioA http://192.168.1.10:9000 ACCESS_KEY SECRET_KEY
- mc alias set minioB http://192.168.1.20:9000 ACCESS_KEY SECRET_KEY
- 常用命令
- 全量复制(一次性备份):mc cp -r minioA/mybucket minioB/backup_mybucket
- 镜像同步(会删除目标端多余对象,保持两端一致):mc mirror minioA/mybucket minioB/backup_mybucket
- 增量同步(仅新增/修改,不删除):mc sync minioA/mybucket minioB/backup_mybucket
- 定时执行(cron)
- 每天 02:00 镜像备份:0 2 * * * /usr/local/bin/mc mirror minioA/mybucket minioB/backup_mybucket
- 说明
- 以上命令适合跨机房、跨云或同集群不同桶的备份与恢复演练;恢复时可用同样的 cp/mirror 将备份桶回灌至业务桶。
三 方案二 落盘归档备份(适合长期留存与离线)
- 思路
- 用 mc 将桶内容递归复制到本地临时目录,打包为 tar.gz,再上传到备份存储或磁带/冷备介质;定期清理过期归档。
- 示例脚本 backup_minio.sh
- #!/bin/bash
- BACKUP_DIR=/data/backup/minio
- BACKUP_FILE=minio_backup_$(date +%Y%m%d%H%M%S).tar.gz
- TMP_DIR=$BACKUP_DIR/tmp
- mc alias set minioA http://192.168.1.10:9000 ACCESS_KEY SECRET_KEY
- mkdir -p $TMP_DIR
- mc cp --recursive minioA/mybucket $TMP_DIR/
- tar -czvf $BACKUP_DIR/$BACKUP_FILE -C $TMP_DIR .
- rm -rf $TMP_DIR
- find $BACKUP_DIR -type f -name “minio_backup_*” -mtime +7 -delete
- 定时执行(cron)
- 每天 21:30 归档备份:30 21 * * * /bin/bash /data/backup/backup_minio.sh
- 恢复示例
- tar -xzvf /data/backup/minio/minio_backup_20231128.tar.gz -C /restore/path
- mc cp --recursive /restore/path minioA/mybucket_restored
- 说明
- 归档方式便于做版本留存与审计,配合 find 做保留策略(如保留 7 天)。
四 方案三 文件系统级备份 MinIO 数据目录(仅限有 POSIX 磁盘)
- 适用前提
- 直接对 MinIO 数据目录 做备份,建议在维护窗口或只读模式下进行,避免写入导致不一致。
- 示例
- rsync -avz --delete /data/minio/ /backup/minio_data/
- 定时执行(cron)
- 每天 02:00 同步:0 2 * * * rsync -avz --delete /data/minio/ /backup/minio_data/
- 说明
- 该方式速度快、带宽利用高,但依赖底层文件系统;不适用于对象存储的跨站点容灾场景。
五 实践建议与注意事项
- 选择策略
- 跨集群/跨云容灾优先用 mc mirror/sync;长期留存与审计优先用 落盘归档;同机房快速回滚可用 文件系统 rsync。
- 保留与监控
- 为备份设置明确的保留周期(如 7/30 天),并保留成功/失败日志;定期做恢复演练验证可用性。
- 安全与网络
- 备份链路建议使用 TLS;最小权限原则配置 AccessKey/SecretKey;避免高峰时段执行大流量备份。
- 一致性
- 镜像/同步前尽量确保业务写入稳定;对关键数据可在维护窗口执行或使用应用侧一致性快照配合备份。