------------------------------------重要说明------------------------------------

以下部分内容来网络,部分自华为存储官方教材

具体教材内容请移步华为存储官网进行教材下载

    网络引用内容无法找到原创,如有侵权请通知

------------------------------------重要说明------------------------------------

① 定义

华为技术有限公司开发的远程复制特性又叫HyperReplication特性。当存储系统运行块业务时,远程复制支持以下两种复制模式:

同步远程复制

实时地同步数据,最大限度保证数据的一致性,以减少灾难发生时的数据丢失量。

异步远程复制

周期性地同步数据,最大限度减少由于数据远程传输的时延而造成的业务性能下降。


图片.png

② 相关概念

远程复制Remote Replication是容灾备份的核心技术,可以实现远程数据同步和灾难恢复。在物理位置上分离的存储系统,通过远程数据连接功能,可以在远程维护一套或多套数据副本。

同步远程复制:实时的同步数据,最大限度保证数据的一致性,以减少灾难发生时的数据丢失量。

异步远程复制:周期性的同步数据,最大限度减少由于数据远程传输的时延而造成的业务性能下降。

图片.png
 图片.png

图片.png

Pair

 

Pair是指主LUN( Logical Unit Number)和从LUN之间的数据复制关系。在远程复制中,数据只能由主LUN经过链路复制到从LUN。在进行数据复制之前,必须先建立主LUN与从LUN之间的Pair关系,正如在通话之前需要通过拨号建立两台电话之间的连接一样。在配置远程复制时,主端存储系统的一个主LUN和从端存储系统的一个从LUN构成一个Pair。

图片.png

 

一致性组

 

一致性组是指多个业务相关联的Pair的集合。例如,主端存储系统的三个主LUN分别存放某数据库的数据、日志和修改信息,任何一个LUN的数据失效将导致三个LUN中的数据整体无法使用。这三个LUN所在的Pair构成的集合即是一个一致性组。在实际配置中,需要先创建一个一致性组,再手动将这三个Pair对应的远程复制依次添加到已创建的一致性组中。

 

同步

 

同步是指将数据由主LUN复制到从LUN的过程。既可以对单个远程复制进行同步,也可以通过一致性组对多个远程复制进行同步。

远程复制中,同步分为初始同步和增量同步。

1、创建异步远程复制后,首先进行初始同步,将主LUN的数据全量同步到从LUN。

初始同步完成后,在远程复制Pair正常状态下,按照用户设定的同步类型(手动或

自动),将主LUN的数据增量同步到从LUN。当故障发生导致远程复制Pair异常断

开时,在故障恢复后,按照用户设定的恢复策略(手动或自动),将主LUN的数

据增量同步至从LUN。

2、创建同步远程复制后,首先进行初始同步,将主LUN的数据全量同步到从LUN。

初始同步完成后,在远程复制Pair正常状态下,主机下发的I/O会分别写入主LUN

和从LUN,此时主LUN和从LUN数据之间不存在差异,无需同步。当故障发生导

致远程复制Pair异常断开时,在故障恢复后,按照用户设定的恢复策略(手动或自

动),将主LUN的数据增量同步至从LUN。

3、对于V300R003C00/V300R003C10版本,根据主LUN和从LUN的类型,同步分为如下两种场景:

(1)、主LUN为thick LUN或thin LUN,从LUN为thin LUN,且从LUN未分配空间,初始同步时,依次读取主LUN数据,对于连续64KB全零数据,不会同步至从LUN。

(2)、除上述情况外,同步时会依次读取主LUN的数据,对于64KB全零数据,按照16:1压缩成4KB后,同步至从LUN,再还原成64KB数据写入从LUN。对于非64KB全零数据,会依次写入从LUN。

4、对于V300R003C20版本,根据主LUN和从LUN的类型,同步分为如下三种场景:

(1)、主LUN为未配置SmartDedupe&SmartCompression特性的thin LUN,从LUN为thinLUN,且从LUN未分配空间,初始同步时,不会读取主LUN中未分配空间的数据,且不会同步至从LUN。

(2)、主LUN为thick LUN或配置了SmartDedupe&SmartCompression特性的thin LUN,从LUN为thin LUN,且从LUN未分配空间,初始同步时,依次读取主LUN数据,对于连续64KB全零数据,不会同步至从LUN。

(3)、除上述两种情况外,同步时会依次读取主LUN的数据,对于64KB全零数据,按照16:1压缩成4KB后,同步至从LUN,再还原成64KB数据写入从LUN。对于非64KB全零数据,会依次写入从LUN。

 

分裂

