Minio备份及恢复
# 1. 部署Minio
[root@master ~]# kubectl get pod -owide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
minio-0 1/1 Running 0 54m 192.168.11.12 node2 <none> <none>
minio-1 1/1 Running 0 54m 192.168.38.139 node1 <none> <none>
minio-2 1/1 Running 0 54m 192.168.7.10 node3 <none> <none>
minio-3 1/1 Running 0 54m 192.168.40.67 master1 <none> <none>
------------------------------------------------
[root@master ~]# kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 172.16.0.1 <none> 443/TCP 42d
minio-headless ClusterIP None <none> 9000/TCP,5000/TCP 54m
minio-service NodePort 172.16.62.162 <none> 9000:31900/TCP,5000:31901/TCP 54m
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
# 2.创建桶,并上传文件
# 3. 安装Minio client (opens new window)
[root@master ~]# wget https://dl.min.io/client/mc/release/linux-amd64/mc
[root@master ~]# mv mc /usr/bin/mc && chmod +x /usr/bin/mc
1
2
2
# 4. 备份Minio数据至本地
# 查看已设置的minio服务器别名
mc alias list
# 给Minio服务【用户名:yourusername,密码:youruserpassword 设置一个别名 buckup
mc alias set backup http://10.88.33.244:31900 admin minioadmin
# 执行备份命令,将数据备份至$BACKUP_DIR/tmp表示的临时目录下
mc cp --recursive backup /tmp
[root@master tmp]# ls
demo systemd-private-48a5df1d24a9480d979bf8393d758255-chronyd.service-iv5VeL
[root@master tmp]# cd demo/
[root@master demo]# ls
nginx.conf
[root@master demo]# pwd
/tmp/demo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 6. 本地恢复到Minio,前提是Minio上要有demo这个buckets存在,若不存在则要新建再恢复
[root@master demo]# mc cp --recursive /tmp/demo backup
1
# 7. 脚本备份
[root@master minio]# cat backup.sh
#!/bin/bash
# 定义备份目录
BACKUP_DIR=/data/backup/minio
# 定义备份文件名
BACKUP_FILE=minio_backup_$(date +%Y%m%d%H%M%S).tar.gz
## 查看已设置的minio服务器别名
## mc alias list
# 给Minio服务【用户名:yourusername,密码:youruserpassword 设置一个别名 buckup
mc alias set backup http://10.88.33.244:31900 admin minioadmin
# 执行备份命令,将数据备份至$BACKUP_DIR/tmp表示的临时目录下
mc cp --recursive backup $BACKUP_DIR/tmp
# 压缩备份文件
cd $BACKUP_DIR/tmp
tar -czvf $BACKUP_DIR/$BACKUP_FILE *
rm -rf $BACKUP_DIR/tmp
# 删除7天前的备份文件,避免占用过多磁盘资源
find $BACKUP_DIR -type f -name "minio_backup_*" -mtime +7 -exec rm {} \;
------------------------------------------------------------------------
# 使用crontab -e命令编辑当前用户的计时器设置
30 21 * * * /bin/bash /data/backup/minio/backup.sh
---------------------------------------------------
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
上次更新: 2025/04/25, 03:40:17