一、RBD的导入导出介绍

Ceph存储可以利用快照做数据恢复,但是快照依赖于底层的存储系统没有被破坏

可以利用rbd的导入导出功能将快照导出备份

RBD导出功能可以基于快照实现增量导出

二、RBD导出操作

2.1 查看创建的快照

[root@ceph1 ceph]# rbd snap ls testimg-copy --id rbd
SNAPID NAME SIZE TIMESTAMP
for-clone2 MB Sun Mar ::

2.2 创建快照

[root@ceph1 ~]# df -hT
Filesystem Type Size Used Avail Use% Mounted on
/dev/vda1 xfs 40G .7G 39G % /
devtmpfs devtmpfs 893M 893M % /dev
tmpfs tmpfs 920M 920M % /dev/shm
tmpfs tmpfs 920M 17M 904M % /run
tmpfs tmpfs 920M 920M % /sys/fs/cgroup
/dev/rbd0 xfs .0G 33M .0G % /mnt/ceph
/dev/rbd1 xfs .0G 33M .0G % /mnt/ceph2
[root@ceph1 ~]# rbd showmapped
id pool image snap device
rbd testimg-copy - /dev/rbd0
rbd cephrbd1 - /dev/rbd1
cd[root@ceph1 ~]# cd /mnt/ceph
[root@ceph1 ceph]# ll
-rw-r--r-- root root Mar :
-rw-r--r-- root root Mar :
-rw-r--r-- root root Mar : test
-rw-r--r-- root root Mar : test1
[root@ceph1 ceph]# echo 'pretty girl' >> aaa.txt
[root@ceph1 ceph]# rbd snap create testimg-copy@v1 --id rbd
[root@ceph1 ceph]# rbd snap ls testimg-copy --id rbd
SNAPID NAME SIZE TIMESTAMP
for-clone2 MB Sun Mar ::
v1 MB Tue Mar ::

2.3 写数据再次创建快照

[root@ceph1 ceph]# echo 'handsome boy' >>boy
[root@ceph1 ceph]# ls
aaa.txt boy test test1
[root@ceph1 ceph]# rbd snap create testimg-copy@v2 --id rbd
[root@ceph1 ceph]# rbd snap ls testimg-copy --id rbd
SNAPID NAME SIZE TIMESTAMP
for-clone2 MB Sun Mar ::
v1 MB Tue Mar ::
v2 MB Tue Mar ::

2.4 快照导出操作

[root@ceph2 ~]# rbd export-diff  testimg-copy@for-clone2 testimg-copy-for-clone2      #导出for-clone2的数据
Exporting image: % complete...done.
[root@ceph2 ~]# rbd export-diff testimg-copy@v2 --from-snap for-clone2 testimg-copy-for-clone2-v2 #导出for-clone2到v2时间点的差异数据
Exporting image: % complete...done.
[root@ceph2 ~]# ll
-rw-r--r-- root root Mar : testimg-copy-for-clone2
-rw-r--r-- root root Mar : testimg-copy-for-clone2-v2
[root@ceph2 ~]# rbd export testimg-copy testimg-copy-full #导出创建image到当前时间点的差异数据
Exporting image: % complete...done.
[root@ceph2 ~]# ll-rw-r--r--. root root Mar rabbitmq-signing-key-public.asc
-rw-r--r-- root root Mar : testimg-copy-for-clone2
-rw-r--r-- root root Mar : testimg-copy-for-clone2-v2
-rw-r--r-- root root Mar : testimg-copy-full

2.5 删除所有快照

[root@ceph1 ceph]# cd
[root@ceph1 ~]# umount /mnt/ceph
[root@ceph1 ~]# rbd unmap /dev/rbd0
[root@ceph2 ~]# rbd snap unprotect testimg-copy@for-clone2
-- ::46.270361 7fbafacc2700 - librbd::SnapshotUnprotectRequest: cannot unprotect: at least child(ren) [fbba3d1b58ba] in pool 'rbd' #有一个子镜像没有合并
-- ::46.271135 7fbafacc2700 - librbd::SnapshotUnprotectRequest: encountered error: () Device or resource busy
-- ::46.271166 7fbafacc2700 - librbd::SnapshotUnprotectRequest: 0x5601e4e6c520 should_complete_error: ret_val=-
rbd: unprotecting snap failed: () Device or resource busy
[root@ceph2 ~]# rbd children testimg-copy@for-clone2 #查看子镜像
rbd/test-clone3
[root@ceph2 ~]# rbd flatten rbd/test-clone3 #合并子镜像
Image flatten: % complete...done.
[root@ceph2 ~]# rbd snap unprotect testimg-copy@for-clone2 #取消保护
[root@ceph2 ~]# rbd snap purge testimg-copy #删除所有快照
Removing all snapshots: % complete...done.
[root@ceph2 ~]# rbd snap ls testimg-copy --id rbd

