远程复制的同步/存取系统及其方法

文档序号:6612880阅读:208来源:国知局
专利名称:远程复制的同步/存取系统及其方法
技术领域
本发明涉及一种远程复制的同歩/存取系统及方法,特别涉及一种无中断 并能实现初始化同步与应用程序的数据存取并行运作的远程数据镜像同步方 法。
背景技术
目前,计算机储存系统广泛应用于储存人们日常生活和工作中的一些重要 数据,并且高效、安全的数据备份受到计算机用户的关心及重视。当操作系统 或者储存器发生故障及损坏时,可以迅速通过储存备份数据来代替受损数据, 以保证关键数据不丢失以及正常业务的连续性。
数据复制可以看成一种备份策略,并可以分为本地复制与远程复制。本地 复制不用经过网络传输,因此备份速度比较快。但是这种复制下原始数据与备 份数据都在同一个系统中,因此只能在系统可用的前提下解决原始数据遭到破 坏的问题。远程复制为业务连续性和灾难备份提供了更加强有力的保证,其在 远禾呈站点建立数据镜像,因此即使本地系统损坏,也能很快恢复数据。
创建远程镜像后,远程镜像使用的存储磁盘空间上是一些未可知的数据, 有可能是以前文檔的片段,也有可能是磁盘出厂时候的状态。如果这时候读取 远程镜像上的数据块,读取出的数据内容是不可预料的。因此,无论本地复制 还是远程复制,数据镜像都需要首先初始化同步,同步即从头至尾读取本地系 统的需备份数据,向远程镜像复制。这样数据镜像才能取得和本地系统完全一 致的数据备份。然后在此基础上,接受并处理本地系统的应用程序发送的例如
数据存取的新输入/输出(I/O)请求,才能实现数据的镜像功能。但是,如果
远程复制没有进行初始化的同步,就接受并处理本地系统发送的新i/o请求时,
只有本次请求的数据块会和本地系统的数据一致,而其它区域数据是随机不可
知的。例如应用程序在本地系统从第ioo个数据块开始写入两个数据块,即第
100个数据块和第101个数据块,此两个数据块通过远程复制系统复制到了远程镜像上,则远程镜像上只有第100和第101个数据块和本地系统一致,其它 数据块上数据还是不可预料的。因此这时现有技术通常需要中断本地系统的数 据服务,在同步完成后再开始新的服务。这样,则在一定程度上对本地端向远 程镜像的请求访问速度造成影响,进而降低其访问速度。

发明内容
为了解决上述现有技术中的问题与缺陷,本发明的目的在于提供一种远程 复制的同步/存取系统及其方法,以能够实现初始化同步与应用程序的数据存 取并行运作,保证无中断的远程数据镜像同步,提高数据存取数据的正确性。
本发明所提供的一种远程复制的同步/存取系统,应用一本地系统与本地 系统的远程镜像系统之间,此系统包含 一同步模块、 一互斥,莫块、 一判断模 块以及一请求处理模块;于此,同歩模块于远程镜像系统创建完成之后,按照
本地系统的储存器的数据区块顺序,依次执行远程镜像系统的初始化同歩操 作。互斥模块于初始化同步操作与本地系统的数据存取请求操作之间建立一小
粒度的互斥锁机制,以防止初始化同步操作与数据存取请求操作同时对储存器 上同一数据区块进行操作。判断模块于远程镜像系统的初始化同步过程中,判 断当前正在进行的初始化同步操作对应的数据区块位置与数据存取请求操作 对应的数据区块位置是否相同。请求处理模块依照判断模块的数据区块位置判 断结果以及小粒度的互斥锁机制,直接处理数据存取请求或者等待初始化同步 操作后处理该数据存取请求。
本发明所提供的一种远程复制的同步/存取方法,应用一本地系统与本地
系统的远程镜像系统之间,此方法包含以下步骤于远程镜像系统创建完成之 后,按照本地系统的储存器的数据区块顺序,依次执行远程镜像系统的初始化 同步操作;于初始化同步操作与本地系统的数据存取请求操作之间建立一小粒
度的互斥锁机制,以防止初始化同步操作与数据存取请求操作同时对储存器上
同一数据区块进行操作;在远程镜像系统的初始化同步过程中,判断当前正在 进,f的初始化同步操作对应的数据区块位置与数据存取请求操作对应的数据 区t央位置是否相同;以及当数据存取请求操作对应的数据区块位置与当前正在 进《?的初始化同步操作对应的数据区块位置相同时,依照小粒度的互斥锁机制 等f寺完成数据区块的初始化同歩后,处理数据存取请求。另外,当数据存取请求操作对应的数据区块位置位于当前正在进行的初始 化同步操作对应的数据区块位置之前时,直接处理数据存取请求,以及依照数 据存取请求执行向远程镜像系统的远程复制。当数据存取请求操作对应的数据 区块位置位于当前正在进行的初始化同步操作对应的数据区块位置之后时,依 照小粒度的互斥锁机制等待处理数据存取请求后,再顺序执行对数据存取请求 操作对应的数据区块的初始化同步。
本发明的远程复制的同步/存取系统及其方法通过在远程镜像创建完成之 后立即执行初始化同步,以及在同步操作与应用程序的数据存取请求之间建立 小粒度的互斥锁机制,因此可以在同步线程与数据存取线程不同时操作同一数 据区块时,实现两种操作的并行运作,且互相不受影响。此外,当同步线程与 数据存取线程某一时间点同时操作同一数据区块时,又可依照小粒度互斥禾几 制,既保证数据的正确性,又能够把对访问速度的影响降到最低。
以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的 限定。


