ceph的rbd备份软件ceph-backup

teralytics是一家国外的大数据公司,这个是他们开源的ceph的备份的工具,在twitter上搜索相关信息的时候看到,觉得不错就拿来试用一番

一、这是个什么软件

一个用来备份ceph的RBD的image的开源软件,提供了两种模式
增量:在给定备份时间窗口内基于rbd快照的增量备份
完全:完整映像导出时不包含快照

注意一致性:此工具可以生成rbd图像的快照,而不会感知到它们的文件系统的状态,注意下rbd快照的一致性限制(http://docs.ceph.com/docs/hammer/rbd/rbd-snapshot/)由于“完全”模式不使用快照,“完全”模式下的实时映像备份不一致(“增量”模式始终使用快照)

超过时间窗口以后,会进行一次全量备份,并且把之前的快照进行删除掉,重新备份一次全量,并且基于这个时间计算是否需要删除备份的文件

软件包含以下功能:

  • 支持存储池和多image的只对
  • 支持自定义备份目标路径
  • 配置文件支持
  • 支持备份窗口设置
  • 支持压缩选项

支持增量和全量备份的配置

二、编译安装

[root@lab8106 ~]#git clone https://github.com/teralytics/ceph-backup.git
[root@lab8106 ~]# cd ceph-backup
[root@lab8106 ceph-backup]# python setup.py install

安装过程中会下载一些东西,注意要有网络,需要等待一会

三、准备配置文件

[root@lab8106 ceph-backup]# mkdir /etc/cephbackup/
[root@lab8106 ceph-backup]# cp ceph-backup.cfg /etc/cephbackup/cephbackup.conf

我的配置文件如下,备份rbd存储的zp的镜像,支持多image,images后面用逗号隔开就可以

[root@lab8106 ~]# cat /etc/cephbackup/cephbackup.conf 
[rbd]
window size = 7
window unit = days
destination directory = /tmp/
images = zp
compress = yes
ceph config = /etc/ceph/ceph.conf
backup mode = full
check mode = no

 

四、开始备份

1、全量备份配置

上面的配置文件已经写好了,直接执行备份命令就可以了

[root@lab8106 ~]# cephbackup
Starting backup for pool rbd
Full ceph backup
Images to backup:
	rbd/zp
Backup folder: /tmp/
Compression: True
Check mode: False
Taking full backup of images: zp
rbd image 'zp':
	size 40960 MB in 10240 objects
	order 22 (4096 kB objects)
	block_name_prefix: rbd_data.25496b8b4567
	format: 2
	features: layering
	flags: 
Exporting image zp to /tmp/rbd/zp/zp_UTC20170119T092933.full
Compress mode activated
# rbd export rbd/zp /tmp/rbd/zp/zp_UTC20170119T092933.full
Exporting image: 100% complete...done.
# tar Scvfz /tmp/rbd/zp/zp_UTC20170119T092933.full.tar.gz /tmp/rbd/zp/zp_UTC20170119T092933.full
tar: Removing leading `/' from member names

压缩的如果开了,正好文件也是稀疏文件的话,需要等很久,压缩的效果很好,dd生成的文件可以压缩到很小

检查备份生成的文件

[root@lab8106 ~]# ll /tmp/rbd/zp/zp_UTC20170119T092933.full*
-rw-r--r-- 1 root root 42949672960 Jan 19 17:29 /tmp/rbd/zp/zp_UTC20170119T092933.full
-rw-r--r-- 1 root root           0 Jan 19 17:29 /tmp/rbd/zp/zp_UTC20170119T092933.full.tar.gz

全量备份的还原

rbd import /tmp/rbd/zp/zp_UTC20170119T092933.full zpbk

检查数据,没有问题

2、增量备份配置

写下增量配置的文件,修改下备份模式的选项

[rbd]
window size = 7
window unit = day
destination directory = /tmp/
images = zp
compress = yes
ceph config = /etc/ceph/ceph.conf
backup mode = incremental
check mode = no

执行多次进行增量备份以后是这样的

 [root@lab8106 ~]#ll  /tmp/rbd/zpbk/
total 146452
-rw-r--r-- 1 root root 42949672960 Jan 19 18:04 zpbk@UTC20170119T100339.full
-rw-r--r-- 1 root root       66150 Jan 19 18:05 zpbk@UTC20170119T100546.diff_from_UTC20170119T100339
-rw-r--r-- 1 root root          68 Jan 19 18:05 zpbk@UTC20170119T100550.diff_from_UTC20170119T100546
-rw-r--r-- 1 root root          68 Jan 19 18:06 zpbk@UTC20170119T100606.diff_from_UTC20170119T100550
-rw-r--r-- 1 root root          68 Jan 19 18:06 zpbk@UTC20170119T100638.diff_from_UTC20170119T100606

增量备份的还原

分成多个步骤进行

1、进行全量的恢复
# rbd import config@UTC20161130T170848.full dest_image
2、重新创建基础快照
# rbd snap create dest_image@UTC20161130T170848
3、还原增量的快照(多次执行)
# rbd import-diff config@UTC20161130T170929.diff_from_UTC20161130T170848 dest_image

本测试用例还原步骤就是

rbd  import zpbk@UTC20170119T100339.full zpnew
rbd snap create zpnew@UTC20170119T100339
rbd import-diff zpbk@UTC20170119T100546.diff_from_UTC20170119T100339  zpnew
rbd import-diff zpbk@UTC20170119T100550.diff_from_UTC20170119T100546  zpnew
rbd import-diff zpbk@UTC20170119T100606.diff_from_UTC20170119T100550  zpnew
rbd import-diff zpbk@UTC20170119T100638.diff_from_UTC20170119T100606  zpnew

检查数据,没有问题

五、总结

这个软件基于python的实现,可以说作者的实现逻辑是很清晰的,并且提供了配置文件的方式,基本上是各个细节都考虑的比较到位,很容易上手,可以直接拿来使用,或者集成到自己的平台中去,是一个很好的软件

六、相关链接

1、rbd的增量备份和恢复
2、ceph-backup的github

3、http://www.178pt.com/224.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值