三  导入操作

3.1 导入所有

[root@ceph2 ~]#  rbd rm testimg-copy     #删除镜像
Removing image: % complete...done.
[root@ceph2 ~]# rbd ls
test-clone
test-clone2
test-clone3
testimg
[root@ceph2 ~]# rbd create testbacknew --size 1 #随便创建一个image,名称大小都不限制(恢复时会覆盖大小信息)
[root@ceph2 ~]# rbd ls
test-clone
test-clone2
test-clone3
testbacknew
testimg
[root@ceph2 ~]# rbd import testimg-copy-full testbacknew #把所有数据恢复到这个镜像,报错已经存在这个镜像,对于full,不适用
rbd: image creation failed
Importing image: % complete...failed.
rbd: import failed: () File exists
-- ::56.843724 7fc50f783d40 - librbd: rbd image testbacknew already exists
[root@ceph2 ~]# rbd import testimg-copy-full testbacknew2 #正确恢复
Importing image: % complete...done.
[root@ceph2 ~]# rbd ls
test-clone
test-clone2
test-clone3
testbacknew
testbacknew2
testimg

3.2 客户端验证

[root@ceph1 ~]# rbd map testbacknew2 --id rbd                #客户端进行挂载映射,映射失败,feature导致
rbd: sysfs write failed
RBD image feature set mismatch. Try disabling features unsupported by the kernel with "rbd feature disable".
In some cases useful info is found in syslog - try "dmesg | tail".
rbd: map failed: () No such device or address
[root@ceph1 ~]# rbd info testbacknew2 --id rbd
rbd image 'testbacknew2':
size MB in objects
order ( kB objects)
block_name_prefix: rbd_data.fc6174b0dc51
format:
features: layering, exclusive-lock, object-map, fast-diff, deep-flatten
flags:
create_timestamp: Tue Mar ::
[root@ceph1 ~]# rbd feature disable testbacknew2 exclusive-lock, object-map, fast-diff, deep-flatten --id rbd #禁掉报错的feature
[root@ceph1 ~]# rbd map testbacknew2 --id rbd #映射成功
/dev/rbd0
[root@ceph1 ~]# mount /dev/rbd0 /mnt/ceph #挂载
[root@ceph1 ~]# cd /mnt/ceph #检查数据已经恢复
[root@ceph1 ceph]# ls
aaa.txt boy test test1

3.3 验证导入到for-clone2的数据

[root@ceph1 ceph]# cd
[root@ceph1 ~]# umount /mnt/ceph
[root@ceph1 ~]# rbd unmap /dev/rbd0
[root@ceph2 ~]# rbd import-diff testimg-copy-for-clone2 testbacknew
Importing image diff: % complete...done.
[root@ceph2 ~]# rbd feature disable testbacknew exclusive-lock, object-map, fast-diff, deep-flatten --id rbd
[root@ceph2 ~]# rbd info testbacknew
rbd image 'testbacknew':
size MB in objects
order ( kB objects)
block_name_prefix: rbd_data.fc4b74b0dc51
format:
features: layering
flags:
create_timestamp: Tue Mar ::
[root@ceph1 ~]# rbd map testbacknew --id rbd
/dev/rbd0
[root@ceph1 ~]# mount /dev/rbd0 /mnt/ceph
[root@ceph1 ~]# cd /mnt/ceph
[root@ceph1 ceph]# ls
test test1

3.4 验证导入至快照v2的数据

[root@ceph1 ceph]# cd
[root@ceph1 ~]#umount /mnt/ceph
[root@ceph1 ~]#rbd unmap /dev/rbd0
[root@ceph2 ~]#rbd import-diff testimg-copy-for-clone2-v2 testbacknew
[root@ceph1 ~]#rbd import-diff testimg-copy-for-clone2-v2 testbacknew^C
[root@ceph1 ~]#rbd map testbacknew --id rbd
/dev/rbd0
[root@ceph1 ~]#mount /dev/rbd0 /mnt/ceph
[root@ceph1 ~]#cd /mnt/ceph
[root@ceph1 ceph]#ls
aaa.txt boy test test1

实验完成!!!