分裂是指暂停由主LUN向从LUN同步数据。管理员手动分裂远程复制时,既可以对单个远程复制进行分裂,也可以通过一致性组对多个远程复制进行分裂。远程复制被分裂后,主从LUN之间的Pair关系依然存在,此时主机对主从LUN数据的读写权限并未改变。

如果在某一时间段,用户不希望数据由主LUN同步到从LUN,例如,链路带宽不足,影响关键业务,需要暂停链路上远程复制数据的同步。此时,可以利用分裂操作来暂停数据的同步。

分裂和同步结合使用,可以对远程复制的数据同步过程进行有效的控制。

主从切换

主从切换是指Pair中LUN的主从关系转换的过程。主从切换改变了远程复制中原有LUN的主从关系,形成一个新的Pair。既可以对单个远程复制进行主从切换,也可以通过一致性组对多个远程复制进行主从切换。在远程复制中,主从切换通常应用于以下两种情况:

1、主站点灾难恢复后,重新建立远程复制链路,当数据同步完成后,管理员在主站点或者从站点对远程复制进行主从切换。

2、正常情况下需要对主端存储系统进行设备更换等操作,管理员在主站点或者从站点对远程复制进行主从切换。主从切换的目的是为了在从端存储系统上运行业务,因此要求切换之前的从LUN数据是可用的。通过查看从LUN的数据状态来判别从LUN数据是否可用。

 

数据状态

远程复制通过判断从LUN与主LUN之间数据的差异情况,标识当前Pair的数据状态。当灾难发生时,远程复制需要根据Pair的数据状态判别是否允许进行主从切换。远程复制中Pair的数据状态为“完整”和“不完整”两种。

 

从 LUN 可写

从LUN可写是指从LUN可以接收来自主机的数据。远程复制配置完成后从LUN默认为只读,如果主LUN出现故障,需要管理员执行“取消从资源保护”操作,手动设置从LUN为可写,以便从端存储系统能够接管主机业务,保证业务持续运行。设置从LUN可写的两种常见场景如下:

1、主LUN故障,且远程复制链路断开,则需要在从端存储系统设置从LUN可写。

2、主LUN故障,但远程复制链路正常,则需要先分裂Pair,然后在主端或从端存储系统设置从LUN可写。

③ 同步远程复制写流程

图片.png

生产中心的主LUN和灾备中心的从LUN建立同步远程复制关系后,启动初始同步,将主LUN数据全量拷贝到从LUN,初始同步中主LUN收到主机写请求也会同样写到从LUN,数据写入过程如下:

主站点接收生产主机写请求,记录这个I/O对应数据块的差异日志值为“有差异”;

主站点将写请求的数据写入主端CACHE,同时利用配置好的链路将写请求发送到远端从站点,主端CACHE同时将数据刷盘;

从站点收到主端的写IO数据,将数据写入从端CACHE后返回主端结果,同时CACHE将数据刷盘。主端收到从端结果后判断写主端CACHE和写从端CACHE的执行结果,如果都成功,则将差异日志改为“无差异”,否则保留“有差异”,在下一次启动同步时重新拷贝这一个数据块;

向主机返回写请求完成。

同步远程复制需要将主端存储系统上的数据实时地同步到从端存储系统上。其特点是:

主端存储系统接收到主机的写I/O请求后,同时发送写I/O请求至从LUN和主LUN。

当主LUN和从LUN都执行完写操作时,才向主机返回写I/O结果。写I/O结果取决于是否成功写入主LUN,和从LUN无关。但如果任意一端写失败,则此端会向远程复制管理模块返回写I/O失败,同时远程复制管理模块将更改双写为单写,远程复制进入异常断开状态。

当主LUN和从LUN建立同步远程复制关系之后,通常需要对远程复制进行一次手动同步,以保证主LUN和从LUN的数据一致。同步完成后,每一次主机向主端存储系统写入数据,都会实时同步到从端存储系统的从LUN中。

图片.png 

图片.png

1. 主机下发写I/O请求到RM。

2. RM将写I/O请求记录到LOG中。

3. 执行双写: RM同时将该写I/O请求写入主端Cache和从端Cache中。

4. 主端Cache和从端Cache向RM返回写I/O结果。

5. 双写结果处理:等待主从端Cache的写处理结果都返回,向主机返回写I/O结果。

如果任意一端Cache写失败,则此端会向RM返回写I/O失败,同时RM将更改双写为单写,远程复制进入异常断开状态。

6. 判断双写是否成功:

– 都写成功则删除LOG。

– 任意一端写失败保存LOG到DCL。

④ 同步远程复制分裂模式

 图片.png 

