ceph的rbd备份软件ceph-backup
ceph的rbd备份软件ceph-backup
zphj1987teralytics是一家国外的大数据公司,这个是他们开源的ceph的备份的工具,在twitter上搜索相关信息的时候看到,觉得不错就拿来试用一番
这是个什么软件
一个用来备份 ceph 的 rbd 的image的开源软件,提供了两种模式
增量:在给定备份时间窗口内基于 rbd 快照的增量备份
完全:完整镜像导出时不包含快照
注意一致性:此工具可以生成 rbd 镜像的快照,而不会感知到它们的文件系统的状态,注意下 rbd 快照的一致性限制(官网文档) 由于“完全”模式不使用快照,“完全”模式下的实时映像备份不一致(“增量”模式始终使用快照)
超过时间窗口以后,会进行一次全量备份,并且把之前的快照删除掉,重新进行一次全量备份,并且基于这个时间窗口计算是否需要删除备份的文件
软件包含以下功能:
- 支持存储池和多image的指定
- 支持自定义备份目标路径
- 配置文件支持
- 支持备份窗口设置
- 支持压缩选项
- 支持增量和全量备份的配置
编译安装
1 | [root@lab8106 ~]#git clone https://github.com/teralytics/ceph-backup.git |
安装过程中会下载一些东西,注意要有网络,需要等待一会
准备配置文件
1 | [root@lab8106 ceph-backup]# mkdir /etc/cephbackup/ |
我的配置文件如下,备份 rbd 存储的 zp 的镜像,支持多 image,images后面用逗号隔开就可以
1 | [root@lab8106 ~]# cat /etc/cephbackup/cephbackup.conf |
开始备份
全量备份配置
上面的配置文件已经写好了,直接执行备份命令就可以了
1 | [root@lab8106 ~]# cephbackup |
压缩的如果开了,正好文件也是稀疏文件的话,需要等很久,压缩的效果很好,dd 生成的文件可以压缩到很小
检查备份生成的文件
1 | [root@lab8106 ~]# ll /tmp/rbd/zp/zp_UTC20170119T092933.full* |
全量备份的还原
1 | rbd import /tmp/rbd/zp/zp_UTC20170119T092933.full zpbk |
检查数据,没有问题
###增量备份配置
写下增量配置的文件,修改下备份模式的选项
1 | [rbd] |
执行多次进行增量备份以后是这样的
1 | [root@lab8106 ~]#ll /tmp/rbd/zpbk/ |
增量备份的还原
分成多个步骤进行
1 | 1、进行全量的恢复 |
本测试用例还原步骤就是
1 | rbd import [email protected] zpnew |
检查数据,没有问题
总结
这个软件基于python的实现,可以说作者的实现逻辑是很清晰的,并且提供了配置文件的方式,基本上是各个细节都考虑的比较到位,很容易上手,可以直接拿来使用,或者集成到自己的平台中去,是一个很好的软件
补充
集群有个bug,在rbd import名称的时候如果带了@符号,那么导入的时候就会有问题,具体如下
1 | rbd import /tmp/ls@1 |
那么无法 rbd info ls@1,无法 rbd rm ls@1操作了,这个地方需要代码进行修改进行屏蔽,一般正常操作也没问题,但是万一出现了,怎么解决呢?
下面举个例子来讲述解决过程:
假设我的操作是
1 | [root@lab8106 ~]#rbd import /tmp/ls@1 |
首先查询下image的id
1 | [root@lab8106 ~]#rados -p rbd get rbd_id.ls@1 rbd_id.ls@1 |
得到id是这个
删除header(后缀是上面获取的id)
1 | [root@lab8106 ~]#rados -p rbd rm rbd_header.304b76b8b4567 |
删除data
1 | [root@lab8106 ~]#rados -p rbd rm rbd_data.304b76b8b4567.0000000000000000 |
删除id文件
1 | [root@lab8106 ~]#rados -p rbd rm rbd_id.ls@1 |
查询元数据信息进行删除
1 | [root@lab8106 ~]#rados -p rbd listomapvals rbd_directory |
删除的一个是上面的获取的id,一个是名称
1 | [root@lab8106 ~]# rados -p rbd rmomapkey rbd_directory id_304b76b8b4567 |
再次检查
1 | rados -p rbd listomapvals rbd_directory |
再次rbd ls检查,已经好了
相关链接
变更记录
Why | Who | When |
---|---|---|
创建 | 武汉-运维-磨渣 | 2017-01-19 |
误导入的恢复 | 武汉-运维-磨渣 | 2017-03-02 |