云杉网络:基于Ceph RBD的快照技术实现异地灾备

技术 作者:程序猿 2016-03-03 11:00:06
Ceph是一个开源的分布式存储平台,分布式块存储RBD(RADOS Block Device)在云计算中广泛使用。基于Ceph RBD的快照技术,通过差量文件的方式定期将数据备份到灾备中心,当主数据中心发生故障时,从灾备中心恢复最近的备份数据并重启相应的虚拟机,最大程度降低灾难时的数据恢复时间。 基本术语 镜像 Image:对应于逻辑卷Logical Volume,是能被attach和detach到虚拟机的载体。 快照 Snapshot:Image在某一个时刻的状态,可以将Image回滚到某一个快照状态。 Ceph处理差量文件 Ceph可以将某个RBD image不同时刻的状态进行比较,将其差量导出成文件,同时也可以将这个差量文件导入到某个image中。 Ceph生成差量文件的三种方式: 1)导出某个image从创建到此刻的变化 例如,将pool/image1从创建到此刻的差量保存至image1diff文件 rbd export-diff pool/image1 image1diff 2)导出某个image从创建到某快照时刻的变化 例如,将pool/image1创建时和快照snap1的差量保存至image1s1diff文件 rbd export-diff pool/image1@snap1 image1s1diff 3)导出某个image此刻和某快照时刻的变化 例如,将现在pool/image1和快照snap1的差量保存至image1s1diff2文件 rbd export-diff pool/image1 –from-snap snap1 image1s1diff2 Ceph导入差量文件的三种方式 对应生成差量文件的三种方式,有三种导入差量文件的方式。导入的前提是先创建一个image2,然后将diff文件导入这个image。 1)导入image从创建到某一时刻的diff rbd import-diff image1diff pool/image2 此时,image2和生成diff时image1相同 2)导入image从创建时到某快照时刻的diff rbd import-diff image1s1diff pool/image2 此时,image2和创建snap1后的image1相同,即image2也有一个叫做snap1的快照 3)导入image从某快照时刻到某时刻的diff rbd import-diff image1s1diff2 pool/image2 执行的前提是image2有一个叫做snap1的快照 异地灾备的实现 由于第一次备份时,灾备数据中心还没有对应的base image,所以在操作上分为首次备份和第一次之后的备份。 QQ20160303-1@2x 第一次备份 1. 在备份中心创建一个image作为base rbd create dest-pool/image1 -s 1 2. 在主数据中心创建一个image的快照 rbd snap create source-pool/image1@snap1 3. 以第二种导出方式生成差量文件 rbd export-diff source-pool/image1@today image1-snap1-diff 4. 将导出的差量文件传输到备份中心,使用scp或netcat工具 5. 以第二种导入方式将差量文件导入base image rbd import-diff image1-snap1-diff dest-pool/image1 6. 备份完成 第二次之后的备份 1. 在主数据中心查找image最近一次的快照,并确认备份中心是否存在同名快照 rbd snap ls dest-pool/image1 | grep snap1 2. 若存在,在主数据中心创建image的新快照 rbd snap create source-pool/image1@snap2 3. 以第三种导出方式生成差量文件,所用的snap即第1步中找到的快照snap1。每次的diff都是相对于上一次备份而言的,即实现了增量备份 rbd export-diff --from-snap snap1 source-pool/image1@snap2 image1-snap1-snap2-diff 4. 将导出的差量文件传输到备份中心 5. 以第三种导入方式将差量文件导入image rbd import-diff image1-snap1-snap2-diff dest-pool/image1 6. 备份完成 创建备份时,会在原始image上创建一个快照,通过比较新建快照和上一次备份的快照形成差量文件,将这个差量文件导入到backup image即完成了备份。由上面Ceph处理差量文件的方式可知,这个快照也会存在于backup image上,也就是说每个备份对应的是backup image上的一个快照。 Ceph RBD快照技术 在2Cloud中的应用 2Cloud云平台中的运维工具提供了异地备份功能。每天可按计划对用户的虚拟机进行自动的异地备份。一旦主数据中心的发生异常并收到告警,可立即使用运维工具将虚拟机在备份中心启动,最大限度地减少用户损失。 以虚拟机vm-2cloud-1为例,在缺省配置下,2Cloud云平台在每日24时执行运维命令,对当天的虚拟机进行增量备份(xxxx-xx-xx为当天日期)。 QQ20160303-2@2x 当主数据中心发生故障时,在2Cloud云平台执行恢复的运维命令,即可将用户的虚拟机在备份中心快速启动,并恢复至最近一次备份时的状态。 QQ20160303-3@2x 功能的进一步优化 数据去重压缩 考虑到不同数据中心间数据传输的带宽压力,运维命令将对备份文件进行压缩去重处理后,再发送到备份数据中心。选取三种压缩算法的对比结果如下(以35G的差量文件为例)。基于压缩比例和压缩时间的综合考虑,2Cloud采用gzip算法作为压缩算法。 QQ20160303-4@2x 快照数量管理 考虑到快照数量对磁盘性能的影响,运维命令会在备份完成后将虚拟机前一天的快照删除,仅保留当天快照用于下次备份时生成差量文件。 应用场景 电信及IDC运营商为企业提供云端的灾备服务 面对用户从托管转向云,电信及IDC运营商纷纷建设和开拓云业务,除了基础云服务之外,可发挥其多地域数据中心及带宽的优势,推出云环境下针对虚拟机的异地灾备服务,提供更高SLA的数据保障。 企业私有云中关键数据的灾备与恢复 传统的灾备方案依托SAN存储及专业软件来实现。相比传统方案,运用x86服务器本地磁盘,基于Ceph RBD的快照技术即可实现异地灾备;同时,Ceph分布式存储的多副本机制,在本地数据中心也能保障数据高可用,从而极大地降低企业实现数据全面保护的门槛和成本。 文章作者:宋贞,云杉网络高级研发工程师 扩展阅读 SDN技术 1. 2Cloud Aladdin:谈谈云中网络运维 2. 一家瞄向Nicira的中国SDN厂商到底干了哪些事 混合云技术 1. 2Cloud中的网络虚拟化架构 2. 2Cloud中的网络安全 3. 2Cloud中的企业级IT服务

关注公众号:拾黑(shiheibook)了解更多

[广告]赞助链接:

四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/

公众号 关注网络尖刀微信公众号
随时掌握互联网精彩
赞助链接