OceanStor V3 融合存储系统同步远程复制支持分裂模式,在分裂状态下,生产主机的写请求只会写到主LUN,并通过差异日志来记录主、从LUN数据之间的差异。当用户希望重新保持主、从LUN数据一致时,可以进行一次手动启动同步操作,同步过程就是将差异日志中标为“有差异”的数据块从主LUN增量拷贝到从LUN的过程,其I/O处理原理与初始同步的原理类似。分裂模式可以灵活地满足用户的一些需求:如暂时性的链路维修、网络带宽扩容、需要从LUN保存某一个时间点的数据等等。

OceanStor V3 融合存储系统同步远程复制检测到系统故障(包括链路断开、主LUN或从LUN故障导致的IO错误等等)时能够立即进入断开状态。在断开状态下,同步远程复制的I/O处理原理与分裂时类似,只将I/O写入主LUN并记录差异(注意:若故障为主LUN故障,那么在故障排除之前主LUN无法接收生产主机的I/O请求)。当这些故障排除时,同步远程复制可以在极短的时间内根据恢复策略进行相应的操作:如果恢复策略为自动恢复,同步远程复制会自动进入“同步”状态,将有差异的数据增量同步到从LUN;如果恢复策略为手动恢复,同步远程复制会进入“待恢复”状态,等待用户手动启动同步。由于断开后的同步采用的是增量同步,可以大大地减少同步远程复制的灾难恢复时间。

⑤ 同步远程复制主从切换

图片.png
 

主从切换取决于从LUN数据状态,从LUN数据状态标识了从LUN当前数据的可用情况,分“完整”和“不完整”两种。

完整:从LUN上的数据是主LUN之前一个时间点的副本,此时从LUN的数据是可用的,但不一定与当前的主LUN数据完全一致;

不完整:从LUN上的数据不是主LUN之前一个时间点的副本,从LUN的数据不可用。

如上图所示,主站点的主LUN在切换后变成了新的从LUN,而从站点的从LUN在切换后变成了新的主LUN。经过一些在主机侧的简单操作以后(主要是将新主LUN映射给备用生产主机,也可提前映射),从站点的备用生产主机接管业务并对新主LUN下发读写请求。进行主从切换时,从LUN数据状态必须为“完整”,主从切换完成后进行的同步为增量同步,即只拷贝差异数据。同步远程复制进行主从切换的条件如下:

同步远程复制在正常状态下可以进行主从切换。

分裂状态下,需要设置从LUN可写才能进行主从切换。

⑥ 异步远程复制写流程


图片.png

每当间隔一个同步周期(由用户设定,范围为3s~1440min),系统会自动启动一个将主站点数据增量同步到从站点的同步过程(如果同步类型为手动,则需要用户来触发同步)。每个复制周期启动时在主LUN( LUN A)和从LUN( LUN B)的缓存中产生新的时间片( TPN+1和TPX+1)。

主站点接收生产主机写请求。

主站点将写请求的数据写入Cache时间片TPN+1中,立即响应主机写完成。

同步数据时,读取前一个周期主LUN( LUN A) Cache时间片TPN的数据,传输到从站点,写入从LUN( LUN B) Cache时间片TPX+1中;若主站点Cache写缓存达到高水位时会自动将数据从Cache写入硬盘中,此时时间片TPN的数据会在盘上生成快照,同步时已写入硬盘的数据从快照中读取并复制到从LUN( LUN B)。

同步数据完成后,按照刷盘策略将主LUN( LUN A)和从LUN( LUN B) Cache中时间片TPN和TPX+1的数据下盘(生成的快照自动删除),等待下一个同步的到来。

异步远程复制是指将主端存储系统上的数据周期性地拷贝到从端存储系统上。其特点是:

1、异步远程复制依赖于快照技术。快照是指源数据在某个时间点的一致性数据副本。

2、主机对主LUN进行写操作,只要主LUN返回写请求成功,即向主机返回写请求成功。

3、通过用户手动触发或系统定时触发同步,保证主LUN和从LUN数据一致。

当主LUN和从LUN建立异步远程复制关系之后,通常会启动初始同步,将主LUN数据全部复制到从LUN,以保证主LUN和从LUN的数据完全一致。主端存储系统接收到主机发送的写I/O时,会发送写I/O至主LUN,只要主LUN返回写I/O成功,主端存储系统就会向主机返回写I/O成功。从LUN的数据会在同步周期到达时,再进行主LUN和从LUN的数据同步。

图片.png

主LUN快照的作用保证同步过程中读取到的主LUN数据是具备一致性的,即保证同步的为主LUN某个时刻点的数据;

