首页 > 其他分享 >灾难恢复中的异步复制和同步复制

灾难恢复中的异步复制和同步复制

时间:2024-07-05 15:34:39浏览次数:16  
标签:异步 同步 辅助 灾难 存储系统 复制 数据

本文分享自天翼云开发者社区《灾难恢复中的异步复制和同步复制》,作者:h****n

1.异步复制

异步复制用于在远程位置创建数据备份。它涉及从主存储系统复制数据到辅助存储系统,并在两个系统之间设置延迟。这种延迟可以从几秒钟到几分钟不等,具体取决于实现和网络条件。

数据传输方面,异步复制涉及从主存储系统定期传输数据到辅助存储系统。数据以块或分块的形式传输,而不是连续传输,这减少了网络和存储资源的负载。这种以块和分块的传输也引入了主存储系统和辅助存储系统之间的数据同步的时间延迟,这种延迟称为复制延迟。在发生故障时,故障转移是从主系统切换到辅助系统的过程。由于异步复制的延迟,故障转移可能涉及一些数据丢失,并且可能需要额外的步骤以确保两个系统之间的一致性。

以下是以ceph的异步复制 RBD mirroring(CEPH RADOS Block Device mirroring)特性的框架图。CEPH在Jewel版本发布了支持两个或两个以上集群之间异步复制的特性。RBD mirroring通过排他锁以及journaling特性来记录对镜像(image)所有的改动,来实现集群间的crash-consistent的image复制。另外,rbd-mirror守护进程负责将镜像的修改部分而非主镜像(primary image)从一个ceph存储集群同步到另外一个集群,rbd-mirror可以运行在单个ceph集群上做单向(one-way)复制 如图1,也可以运行在两个ceph集群双向(two-way)复制如图2。

 图1:ceph单向RBD-mirror


图2:ceph双向RBD-mirror 

以上是基于journaling的journaling-basedmirroring,异步复制还可以与快照相结合(snapshot-based mirroring)实现。例如,可以对主系统进行周期性快照,并将其连同复制的数据发送到辅助系统。这些快照提供了数据的时间点视图,可用于从数据损坏或其他问题中进行恢复。

异步复制的特性意味着对主存储系统进行的更改可能不会立即反映在辅助系统中。如果在更改被复制到辅助系统之前主系统失败,这就可能导致数据丢失。然而,异步复制可以比同步复制更具成本效益和效率,因为同步复制需要在两个系统之间建立连续连接。

异步复制可以在块、文件或对象级别实现,具体取决于存储系统和组织的特定要求。某些解决方案可能使用增量差分或压缩等技术来减少传输的数据量,而其他解决方案可能使用多个复制层进行额外的冗余和保护。

总的来说,异步复制是创建数据备份和保护数据免受丢失的灵活和经济有效的方法。但是,重要的是要仔细考虑实施和配置,以确保它满足组织的需求并提供适当的数据保护水平。

2.同步复制

同步复制实时地将任何更改应用于主存储系统并立即将其复制到辅助系统,确保两个系统始终具有最新的数据副本。涉及将数据实时传输从主存储系统到辅助存储系统,通常以小块或块的形式进行,以最小化网络和存储资源使用。复制延迟通常非常低,通常以毫秒为单位,因为辅助系统需要始终具有数据的最新副本。

 

图3:同步复制示意图 

同步复制的主要优点之一是其提供高水平的数据一致性,并在发生故障时最小化数据丢失。由于辅助系统始终具有数据的最新副本,因此通常不会发生数据不一致或数据丢失,这使其成为需要最小停机时间和最大数据可用性的关键应用程序的理想选择。

但是,同步复制可能比异步复制更昂贵且资源密集,因为异步复制会延迟数据传输。同步复制还需要仔细的配置和实施,以确保满足组织的需求并提供适当的数据保护水平。

同步复制可以在块、文件或对象级别实现,具体取决于存储系统和组织的特定要求。一些解决方案可能使用缓存或其他技术来优化数据传输,而其他解决方案可能使用多个复制层进行额外的冗余和保护。

