转载请联系: 郭晋兵 guojb@cloudbin.cn
本文中的备份使用脚本和crontab进行定期备份,此次备份使用全量备份,备份完成后会自动进行压缩操作。本备份方案包括3各部分:
- 一次性的备份脚本:ceph-backup.sh
- crontab定时任务
- 备份引擎: ceph-backup代码
步骤:
1. 安装ceph-backup备份引擎
将ceph-backup.tar安装程序拷贝到备份服务器本地目录下;
进入该目录进行安装:
#cd ceph-backup
#python setup.py install
注意:
- 根据环境的不同,有可能需要联网下载python库,所以要保持公网网络连接。
- Linux默认的pypi源在国外,下载插件很慢或者连不上,改到国内源。https://segmentfault.com/a/1190000006111096
2. 修改cephbackup.conf
首先创建配置文件目录
#mkdir /etc/cephbackup/
将配置文件拷贝至该目录中
#cp /root/ceph-backup/ceph-backup.cfg /etc/cephbackup/cephbackup.conf
拷贝完成后修改配置文件
3. 修改cephbackup.sh
该脚本负责按照cephbackup.cfg的配置执行cephbackup,然后检索备份目录,删除超过保留备份文件个数的最旧的备份。
#vim cephbackup.sh
在cephbackup_dir处填写备份文件存放的目录
Max_backups为备份目录内要保留的文件数量,本案例为3个备份
4. 编辑crontab
#crontab –e #在root下创建crontab
0 0 * * * /root/cephbackup.sh #该备份在每天的0点进行
1 0 * * 6 /root/cephbackup.sh #该备份在每周六的0点1分进行
更多用法参考:https://www.cnblogs.com/aminxu/p/5993769.html
5. 备份还原
此次备份的脚本通过rbd方式进行,还原时同样为rbd方式。
#tar xzvf <data.tar.gz> #解压.gz的tar包
在平台创建云主机和云硬盘,为了保证一致性,新创建的云主机和云硬盘的name、flavor、network等配置要尽量相同;
创建完成后,在ceph中找到相应的位置;
#rbd -p <poolname> ls |grep <instance-ID>
#rbd -p <poolname> ls |grep <volume-ID>
找到新创建的云主机和云硬盘对应的磁盘后,将其删除:
#rbd -p <poolname> rm <instance-ID/volume-ID>
然后将解压出来的文件,替换为已删除的新创建的云主机和云硬盘的磁盘名称将其导入:
#rbd import -p <pool name> <nstance-ID/volume-ID> <(new)nstance-ID/volume-ID>