从LUN快照的作用:用于备份从LUN在同步开始时刻点的数据,避免同步过程发生异常导致从LUN的数据不可用,即在异常发生后,对数据回滚到上一个可用点;

图片.png

1. 主机下发写I/O请求到RM, RM直接将数据下发到主端Cache中。

2. 主端Cache向RM返回写I/O结果, RM将写结果返回给主机。

3. 主端Cache中数据写入到LUN后, RM在DCL中记录主从端差异。

4. 远程复制同步周期启动时,主从LUN快照被激活。

5. 主端Cache数据和LUN数据复制到从端Cache中。

 

a.  多时间片技术

时间片:在Cache中管理一段时间内写入数据的逻辑空间(数据大小没有限定);


图片.png

HyperReplication/A基于cache多时间快照技术,主端需要做COW时,主机IO写入Cache即可返回,不需要等COW完成后才返回,减少了COW对主机性能的影响,极大降低了远程复制同步数据时对主机的性能影响,同时远程复制拷贝数据时,主端直接从Cache读取拷贝数据,拷贝时延较小,使异步远程复制支持秒级RPO。

图片.png

每当间隔一个同步周期(由用户设定,范围为3s~1440min),系统会自动启动一个将主站点数据增量同步到从站点的同步过程(如果同步类型为手动,则需要用户来触发同步)。每个复制周期启动时在主LUN( LUN A)和从LUN( LUN B)的缓存中产生新的时间片( TPN+1和TPX+1)。

主站点接收生产主机写请求。

主站点将写请求的数据写入Cache时间片TPN+1中,立即响应主机写完成。

同步数据时,读取前一个周期主LUN( LUN A) Cache时间片TPN的数据,传输到从站点,写入从LUN( LUN B) Cache时间片TPX+1中;若主站点Cache写缓存达到高水位时会自动将数据从Cache写入硬盘中,此时时间片TPN的数据会在盘上生成快照,同步时已写入硬盘的数据从快照中读取并复制到从LUN( LUN B)。

同步数据完成后,按照刷盘策略将主LUN( LUN A)和从LUN( LUN B) Cache中时间片TPN和TPX+1的数据下盘(生成的快照自动删除),等待下一个同步的到来。

b.  DCL小位图技术

DCL (Data Change Log,记录差异数据的日志)的Chunk颗粒度是64KB,为避免小颗粒度IO(小于64KB)也需要拷贝64KB(数据差异量放大)引入小位图技术。

将一个64K Chunk拆分成颗粒度更小的4K Chunk来记录差异;

查询需要拷贝的Chunk粒度为4K*N(N:1~16),原则是将N个地址连续的有差异数据合并成一个Chunk作为拷贝粒度。

图片.png

通过减少数据拷贝量,缩短远程复制同步时间,提高远程复制性能,减少数据丢失量,降低RPO。

 

 

⑦ 取消从LUN写保护


图片.png

远程复制配置完成后对主机来说从LUN默认为只读,如果主LUN出现故障,需要管理员执行“取消远程复制从LUN写保护”操作,手动设置从LUN为可写,以便从端存储系统能够接管主机业务,保证业务持续运行,通过从LUN可写功能,可加快业务恢复时间,从LUN读写后可进行增量同步,使得灾难恢复后业务可迅速回切。

⑧ 远程复制实现业务切换原理

能够在从端存储系统上运行业务的要求:

从端存储系统中存在历史业务数据。

备用主机上已配置与生产主机相同的业务应用。

从端存储系统支持主机对映射成功的LUN组中的LUN进行读写操作。

当灾难发生时,主站点失效,主从LUN之间的远程复制链路断开。此时,需要管理员手动将从LUN的读写权限设置为可写,以便实现业务切换。远程复制业务切换的原理如图所示。

图片.png

图片.png

图片.png

⑨ 数据恢复原理

远程复制中的主站点失效后,需要从站点临时接管业务,待主站点恢复后,再进行业务的切换。本节将介绍站点恢复原理,以便您后续更好的完成远程复制在容灾应用时的配置操作、站点恢复操作和相关故障分析。

当主站点灾难恢复后,需重新建立主从端存储系统的远程复制关系,并利用从站点的数据对主站点进行数据恢复。主站点业务数据恢复原理如图所示

图片.png

图片.png

⑩ 一致性组作用

在大中型数据库应用中,数据、日志、修改记录等文件存放在存储系统的有关联的不同LUN中,缺少其中一个LUN的数据,都将导致其他LUN中的数据失效,在这种情况下,可将这些LUN的远程复制pair添加到同一个一致性组中。