图1为本发明的远程复制的同步/存取系统的系统方块图; 图2为本发明的远程复制的同步/存取方法的步骤流程图3为处理数据存取请求的线程流程图;以及
图4为处理同步操作的线程流程图。
其中,附图标记
10 本地系统
12 同步模块
14 请求处理模块
16 判断模块
18 互斥模块
20 远程复制模块
22 远程镜像系统
24 数据镜像
26 数据镜像步骤102创建本地系统的远程数据镜像
步骤104依照本地系统的储存器数据区块位置顺序读取数据
步骤106复制读取数据至远程数据镜像,执行远程镜像的初始化同步操

步骤108于初始化同步线程与数据存取请求线程之间建立小粒度的互 斥锁机制
步骤110判断初始化同步线程与数据存取请求线程执行的数据区块位

步骤112依照判断结果及互斥锁机制确定两线程的执行顺序
歩骤114依照数据存取请求,执行已同步数据区块的远程复制
步骤202获取锁,若锁被占用则等待
步骤204读取同步位置
步骤206请求位置与同步位置是否冲突
步骤208请求位置位于同步位置前/后
步骤210释放锁
步骤212处理请求
步骤214释放锁
步骤216加入请求于链表中
步骤218处理请求
步骤220请求处理完成后从链表中删除
步骤222释放锁
步骤224等待同步完成
步骤226处理请求
步骤302获取锁,若锁被占用则等待
步骤304更改同步位置
步骤306读取链表中全部请求
步骤308同步位置与请求位置是否冲突
步骤310释放锁
步骤312同步数据
步骤314释放锁步骤316等待请求处理完成
具体实施例方式
有关本发明的特征与实作,兹配合附图作最佳实施例详细说明如下。 请参考图1,此图表示本发明的远程复制的同步/存取系统。
如图所示,此系统应用于本地系统10与远程镜像系统22之间。远程镜像 系统22下创建有多个数据镜像24及26等,以储存有本地系统10的储存器数 据的远程备份。
本发明的远程复制的同步/存取系统用于执行远程镜像系统的初始化同 步,并能够同时处理本地系统10的应用程序数据存取。下面,^^结合图1详 细说明此系统的主要原理。
如图1所示,同步/存取系统包含同步模块12、请求处理模块14、判断模 块16、互斥模块18以及远程复制模块20。同歩模块14用于在远程镜像系统 22创建完成之后,立即执行远程镜像系统10的初始化同步。即依照本地系统 10的储存器数据区块顺序,从头至尾读取数据,并向远程镜像系统22复制。 进而文件存在应用程序的数据存取请求时,能够实现已初始化同步的数据区块 上数据的远程镜像。
请求处理模块14用于处理应用程序向本地系统10发送的数据存取请求, 进而发送此请求至远程镜像系统20,以获取复制远程数据镜像24或26中的 数据。对于应用程序请求的数据区块已经完成远程镜像初始化同步的,请求处 理模块14则在完成请求处理后,直接发送请求至远程镜像系统22。
但是,在同步模块12执行初始化同步操作的同时,若应用程序向本地系 统10发送的数据存取请求为针对储存器上尚未同步的数据区块,则请求处理 模块14无法实现远程数据镜像的功能。因此,本发明包含判断模块16与互斥 模块18,以针对应用程序数据存取请求操作的数据区块尚未同歩或者数据区 块正在由同步模块12执行初始化同步的情况,作出同步模块12与请求处理模 块14之间的协调与配合。
在同步模块12执行远程镜像系统20的初始化同步过程中,若本地系统 10接收到应用程序发送的数据存取请求,则由判断模块16判断当前正在进行 的初始化同步操作对应的数据区块位置与数据存取请求操作的数据区块位置是否相同。
互斥模块18用于在同步模块12的同步操作与请求处理模块14的请求操 作之间建立一小粒度的互斥锁机制,以防止初始化同步操作与数据请求存取操
作同时对储存器上同一数据区块进行操作。所谓小粒度的互斥锁fL制,是为了
实现一种只有初始化同步线程与处理数据存取请求的线程,读写同一个数据区 块时候才彼此互斥等待的机制,如果不是同一个数据区块就完全并行工作,既 能提高初始化同步速度,又能提高本地数据存取速度。这样互斥锁的粒度只是 两个线程处理同一个位置时的一个数据区块,数据区块单位一般都很小,很快 就可以处理完成,所以不论哪个线程拥有锁都会很快释放。两个线程读写同一 个数据区块的几率并不高,所以这个系统大部分时间是完全并发的。这个机制, 两个线程需要互斥的几率很小,而要求即使需要互斥了,互斥的时间又非常短 (因为锁粒度只是一个数据块,很快放锁),因此提供了并发性。小粒度锁机 制实现方式在下文中将给出详细描述。
因此,同步模块12与请求处理模块14可以在一定情况下互相不干扰地并 发运行各自的操作。当同步模块12或者请求处理模块14执行一数据区块的同 步或请求操作时,则由互斥模块18施加锁于此操作上,使两种操作之间存在 一定的优先级别互斥。因此,依照判断模块16传送的位置判断结果,互斥模 块18执行对应的互斥锁机制。
本发明的同步模块12与请求处理模块14在不同时操作相同数据区块时, 可以并行操作,而且互不影响。但是,当判断模块16判断数据存取请求操作 对应的数据区块位置(以下称作请求位置)与当前正在进行的初始化同步操作 对应的数据区块位置(以下称作同步位置)相同时,互斥模块18则激活小粒 度的互斥锁机制,使得请求处理模块14等待同步模块12完成对此数据区块的 初女台化同步后,再处理数据存取请求。
当判断模块16判断请求位置位于同步位置之前,即应用程序的数据存取 请求操作的数据区块已由同步模块12执行同步操作,则请求处理模块14直接 处理此数据存取请求,并发送请求至远程复制模块20,以依照请求向远程镜 像系统20的合适数据镜像24或26直接进行远程复制。
若判断模块16判断请求位置位于同步位置之后,即数据存取请求操作的 数据区块尚未执行初始化同步,则请求处理模块14仅完成本地系统的数据请求,暂不向远程镜像系统20发送请求,而是等待同步模块12的同步执行到此
数据区块时再交由远程复制模块20进行远程复制。在请求处理模块14在执行 本地系统的数据请求的同时,可以加入请求于一链表中。若同步模块12执行 完当前数据区块,需顺序执行下一数据区块时,读取链表中全部请求,并由判 断模块16判断同步模块12即将进行的同步位置与请求处理模块14的当前请 求位置是否相同。若位置相同,同步模块12需要依照小粒度的互斥锁机制, 等待请求处理完成之后再进行同步;若位置不同,同步模块12与请求处理模 块14则可以并行地处理各自的操作。上述情况下,请求处理模块14在完成请 求处理后,于链表中删除对应的请求。
现在请参考图2,此图为本发明的远程复制的同步/存取方法的步骤流程 图。如图所示,本发明的远程复制的同步/存取方法包含以下步骤创建本地 系统的远程数据镜像(步骤102),然后依照本地系统的储存器数据区块位置 顺序读取数据(步骤104),复制读取数据至远程数据镜像,以执行远程镜像 的初始化同步操作(步骤106)。在初始化同步线程与数据存取请求线程之间 建立小粒度的互斥锁机制(步骤108),以防止初始化同步操作与数据请求存 取操作同时对储存器上同一数据区块进行操作。在执行同步操作或者数据存取 请求处理时,判断初始化同步线程与数据存取请求线程执行的数据区块位置 (歩骤110)。最后,依照判断结果以及互斥锁机制确定两线程的执行顺序(歩 骤112),以及依照数据存取请求,执行已同步数据区块的远程复制(步骤114)。
上述步骤为本发明的远程复制的同步/存取方法大概流程图,下面结合图 3及图4说明本发明中处理数据存取请求的线程与处理同步操作的线程的详细 步骤。其中图3为处理数据存取请求的线程流程图,图4为处理同步操作的线 程流程图。
如图3所示,当处理数据存取请求的线程(下文称作请求线程)开始处理 应用程序的数据存取请求时,首先依照两线程之间建立的小粒度的互斥锁机 制,执行锁获取操作,并且当锁被占用时等待,直至有权限获得锁(步骤202)。 在获得锁之后,请求线程首先读取处理同步操作的线程(下文称作同步线程) 正在进行的初始化同步操作对应的数据区块位置(以下称作同步位置)(步骤 204)。然后判断请求线程处理的数据存取请求操作对应的数据区块位置(以 下称作请求位置)是否与同步位置冲突,即是否位置相同(步骤206)。若位置相同,依照小粒度的互斥锁机制,请求线程则释放锁(步骤222),并等待
同歩线程完成对此位置的数据区块的初始化同歩(步骤224),最后再处理数 据存取请求(步骤226)。
若请求位置与同步位置不同,则前进至步骤208,继续判断i青求位置位于 同歩位置之前还是之后(步骤208)。当判断请求位置位于同步位置之前,即 应用程序的数据存取请求操作的数据区块已由同步线程执行同步操作,则请求 线程释放锁(步骤210),并直接处理此数据存取请求(步骤212),以发送 请求至远程镜像进行远程复制。
若请求位置位于同步位置之后,即数据存取请求操作的数据区块尚未执行 初始化同歩,则释放锁(步骤214),并加入请求于链表中(歩骤216)。然 后仅完成本地系统的数据请求(步骤218),暂不向远程镜像发送请求,而是 等待同步线程的同步执行到此数据区块时再进行远程复制。在处理请求完成之 后,则从链表中删除请求(步骤220)。
加入请求于链表中为了考虑请求线程处理请求的同时,同步线程欲对当前 数据区块执行同步操作而造成的互斥问题。因此,在判断同步位置之后数据存 取之前释放锁,并加以互斥,以保证同步线程不同时进入这个数据区块内同步 数据。具体步骤请继续参考图4。
如图4显示,当同步线程开始操作时,首先获取锁,若锁被占用则等待(步 骤302)。同步线程当执行完当前数据区块而顺序执行下一数据区块时,需更 改同步位置(步骤304)。然后读取由请求线程加入链表中的全部请求(步骤 306),并依照链表中请求代表的请求位置,进一步判断更改的同步位置,即 将要进行同步操作的同步位置与请求线程当前处理的请求位置是否冲突相同 (歩骤308)。若位置冲突,则表示当前数据区块正由请求线程执行请求处理。 因此,同步线程依照小粒度的互斥锁机制,释放锁(步骤314),然后等待请 求处理完成(步骤316)。请求处理完成之后,再进行当前位置的数据同步(步 骤312)。
若位置不冲突,则表示同步线程与请求线程可以并行地处理各自的操作。 因此,同步线程释放锁(步骤310),并执行当前位置的数据区块同步(步骤 312) 0
当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但 这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
权利要求
1、一种远程复制的同步/存取系统,应用一本地系统与该本地系统的远程镜像系统之间,其特征在于,该系统包含一同步模块,于该远程镜像系统创建完成之后,按照该本地系统的储存器的数据区块顺序,依次执行该远程镜像系统的初始化同步操作;一互斥模块,于该初始化同步操作与该本地系统的数据存取请求操作之间建立一小粒度的互斥锁机制,以防止该初始化同步操作与该数据存取请求操作同时对该储存器上同一数据区块进行操作;一判断模块,于该远程镜像系统的初始化同步过程中,判断当前正在进行的该初始化同步操作对应的数据区块位置与该数据存取请求操作对应的数据区块位置是否相同;以及一请求处理模块,依照该判断模块的数据区块位置判断结果以及该小粒度的互斥锁机制,直接处理该数据存取请求或者等待该初始化同步操作后处理该数据存取请求。
2、 根据权利要求l所述的远程复制的同步/存取系统,其^^征在于,当该 数据存取请求操作对应的数据区块位置与当前正在进行的该初始化同步操作 对应的数据区块位置相同时,该请求处理模块依照该小粒度的互斥锁机制等待 完成该数据区块的初始化同步后,处理该数据存取请求。
3、 根据权利要求l所述的远程复制的同步/存取系统,其特征在于,当该 数据存取请求操作对应的数据区块位置位于当前正在进行的该初始化同步操 作对应的数据区块位置之前时,该请求处理模块直接处理该数据存取请求,以 执行向该远程镜像系统的远程复制。
4、 根据权利要求1所述的远程复制的同步/存取系统,其特征在于,更包 含一远程复制模块,依照该数据存取请求执行向该远程镜像系统的远程复制。
5、 根据权利要求l所述的远程复制的同步/存取系统,其特征在于,当该 数据存取请求操作对应的数据区块位置位于当前正在进行的该初始化同步操 作对应的数据区块位置之后时,该同步模块依照该小粒度的互斥锁机制等待处 理该数据存取请求后,再顺序执行对该数据存取请求操作对应的数据区块的初 始化同步。
6、 一种远程复制的同步/存取方法,应用一本地系统与该本地系统的远程 镜像系统之间,其特征在于,该方法包含以下步骤于该远程镜像系统创建完成之后,按照该本地系统的储存器的数据区块顺 序,依次执行该远程镜像系统的初始化同步操作;于该初始化同步操作与该本地系统的数据存取请求操作之间建立一小粒 度的互斥锁机制,以防止该初始化同步操作与该数据存取请求操作同时对该储 存器上同一数据区块进行操作;在该远程镜像系统的初始化同步过程中,判断当前正在进行的该初始化同 步操作对应的数据区块位置与该数据存取请求操作对应的数据区块位置是否 相同;以及当该数据存取请求操作对应的数据区块位置与当前正在进行的该初始化 同歩操作对应的数据区块位置相同时,依照该小粒度的互斥锁机制等待完成该 数据区块的初始化同步后,处理该数据存取请求。
7、 根据权利要求6所述的远程复制的同步/存取方法,其特征在于,当该 数据存取请求操作对应的数据区块位置位于当前正在进行的该初始化同步操 作对应的数据区块位置之前时,直接处理该数据存取请求,以及依照该数据存 取请求执行向该远程镜像系统的远程复制。
8、 根据权利要求6所述的远程复制的同步/存取方法,其特征在于,当该 数据存取请求操作对应的数据区块位置位于当前正在进行的该初始化同步操 作对应的数据区块位置之后时,依照该小粒度的互斥锁机制等待处理该数据存 取i青求后,再顺序执行对该数据存取请求操作对应的数据区块的初始化同歩。
9、 根据权利要求8所述的远程复制的同步/存取方法,其特征在于,该等 待处理该数据存取请求后执行该初始化同步更包含以下歩骤加入该数据存取请求于一链表中;当完成该初始化同步操作后,顺序更改该初始化同步操作对应的数据区块 位置;读取该链表中的该数据存取请求;判断该更改数据区块位置是否与该数据存取请求对应的数据区块位置相 同;以及当位置相同时,等待处理完成该数据存取请求后,进行该数据区块的初始化同步。
10、根据权利要求9所述的远程复制的同步/存取方法,其特征在于,更 包含当该数据存取请求处理完成后,于该链表中删除该数据存取请求的步骤。
全文摘要
一种远程复制的同步/存取系统及其方法,应用一本地系统与本地系统的远程镜像系统之间。本发明于远程镜像系统创建完成之后,按照本地系统的储存器的数据区块顺序,依次执行远程镜像系统的初始化同步操作。并且在初始化同步操作与本地系统的数据请求存取操作之间建立一小粒度的互斥锁机制(exclusive lock function)。在远程镜像系统的初始化同步过程中,判断当前正在进行的初始化同步操作对应的数据区块位置与数据存取请求操作对应的数据区块位置是否相同。最后依照位置判断结果以及小粒度的互斥锁机制,直接处理数据存取请求或者等待初始化同步操作后处理数据存取请求。为此可在同步线程与数据存取线程不同时操作同一数据区块时,实现两种操作的并行运作且互不影响。
文档编号G06F9/46GK101414267SQ200710163649
公开日2009年4月22日 申请日期2007年10月15日 优先权日2007年10月15日
发明者刘文涵, 姚海挺, 陈玄同 申请人:英业达股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1