博主声明:本文的内容来源主要来自誉天教育晏威老师,由本人实验完成操作验证,需要的博友请联系誉天教育(http://www.yutianedu.com/),获得官方同意或者晏老师(https://www.cnblogs.com/breezey/)本人同意即可转载,谢谢!

009 Ceph RBD增量备份与恢复的更多相关文章

  1. 理解 QEMU/KVM 和 Ceph(1):QEMU-KVM 和 Ceph RBD 的 缓存机制总结

    本系列文章会总结 QEMU/KVM 和 Ceph 之间的整合: (1)QEMU-KVM 和 Ceph RBD 的 缓存机制总结 (2)QEMU 的 RBD 块驱动(block driver) (3)存 ...

  2. 理解 OpenStack + Ceph (3):Ceph RBD 接口和工具 [Ceph RBD API and Tools]

    本系列文章会深入研究 Ceph 以及 Ceph 和 OpenStack 的集成: (1)安装和部署 (2)Ceph RBD 接口和工具 (3)Ceph 物理和逻辑结构 (4)Ceph 的基础数据结构 ...

  3. Ceph RBD CephFS 存储

    Ceph RBD  CephFS 存储 环境准备: (这里只做基础测试, ceph-manager , ceph-mon, ceph-osd 一共三台) 10.6.0.140 = ceph-manag ...

  4. MySQL 完整和增量备份与恢复

    MySQL 完全备份与恢复 1.数据备份的重要性 在企业中数据的价值至关重要,数据保障了企业的业务的运行,因此数据的安全性及可靠性是运维的重中之重,任何数据的丢失都有可能会对企业产生严重的后果.造成数 ...

  5. rexray在CentOS上不能创建ceph rbd的docker volume问题定位

    背景 我们通过docker的rexray插件来创建ceph rbd设备的docker volume,但总提示创建失败. # docker volume create --driver=rexray - ...

  6. CentOS7 下安装 iSCSI Target(tgt) ,使用 Ceph rbd

    目录 一.iSCSI 介绍 1. iSCSI 定义 2. 几种常见的 iSCSI Target 3. 优缺点比较 二.安装步骤 1. 关闭防火墙 2. 关闭selinux 3. 通过 yum 安装 t ...

  7. kubernetes挂载ceph rbd和cephfs的方法

    目录 k8s挂载Ceph RBD PV & PVC方式 创建secret 创建PV 创建PVC 创建deployment挂载PVC StorageClass方式 创建secret 创建Stor ...

  8. MySQL增量备份与恢复实例【转】

    小量的数据库可以每天进行完整备份,因为这也用不了多少时间,但当数据库很大时,就不太可能每天进行一次完整备份了,这时候就可以使用增量备份.增量备份的原理就是使用了mysql的binlog日志.本次操作的 ...

  9. Percona XtraBackup 实现全备&增量备份与恢复【转】

    percona-xtrabackup主要是有两个工具,其中一个是xtrabackup,一个是innobackupex,后者是前者封装后的一个脚本.在针对MySQL的物理备份工具中,大概是最流行也是最强 ...

随机推荐

  1. WPF疑难杂症之一(3D场景)

    原文:WPF疑难杂症之一(3D场景) 最近2个月一直在学习WPF,在实际的开发中遇到下面一个3D场景有关的问题,我先给出问题代码:首先是在资源中定义了一个3D变换组:<Window x:Clas ...

  2. 算法导论笔记:18B树

    磁盘作为辅存,它的容量要比内存大得多,但是速度也要慢许多,下面就是磁盘的的结构图: 磁盘驱动器由一个或多个盘片组成,它们以固定的速度绕着主轴旋转,数据存储于盘片的表面,磁盘驱动器通过磁臂末尾的磁头来读 ...

  3. @codeforces - 418D@ Big Problems for Organizers

    目录 @description@ @solution@ @accepted code@ @details@ @description@ n 个点连成一棵树,经过每条边需要花费 1 个单位时间. 现给出 ...

  4. oracle CBO下使用更具选择性的索引

    基于成本的优化器(CBO, Cost-Based Optimizer)对索引的选择性进行判断来决定索引的使用是否能提高效率. 如果索引有很高的选择性, 那就是说对于每个不重复的索引键值,只对应数量很少 ...

  5. laravel 学习笔记blog后台

    https://github.com/almasaeed2010/adminlte composer require "almasaeed2010/adminlte=~2.0"

  6. Nginx 的 location

    一.location语法 语法: Syntax: location [ = | ~ | ~* | ^~ ] uri { ... } location @name { ... } Default: — ...

  7. poj 3278(hdu 2717) Catch That Cow(bfs)

    Catch That Cow Time Limit: 5000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)To ...

  8. 深入java面向对象三:抽象类和接口(转载)

    文章系转载,地址: http://blog.csdn.net/xw13106209/article/details/6923556 1.概述     一个软件设计的好坏,我想很大程度上取决于它的整体架 ...

  9. Codeforces Round #183 (Div. 2)

    A. Pythagorean Theorem II 暴力,\(O(n^2)\). B. Calendar 每个日期计算到0年1月1日的天数,相当于转化成前缀和形式. 闰年数计算\[\lfloor\fr ...

  10. H5 FileReader读取文件

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...