此外,对于灾难恢复中常见的同城多活,异地双活,两地三中心均是依据基础技术,网络,冗余硬件以及业务需求等构建出灾难恢复解决方案。

标签:异步,同步,辅助,灾难,存储系统,复制,数据
From: https://www.cnblogs.com/developer-tianyiyun/p/18285919

相关文章

  • BeanUtil复制时,两对象中数据类型不一致导致的问题Can not set java.time.LocalDateTim
    @DatapublicclassAVo{privateLongendTime;privateStringname;privateStringid;}@DatapublicclassABVo{privateLocalDateTimeendTime;privateStringname;privateStringid;}AVoaVo=newAVo();......
  • Swift 中如何利用闭包实现异步回调?
    Swift中如何利用闭包实现异步回调?在Swift中,闭包是自包含的函数代码块,可以在代码中被传递和使用。它们非常适合用于实现异步回调,主要因为闭包能够捕获和存储其所在上下文中的任何常量和变量的引用。异步回调的实现步骤如下:1、定义一个接受闭包作为参数的函数。这个闭包的类型取......
  • 同步、异步、阻塞、非阻塞、Linux五种 I/O 模型,一篇文章搞定
    ● 什么是同步、什么是异步?什么是阻塞、什么非阻塞?我自己的理解,大白话啊,同步和异步指的是函数调用完成任务的程度。一个任务的完成,包括发起、执行和结果返回三个阶段。 同步(synchronize)调用涵盖了这三个阶段。调用结束之后,任务肯定是有结果的,无论成败。 ......
  • Mysql主从复制
    Mysql主从复制搭建(Docker)主从复制原理简介通俗的说就是主机将执行过的写操作sql记录在一个文件中,从机连接主机后读取这个文件,然后以同样的顺序将这些sql执行一遍。实际上主从复制是通过binlog和relay-log实现,主机的更新事件(update、insert、delete)会按照顺序写入binlog......
  • JavaScript中的异步模式
    JavaScript中的异步模式JavaScript语言的执行环境是“单线程(singlethread)”,就是指一次只能完成一个任务。如果有多个任务,就必须排队,等前面一个任务完成,再执行后面一个任务,以此类推。这种模式的好处是实现起来比较简单,执行环境相对单纯,坏处是只要有一个任务耗时很长,后面的任务......
  • mysql主从复制
    一、主从复制通过主从复制,可以实现读写分离。1.什么是主从复制MySQL主从复制是一种数据库复制技术,用于将一个MySQL数据库服务器的更改同步到其他MySQL数据库服务器。在主从复制中,有一个主数据库(Master)和一个或多个从数据库(Slave)。主数据库负责接收和处理所有的写操作,而从数据......
  • 记录--淘宝、京东复制好友链接弹出商品详情是如何实现的
    ......
  • 成功是不可复制的,每个人都有它的原因
    我的师姐写paper很快很厉害,虽然她常说自己是找到了套路,我想说的是,就算是水论文,也不是所有人都可以水论文的。相比之下,我觉得我或许在基础知识方面比她更扎实,很多地方比她理解的更深刻一点。但是我做事情是相对慢的,而且有一种眉毛胡子一把抓的感觉,我基本上都是事倍功半。除此之外......
  • 异步编程场景
    异步模型概述异步编程的核心是 Task 和 Task<T> 对象,这两个对象对异步操作建模。它们受关键字 async 和 await 的支持。在大多数情况下模型十分简单:对于I/O绑定代码,等待一个在 async 方法中返回 Task 或 Task<T> 的操作。对于CPU绑定代码,等待一个使用 ......
  • 【python小记】使用openpyxl库在同一个工作表下复制单元格(包括它们的值、样式和合并属
    fromopenpyxlimportload_workbook#加载工作簿和工作表wb=load_workbook('test.xlsx')sheet=wb['sheet1']#定义一个函数来复制样式defcopy_style(source_cell,target_cell):ifsource_cell.has_style:target_cell.font=source_cell.font.co......