当前位置:文档之家› 华为存储远程复制技术白皮书

华为存储远程复制技术白皮书

远程复制技术白皮书文档版本01 发布日期 2012-04-20华为技术有限公司修订记录/Change History目录1 概述 (5)2 OceanStor存储阵列远程复制的设计思路 (7)3 同步远程复制HyperMirror/S (8)3.1 HyperMirror/S的工作原理 (8)3.2 HyperMirror/S的主要功能 (9)3.2.1 零数据丢失(Zero Data Loss) (9)3.2.2 关键数据双备份 (9)3.2.3 支持分裂模式 (9)3.2.4 快速响应故障和故障恢复 (10)3.2.5 支持复制的主从切换 (10)3.2.6 一致性组相关功能 (12)3.3 HyperMirror/S的灾备流程 (13)4 异步远程复制HyperMirror/A (14)4.1 HyperMirror/A的工作原理 (14)4.2 HyperMirror/A的主要功能 (15)4.2.1 快速响应主机写请求 (15)4.2.2 支持镜像分裂、主从切换和故障快速恢复 (15)4.2.3 从LUN数据完全保护 (16)4.2.4 支持一致性组功能 (17)4.3 HyperMirror/A的灾备流程 (17)5 远程复制HyperMirror的技术特点 (18)5.1 任意的组网方式 (18)5.2 灵活的成员LUN设置 (18)5.3 多台阵列互联 (19)5.4 互为镜像 (20)5.5 可变的网络连接 (20)6 远程复制HyperMirror的应用场景 (21)6.1 组建中央数据备份站点 (21)6.2 组建Active-Active业务站点 (22)6.3 组建数据双备份站点 (23)6.4 远程复制代理:HyperMirrorAgent (24)1 概述随着各行业数字化进程的推进,数据逐渐成为企事业单位的运营核心,用户对承载数据的存储系统的稳定性要求也越来越高。

虽然不少存储厂商能够向用户提供稳定性极高的存储设备,但还是无法防止各种自然灾难对生产系统造成不可恢复的毁坏。

为了保证数据存取的持续性、可恢复性和高可用性,远程容灾解决方案应运而生,而远程复制技术则是远程容灾方案中的关键技术之一。

远程复制(Remote Mirror)又称远程镜像,是数据镜像技术的一种,它能够在两个或多个站点维护若干个数据副本,利用长距离来避免灾难发生时的数据丢失。

图1为一个典型的远程复制系统的拓扑图。

图1-1远程复制系统拓扑图实现远程复制功能的技术较多,业界使用最为广泛的主要有同步远程复制和异步远程复制两种。

OceanStor存储阵列同时支持同步远程复制(HyperMirror/S)和异步远程复制(HyperMirror/A)两种主流的远程复制技术,以满足用户对数据容灾方式的多重选择。

本文档分别对同步远程复制和异步远程复制进行了描述,包括其工作原理、主要功能、应用场景和技术特点。

2 OceanStor存储阵列远程复制的设计思路在设计远程复制时,需要考虑以下几个设计需求:1.尽可能保证主、从LUN之间的紧密同步,从而减少灾难发生时的数据丢失量(dataloss);2.尽可能减少系统对前台应用程序的写延迟,从而达到减少系统响应时间、提高数据吞吐量和性能的效果;3.在异常或灾难发生时,能够保证主站点和复制站点数据可用性。

由于通信链路上存在不可避免的延时,前两个设计需求几乎不可能同时最优化:当前者达到最优时,主站点收到本地I/O写操作后,立即发向复制站点,等待写I/O同时写入主LUN和从LUN后才返回前台应用程序写完成——这种方式称为同步远程复制;当后者达到最优时,主站点先记录收到的I/O写操作导致的差异,写入主LUN后就立即返回写完成,当差异累积到一定程度时(或经过一段固定的时间)再一次性把所有差异更新到复制站点的从LUN——这种方式称为异步远程复制。

无论是同步远程复制还是异步远程复制,都必须满足第三个设计需求——任何情况下的数据可用性。

下面分别介绍OceanStor 存储阵列的同步远程复制和异步远程复制。

3 同步远程复制HyperMirror/S3.1 HyperMirror/S的工作原理OceanStor 存储阵列的同步远程复制名为HyperMirror/S,利用日志原理实现主、从LUN的数据一致性,其实现原理如下:1.当主站点的主LUN和远端复制站点的从LUN建立同步远程复制关系以后,会启动一个初始同步,也就是将主LUN数据全量拷贝到从LUN。

2.如果在初始同步时主LUN收到生产主机写请求,需要检查同步进度:若要写入位置的数据块尚未拷贝到从LUN,只需要写主LUN即可返回主机成功,稍后利用同步任务将整个数据块同步到从LUN;若要写入位置的数据块已经拷贝,需要分别写入主LUN和从LUN;若要写入位置的数据块正在拷贝,需要等待该数据块拷贝完成后分别写入主LUN和从LUN。

3.初始同步完成以后,主、从LUN数据完全一致,如果此时主LUN收到生产主机写请求,按照下面的流程进行I/O处理(原理图见图3-1):图3-1同步远程复制I/O处理原理图1.主LUN接收生产主机写请求,记录这个I/O对应数据块的差异日志值为“有差异”;2.同时把写请求的数据写入主LUN和从LUN,写从LUN时需要利用配置好的链路将数据发送到远端复制站点;3.判断写主LUN和写从LUN的执行结果,如果都成功,则将差异日志改为“无差异”,否则保留“有差异”,在下一次启动同步时重新拷贝这一个数据块;4.主LUN返回生产主机写请求完成。