在远程复制的应用中,除了可以对单个远程复制进行同步、分裂和主从切换操作,还可以通过一致性组统一管理多个远程复制。远程复制一致性组的应用说明如下:

a.  远程复制未使用一致性组

图片.png

b.  远程复制已使用一致性组

图片.png

远程复制一致性组在特定场景下需要悬挂主机IO,阻止主机IO下发,保证一致性组中成员数据一致性。 OceanStor V3 融合存储系统基于Block IO技术,悬挂IO时不需要等待所有IO返回,多控下悬挂主机IO耗时能够达到微妙级,而业界悬挂IO耗时基本为秒级。通过Block IO技术,可以减少远程复制对主机IO性能的影响,提升控制流程效率。

11 应用场景

远程复制主要应用于数据的容灾备份,典型的业务应用场景包括中央容灾备份站点和两地三中心。不同的远程复制模式适用于不同的应用场景。

同步远程复制:适用于主站点和从站点距离较近的场景,如同城(相同的数据中心或相同校园中)容灾备份。

异步远程复制:适用于主站点和从站点距离较远或网络带宽有限的场景,如异地(跨国家/地区,全球)容灾备份。

a.  中央容灾备份站点

 

中央容灾备份是指将不同地方的业务数据备份到同一个站点进行集中管理。客户业务数据分散在多个地点,每一个业务站点的数据需要在中央灾备站点进行集中备份、统一管理和容灾。当灾难发生时,能够通过中央灾备站点对各业务站点的业务数据进行接管并实现灾后的数据恢复。中央容灾备份站点示意图如图所示。

图片.png

可实现的业务需求:

收集n个业务站点的数据到中央灾备站点,将从LUN做快照以后映射给主机,以便集中对数据进行分析和挖掘。

当业务站点01到n中的任意一个站点遭受灾难,均可以由中央灾备站点临时接管业务,待业务站点恢复以后,再将业务切换回业务站点。

业务站点01距离中央灾备站点500m,可以选择同步远程复制,以便进行实时备份。业务站点02距离中央灾备站点500km,则选择异步远程复制,完成远距离的复制任务。

b.  两地三中心

两地三中心(简称为3DC,全称为Three Data Center)是指容灾方案中的三个数据中心分布在两地,三中心即生产中心、同城灾备中心和异地灾备中心。 3DC根据三个数据中心存储系统之间组网情况的不同,分为级联3DC和并联3DC。

级联3DC

是指生产中心( A)、同城灾备中心( B)和异地灾备中心( C)之间串行连接,形成的A-B-C型的3DC。

并联3DC

是指同城灾备中心( B)和异地灾备中心( C)并行作为生产中心( A)的灾备站点,形成的A-B和A-C型的3DC。

图片.png 

一、同步加异步级联3DC可实现的业务需求:

为实现关键业务数据的高可靠性,可同时满足数据的实时备份和异地备份,以保证关键业务数据拥有两个备份副本。

对生产中心存储系统性能影响较小,不影响主机的正常业务。

当生产中心发生灾难, B站点可立即接管其业务并进行数据恢复。如果二次灾难使得B站点失效, C站点数据依然可用。

异步加异步级联3DC示意图如图所示。

图片.png 

二、异步加异步级联3DC可实现的业务需求:

实现关键业务数据的高可靠性,可同时满足数据的本地备份和异地备份,以保证关键业务数据拥有两个备份副本。

对生产中心存储系统性能影响较小,不影响主机的正常业务。

当生产中心发生灾难, B站点可接管其业务并进行数据恢复。如果二次灾难使得B站点失效, C站点数据依然可用。

同步加异步并联3DC示意图如图所示。

图片.png 

三、同步加异步并联3DC可实现的业务需求:

为实现关键业务数据的高可靠性,可同时满足数据的实时备份和异地备份,以保证关键业务数据拥有两个备份副本。

C站点的数据备份不依赖于B站点, B、 C之间任意一个站点失效,仍能保证生产中心有一个备份站点。

当生产中心发生灾难, B站点可立即接管其业务并进行数据恢复。如果二次灾难使得B站点失效, C站点数据依然可用。

异步加异步并联3DC示意图如图所示。

图片.png 

四、异步加异步并联3DC可实现的业务需求:

为实现关键业务数据的高可靠性,可同时满足数据的本地备份和异地备份,以保证关键业务数据拥有两个备份副本。

C站点的数据备份不依赖于B站点, B、 C之间任意一个站点失效,仍能保证生产中心有一个备份站点。

当生产中心发生灾难, B站点可接管其业务并进行数据恢复。如果二次灾难使得B站点失效, C站点数据依然可用。