一、RBD的导入导出介绍

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

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

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

二、RBD导出操作

2.1 查看创建的快照

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

2.2 创建快照

  1. [root@ceph1 ~]# df -hT
  2. Filesystem Type Size Used Avail Use% Mounted on
  3. /dev/vda1 xfs 40G .7G 39G % /
  4. devtmpfs devtmpfs 893M 893M % /dev
  5. tmpfs tmpfs 920M 920M % /dev/shm
  6. tmpfs tmpfs 920M 17M 904M % /run
  7. tmpfs tmpfs 920M 920M % /sys/fs/cgroup
  8. /dev/rbd0 xfs .0G 33M .0G % /mnt/ceph
  9. /dev/rbd1 xfs .0G 33M .0G % /mnt/ceph2
  10. [root@ceph1 ~]# rbd showmapped
  11. id pool image snap device
  12. rbd testimg-copy - /dev/rbd0
  13. rbd cephrbd1 - /dev/rbd1
  14. cd[root@ceph1 ~]# cd /mnt/ceph
  15. [root@ceph1 ceph]# ll
  16. -rw-r--r-- root root Mar :
  17. -rw-r--r-- root root Mar :
  18. -rw-r--r-- root root Mar : test
  19. -rw-r--r-- root root Mar : test1
  20. [root@ceph1 ceph]# echo 'pretty girl' >> aaa.txt
  21. [root@ceph1 ceph]# rbd snap create testimg-copy@v1 --id rbd
  22. [root@ceph1 ceph]# rbd snap ls testimg-copy --id rbd
  23. SNAPID NAME SIZE TIMESTAMP
  24. for-clone2 MB Sun Mar ::
  25. v1 MB Tue Mar ::

2.3 写数据再次创建快照

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

2.4 快照导出操作

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

2.5 删除所有快照

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

三  导入操作

3.1 导入所有

  1. [root@ceph2 ~]# rbd rm testimg-copy #删除镜像
  2. Removing image: % complete...done.
  3. [root@ceph2 ~]# rbd ls
  4. test-clone
  5. test-clone2
  6. test-clone3
  7. testimg
  8. [root@ceph2 ~]# rbd create testbacknew --size 1 #随便创建一个image,名称大小都不限制(恢复时会覆盖大小信息)
  9. [root@ceph2 ~]# rbd ls
  10. test-clone
  11. test-clone2
  12. test-clone3
  13. testbacknew
  14. testimg
  15. [root@ceph2 ~]# rbd import testimg-copy-full testbacknew #把所有数据恢复到这个镜像,报错已经存在这个镜像,对于full,不适用
  16. rbd: image creation failed
  17. Importing image: % complete...failed.
  18. rbd: import failed: () File exists
  19. -- ::56.843724 7fc50f783d40 - librbd: rbd image testbacknew already exists
  20. [root@ceph2 ~]# rbd import testimg-copy-full testbacknew2 #正确恢复
  21. Importing image: % complete...done.
  22. [root@ceph2 ~]# rbd ls
  23. test-clone
  24. test-clone2
  25. test-clone3
  26. testbacknew
  27. testbacknew2
  28. testimg

3.2 客户端验证

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

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

  1. [root@ceph1 ceph]# cd
  2. [root@ceph1 ~]# umount /mnt/ceph
  3. [root@ceph1 ~]# rbd unmap /dev/rbd0
  4. [root@ceph2 ~]# rbd import-diff testimg-copy-for-clone2 testbacknew
  5. Importing image diff: % complete...done.
  6. [root@ceph2 ~]# rbd feature disable testbacknew exclusive-lock, object-map, fast-diff, deep-flatten --id rbd
  7. [root@ceph2 ~]# rbd info testbacknew
  8. rbd image 'testbacknew':
  9. size MB in objects
  10. order ( kB objects)
  11. block_name_prefix: rbd_data.fc4b74b0dc51
  12. format:
  13. features: layering
  14. flags:
  15. create_timestamp: Tue Mar ::
  16. [root@ceph1 ~]# rbd map testbacknew --id rbd
  17. /dev/rbd0
  18. [root@ceph1 ~]# mount /dev/rbd0 /mnt/ceph
  19. [root@ceph1 ~]# cd /mnt/ceph
  20. [root@ceph1 ceph]# ls
  21. test test1

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

  1. [root@ceph1 ceph]# cd
  2. [root@ceph1 ~]#umount /mnt/ceph
  3. [root@ceph1 ~]#rbd unmap /dev/rbd0
  4. [root@ceph2 ~]#rbd import-diff testimg-copy-for-clone2-v2 testbacknew
  5. [root@ceph1 ~]#rbd import-diff testimg-copy-for-clone2-v2 testbacknew^C
  6. [root@ceph1 ~]#rbd map testbacknew --id rbd
  7. /dev/rbd0
  8. [root@ceph1 ~]#mount /dev/rbd0 /mnt/ceph
  9. [root@ceph1 ~]#cd /mnt/ceph
  10. [root@ceph1 ceph]#ls
  11. 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. 如何将英文PDF文献翻译成中文

    方法一:利用Google的本地文档翻译功能 这种方法比较简单,打开Google翻译首页http://translate.google.cn/, 选择"上传文档" 选择文件,开始翻译 ...

  2. 数组的查找,删除 Day07

    package com.sxt.arraytest2; /* * 形参列表的作用:1.接受方法调用处传来的实参 * 2.规定了实参传入数据的类型 */ import java.util.Arrays; ...

  3. 创建ROS 工作空间时出现:程序“catkin_init_workspace”尚未安装,程序“catkin_make”尚未安装。

    问题:创建ROS 工作空间时出现:程序“catkin_init_workspace”尚未安装,程序“catkin_make”尚未安装. 解决方法: source /opt/ros/kinetic/se ...

  4. 快速完成智能数据构建,Dataphin公共云版本全面解读

    公测两个月,Dataphin公共云版本已经受到了阿里云上众多轻量级用户的关注.事实上,Dataphin作为一款大数据智能构建与管理的产品,其核心功能是面向各行各业大数据建设.管理及应用诉求,一站式提供 ...

  5. oracle函数 least(exp1,exp2,exp3,……,expn)

    [功能]返回表达式列表中值最小的一个.如果表达式类型不同,会隐含转换为第一个表达式类型. [参数]exp1……n,各类型表达式 [返回]exp1类型 [示例] SELECT least(10,32,' ...

  6. 07Redis入门指南笔记(主从复制、哨兵)

    现实项目中通常需要若干台Redis服务器的支持: 结构上,单个 Redis 服务器会发生单点故障,而且一台服务器需要承受所有的请求负载.这就需要为数据生成多个副本并分配在不同的服务器上: 容量上,单个 ...

  7. Facebook 发布深度学习工具包 PyTorch Hub,让论文复现变得更容易

    近日,PyTorch 社区发布了一个深度学习工具包 PyTorchHub, 帮助机器学习工作者更快实现重要论文的复现工作.PyTorchHub 由一个预训练模型仓库组成,专门用于提高研究工作的复现性以 ...

  8. iptables 过滤条件(Matches)

    iptables可让你设置多种过滤条件,但是某些条件需要核心有提供相关功能才行.Iptables本身內建一般性的Internet Protocol (IP) 过滤条件,也就是說,即时沒载入任何扩充模组 ...

  9. html前端登录验证

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

  10. 【原生JS】滑动门效果

    效果图: 思路:通过每次鼠标移动至目标上使所有图片重置为初始样式再向左移动目标及其左侧每个图片隐藏部分距离即实现. HTML: <!DOCTYPE html> <html> & ...