3.2 HyperMirror/S的主要功能3.2.1 零数据丢失(Zero Data Loss)OceanStor存储阵列的同步远程复制对主、从LUN同时进行紧密的数据更新,保证恢复点目标(RPO,Recovery Point Objective,为了恢复业务而必须恢复数据的时间点,表征业务可以容忍的数据丢失量)为0。

换句话说,利用同步远程复制建立的远程容灾系统,能够实现灾难恢复级别较高的数据级容灾(“Tier 6—零数据丢失”)。

3.2.2 关键数据双备份OceanStor存储阵列的同步远程复制支持一个主LUN对应两个从LUN的模式,实现对关键数据的冗余双备份,如图3-2。

也就是说,同步远程复制的LUN级扇出为2(LUN级扇出需要区别于后文会提到的阵列级扇出)。

图3-2同步远程复制一对二模式示意图在一对二模式下,对主LUN的写操作会同时写到两个从LUN中,两个从LUN需要处于不同的复制站点。

利用一对二模式的同步远程复制,可以使同一份数据在不同的三地保存三份,对极其重要的关键数据容灾提供了一种解决方案。

3.2.3 支持分裂模式OceanStor存储阵列的同步远程复制支持分裂模式,在分裂状态下,生产主机对主LUN的写请求只会写到主LUN,满足用户的一些需求:如暂时性的链路维修、网络带宽扩容、需要从LUN保存某一个时间点的数据等等。

如图3-3所示,同步远程复制处于分裂时,由于写请求只写入主LUN,会造成此时主、从数据有差异,我们利用差异日志来记录它们。

当用户希望重新保持主、从LUN数据无差异时,可以进行一次手动启动同步操作。

同步远程复制的同步过程,就是将差异日志中标为“有差异”的数据块从主LUN增量拷贝到从LUN的过程,其I/O处理原理与初始同步的原理类似。

图3-3同步远程复制的分裂和同步过程3.2.4 快速响应故障和故障恢复OceanStor存储阵列的同步远程复制检测到系统故障(包括链路断开、主LUN或从LUN失效等等)时能够立即进入断开状态。

在断开状态下,同步远程复制的I/O处理原理与分裂时类似,只将I/O写入主LUN并记录差异(注意:若故障为主LUN失效,那么在故障排除之前主LUN无法接收生产主机的I/O请求)。

当这些故障排除时,同步远程复制可以在极短的时间内根据恢复策略进行相应的操作:如果恢复策略为自动恢复,同步远程复制会自动进入“同步”状态,将有差异的数据增量同步到从LUN;如果恢复策略为手动恢复,同步远程复制会进入“待恢复”状态,等待用户手动启动同步。

由于断开后的同步采用的是增量同步,可以大大地减少同步远程复制的灾难恢复时间。

3.2.5 支持复制的主从切换OceanStor存储阵列的同步远程复制支持用户进行主从切换操作(示意图见图3-4)。

图3-4同步远程复制主从切换示意图在介绍主从切换以前,我们先了解一下从LUN数据状态这个概念。

从LUN数据状态是标识从LUN当前的数据的可用情况,一共分为4种状态:1.一致:从LUN上的数据是主LUN之前一个时间点的副本,此时从LUN的数据是可用的,但不一定与当前的主LUN数据完全一致;2.同步中:远程复制处于同步状态时从LUN数据状态为同步中,此时从LUN的数据是不可用的;3.不一致:从LUN上的数据不是主LUN之前一个时间点的副本,从LUN的数据不可用。

4.已同步:当前从LUN上的数据与主LUN上的数据完全一致,数据的可用性较高。

图3-4所示,主站点的主LUN在切换后变成了新的从LUN,而复制站点的从LUN在切换后变成了新的主LUN。

经过一些在主机侧的简单操作以后(主要是将新主LUN映射给备用生产主机,也可提前映射),复制站点的备用生产主机接管业务并对新主LUN下发读写请求。

进行主从切换时,从LUN数据状态不能为不一致和同步中,因为此时从LUN的数据是不可用的,切换是没有意义的。

当从LUN数据状态为一致时,主从切换以后需要进行一次新主LUN到新从LUN的全量同步;当从LUN数据状态为已同步时,主从切换以后不需要进行全量同步,因为这时新主LUN和新从LUN的数据是完全一致的(见表3-1)。

表3-1主从切换与从LUN数据状态的关系此外,OceanStor存储阵列的同步远程复制还允许用户在链路异常的情况下,对复制站点的从LUN进行“强行主从切换”,让用户可以在复制站点使用新主LUN的数据。

强行主从切换以后的新主LUN没有从LUN,如果要对新主LUN进行容灾,必须重新指定一个从LUN。

主从切换能够在几秒钟之内,让业务在相隔较远的两地随意切换并确保数据一致性,满足了用户切换业务的需求。

3.2.6 一致性组相关功能在大中型数据库应用中,数据、日志、修改信息等存储在磁盘阵列的不同LUN中,缺少其中一个LUN的数据,都将导致其他LUN中的数据失效,无法继续使用。

如果需要同时对这些LUN进行远程容灾,那么就要考虑如何保持多个远程复制对的数据在时间上的一致性。

OceanStor存储阵列的同步远程复制提供一致性组功能来保证多个LUN之间复制数据时间一致性。

用户创建一致性组以后,可以将最多8个远程复制对添加到一致性组中,如图3-5。

相关主题