本文分享自天翼云开发者社区《灾难恢复中的异步复制和同步复制》,作者: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:同步复制示意图
同步复制的主要优点之一是其提供高水平的数据一致性,并在发生故障时最小化数据丢失。由于辅助系统始终具有数据的最新副本,因此通常不会发生数据不一致或数据丢失,这使其成为需要最小停机时间和最大数据可用性的关键应用程序的理想选择。
但是,同步复制可能比异步复制更昂贵且资源密集,因为异步复制会延迟数据传输。同步复制还需要仔细的配置和实施,以确保满足组织的需求并提供适当的数据保护水平。
同步复制可以在块、文件或对象级别实现,具体取决于存储系统和组织的特定要求。一些解决方案可能使用缓存或其他技术来优化数据传输,而其他解决方案可能使用多个复制层进行额外的冗余和保护。
此外,对于灾难恢复中常见的同城多活,异地双活,两地三中心均是依据基础技术,网络,冗余硬件以及业务需求等构建出灾难恢复解决方案。