RBD快照灾备方案
时间:2022-07-22
本文章向大家介绍RBD快照灾备方案,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
一、说明
从主集群定期的导出最近两个快照之差,然后导入到备集群。
二、Ceph生成差量文件的方式
2.1 导出某个image从创建到此刻的变化
2.1.1 导出快照
rbd export-diff test_pool/test_image testimage_now
2.1.2 导入快照
rbd import-diff testimage_now test_pool/test_image
2.1.3 流程图
2.2 导出image从创建到快照时刻的变化
2.2.1 创建快照
echo "v0.log" >> /mnt/ceph_lihang/v0.log
#create snap v1
rbd snap create test_pool/test_image@v1
echo "v1.log" >> /mnt/ceph_lihang/v1.log
#create snap v2
rbd snap create test_pool/test_image@v2
echo "v2.log" >> /mnt/ceph_lihang/v2.log
#create snap v3
rbd snap create test_pool/test_image@v3
echo "v3.log" >> /mnt/ceph_lihang/v3.log
#create snap v4
rbd snap create test_pool/test_image@v4
echo "v4.log" >> /mnt/ceph_lihang/v4.log
#create snap v5
rbd snap create test_pool/test_image@v5
echo "v5.log" >> /mnt/ceph_lihang/v5.log
2.2.2 导出快照
#export snap v1
rbd export-diff test_pool/test_image@v1 testimage_v1
#export snap v2
rbd export-diff test_pool/test_image@v2 testimage_v2
#export snap v3
rbd export-diff test_pool/test_image@v3 testimage_v3
#export snap v4
rbd export-diff test_pool/test_image@v4 testimage_v4
#export snap v5
rbd export-diff test_pool/test_image@v5 testimage_v5
2.2.3 导入快照
#import snap v1
rbd import-diff testimage_v1 test_pool/test_image
#import snap v2
rbd import-diff testimage_v2 test_pool/test_image
#import snap v3
rbd import-diff testimage_v3 test_pool/test_image
#import snap v4
rbd import-diff testimage_v4 test_pool/test_image
#import snap v5
rbd import-diff testimage_v5 test_pool/test_image
2.2.4 流程图
2.3 导出image两个快照之间的差异变化
2.3.1 创建快照
echo "v0.log" >> /mnt/ceph_lihang/v0.log
#create snap v1
rbd snap create test_pool/test_image@v1
echo "v1.log" >> /mnt/ceph_lihang/v1.log
#create snap v2
rbd snap create test_pool/test_image@v2
echo "v2.log" >> /mnt/ceph_lihang/v2.log
#create snap v3
rbd snap create test_pool/test_image@v3
echo "v3.log" >> /mnt/ceph_lihang/v3.log
#create snap v4
rbd snap create test_pool/test_image@v4
echo "v4.log" >> /mnt/ceph_lihang/v4.log
#create snap v5
rbd snap create test_pool/test_image@v5
echo "v5.log" >> /mnt/ceph_lihang/v5.log
2.3.2 导出快照
#首次导出 export v1
rbd export-diff test_pool/test_image@v1 testimage_v1
#export (snap v1 - snap v2)
rbd export-diff test_pool/test_image@v2 --from-snap v1 testimage_v1_v2
#export (snap v2 - snap v3)
rbd export-diff test_pool/test_image@v3 --from-snap v2 testimage_v2_v3
#export (snap v3 - snap v4)
rbd export-diff test_pool/test_image@v4 --from-snap v3 testimage_v3_v4
#export (snap v4 - snap v5)
rbd export-diff test_pool/test_image@v5 --from-snap v4 testimage_v4_v5
2.3.3 导入快照
#import snap v1
rbd import-diff testimage_v1 test_pool/test_image
#import (snap v1 - snap v2)
rbd import-diff testimage_v1_v2 test_pool/test_image
#import (snap v2 - snap v3)
rbd import-diff testimage_v2_v3 test_pool/test_image
#import (snap v3 - snap v4)
rbd import-diff testimage_v3_v4 test_pool/test_image
#import (snap v4 - snap v5)
rbd import-diff testimage_v4_v5 test_pool/test_image
2.3.4 流程图
三、总结
最终选择方案三定期的备份增量文件,达到增量备份。
3.1 备份流程图
3.1.2 首次备份
1.在主集群创建Image的快照 2.导出主集群Image的全量快照 3.将导出的全量快照文件传输到备集群 4.备集群创建对应的pool/image 5.导入全量快照文件到备集群中 6.完成备份
3.1.3 非首次备份
1.在主集群查找最近的快照文件,并且确认备集群是否存在同名的快照 2.在主集群创建Image的快照 3.导出最近快照文件和刚创建快照文件的差量文件。(导出每次diff,实现增量备份) 4.将导出的差量快照文件传输到备集群 5.导入全量快照文件到备集群中 6.完成备份
3.2 总结
- 定期的每天导出增量的数据文件,在做恢复的时候,就从第一个快照导入,然后按顺序导入增量的快照即可。
- 定期做一个快照,导出完整的快照数据,以防中间的增量快照漏了。
- 定期清理快照
- JS魔法堂:函数重载 之 获取变量的数据类型
- 开发问题(一)在windows和linux端口占用问题
- Linux文件系统的实现
- Design Pattern: Not Just Mixin Pattern
- 关于PHP字符编码的函数区别
- Java集合源码分析(二)Linkedlist
- array_shift() 函数
- 可穿戴设备:不要纠结“可穿戴”
- RXTX for JAVA 串口通信
- Java集合源码分析(一)ArrayList
- 运行jar包找不到主类
- spring cloud 学习(7) - 生产环境如何不停机热发布?
- jupyter notebook 在mac OS上的安装
- Hadoop(七)HDFS容错机制详解
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- macOS 下git+ Java + Maven + MySql 开发环境
- SeaweedFS
- MySQL-1
- 并发编程之Atomic&Unsafe魔法类详解
- Hexo+Next7.X 博客美化教程合集
- 波士顿房价预测 - 最简单入门机器学习 - Jupyter
- 机器学习竞赛分享:NFL大数据碗(上篇)
- 大文件分割、命名脚本 - Python
- adb常用命令总结
- Cypress执行测试并邮寄发送测试报告
- 重拾前端技能为你的职业前程保驾护航
- 检查图片是否损坏、图片后缀是否与实际图片类型对应 - Python
- 规则引擎 - drools 使用讲解(简单版) - Java
- Python奇技淫巧 - 持续更新中....
- 150+行Python代码实现带界面的数独游戏