《数据的远程副本的验证.pdf》由会员分享,可在线阅读,更多相关《数据的远程副本的验证.pdf(9页珍藏版)》请在专利查询网上搜索。
1、10申请公布号CN102084350A43申请公布日20110601CN102084350ACN102084350A21申请号200880130176122申请日20080702G06F15/1620060171申请人惠普开发有限公司地址美国德克萨斯州72发明人TE布鲁宁三世74专利代理机构中国专利代理香港有限公司72001代理人李娜王洪斌54发明名称数据的远程副本的验证57摘要通过在远程第二存储系统处存储在第一存储系统中存储的数据的镜像副本,来执行该数据的同步镜像。创建存储在第一存储系统中的数据的第一快照以及创建第二存储系统中的镜像副本的第二快照。计算第一快照的第一签名和第二快照的第二签名,。
2、以及比较第一和第二签名以验证第一存储系统中的数据是否等同于第二存储系统中的镜像副本。85PCT申请进入国家阶段日2010123186PCT申请的申请数据PCT/US2008/0690252008070287PCT申请的公布数据WO2010/002408EN2010010751INTCL19中华人民共和国国家知识产权局12发明专利申请权利要求书2页说明书4页附图2页CN102084359A1/2页21一种方法,包括通过在远程第二存储系统处存储在第一存储系统中存储的数据的镜像副本,来执行该数据的同步镜像;创建存储在第一存储系统中的数据的第一快照和第二存储系统中的镜像副本的第二快照;计算第一快照的第。
3、一签名和第二快照的第二签名;以及比较第一签名和第二签名以验证第一存储系统中的数据是否等同于第二存储系统中的镜像副本。2如权利要求1所述的方法,其中比较第一和第二签名包括以下中的一个(1)比较第一和第二校验和;以及(2)比较哈希值。3如权利要求1所述的方法,其中以同步方式创建第一和第二快照。4如权利要求1所述的方法,其中执行同步镜像包括由第一存储系统接收来自于客户端系统的修改第一存储系统中的数据的请求;响应于该请求,第一存储系统向第二存储系统发送用于更新该数据的请求的指示;由第一存储系统接收来自于第二存储系统的对该指示的确认;以及在第一存储系统向该客户端系统发送对该请求的处理的确认之前,第一存储。
4、系统等待来自于第二存储系统的确认。5如权利要求1所述的方法,其中创建第一快照和第二快照响应于接收到用于证实存储在第一存储系统中的数据等同于第二存储系统中的镜像副本的验证请求。6如权利要求5所述的方法,还包括在接收到该验证请求之后,在创建第一快照和第二快照之前,使存储在第一存储系统中的数据静止。7如权利要求6所述的方法,还包括在使第一存储系统中的数据静止之后,在创建第一快照和第二快照之前完成在运送中的任何写请求。8第一存储系统,包括用于存储数据的至少一个存储设备;处理器,其用于通过使得在远程第二存储系统处创建存储在该至少一个存储设备中的数据的镜像副本,来执行该数据的同步镜像;响应于验证该镜像副本。
5、等同于该数据的请求,创建存储在该至少一个存储设备中的数据的第一快照;使得在第二存储系统中创建该镜像副本的第二快照;计算第一快照的第一签名;从第二存储系统接收第二快照的第二签名;以及比较第一签名和第二签名以验证该至少一个存储设备中的数据是否等同于第二存储系统中的镜像副本。9如权利要求8所述的第一存储系统,其中该处理器还在接收到用于验证的请求之后并且在创建第一快照之前,使该至少一个存储设备中的权利要求书CN102084350ACN102084359A2/2页3数据存储静止。10如权利要求8所述的第一存储系统,其中该处理器还使第一快照和第二快照的创建同步。11如权利要求8所述的第一存储系统,其中第一。
6、签名和第二签名分别包括第一校验和以及第二校验和。12如权利要求8所述的第一存储系统,其中第一签名和第二签名分别包括第一哈希值和第二哈希值。13如权利要求8所述的第一存储系统,其中第一快照是该数据的时间点表示,其中该至少一个存储设备还包含对应于该数据的其它时间点表示的附加的快照,其中该快照的集合一起提供对该数据的基础版本做出的变化。14一种包括至少一个计算机可读存储介质的物品,该存储介质包含当运行时使得系统进行以下操作的指令通过在远程第二存储系统处存储在第一存储系统中存储的数据的镜像副本,来执行该数据的同步镜像;创建存储在第一存储系统中的数据的第一快照和第二存储系统中的镜像副本的第二快照;计算第。
7、一快照的第一签名和第二快照的第二签名;以及比较第一签名和第二签名以验证第一存储系统中的数据是否等同于第二存储系统中的镜像副本。15如权利要求14所述的物品,其中第一和第二签名包括以下中的一个(14)分别为第一和第二校验和;以及(2)分别为第一和第二哈希值。权利要求书CN102084350ACN102084359A1/4页4数据的远程副本的验证背景技术0001为了提供存储在存储系统中的数据的保护,一些解决方案实施镜像(MIRROR),其中将存储系统的数据复制到远程存储系统。可以以同步的方式执行数据的镜像,其中在远程存储系统处同步执行在源存储系统处(诸如由于来自客户端设备的写请求)对数据的任何修改。
8、、之后通知客户端设备已经完成写请求。通过执行同步镜像,远程存储系统处的远程镜像副本不同于源存储系统的可能性被降低。0002但是,即使执行同步镜像,没有提供常规技术来高效地确定远程存储系统处的镜像副本是否等同于源存储系统处的数据。这可能是在源存储系统故障的情况下从源存储系统到远程存储系统的成功的故障转移的障碍。因此,可能导致操作员假定镜像副本是包含在已经发生了故障的源存储系统中的数据的准确的复件;但是,这样的假定可能不是有效的并且可能导致数据完整性问题。附图说明0003通过举例方式参考以下附图来描述本发明的一些实施例图1是其中可以并入根据一些实施例的机制的示范性布置的框图,该示范性布置包括源存储。
9、系统和用于维持源存储系统中的数据的镜像副本的远程存储系统;图2是根据实施例的验证远程镜像副本是源存储系统中的数据的等同的当前副本的过程的流程图。具体实施方式0004根据一些实施例,提供一种使得能够验证远程存储系统处的数据的镜像副本与存储在源存储系统中的数据相同(CURRENTWITH)(等同)的机制。“源”存储系统是指主要由一个或多个客户端系统使用来访问(读或写)存储在源存储系统中的数据的存储系统。另一方面,远程存储系统是指备用或辅助存储系统,其在正常情况下不参与数据访问,而是在可能影响源存储系统中的数据可用性的事故或某种其它故障的情况下操作以存储包含在源存储系统中的数据的副本(镜像)。在一些。
10、实施方式中,远程存储系统可以位于远离源存储系统的位置。0005在一些实施例中,使用同步镜像技术,其中将(诸如由于来自于客户端系统的写请求的)对数据的任何修改同步传递给远程存储系统(以使得远程存储系统可以更新它的镜像副本)、之后源存储系统向请求的客户端系统提供已经完成写的确认。在某些情形下,可能期望验证远程存储装置中的镜像副本与存储在源存储系统中的数据相同(等同)。但是,执行这样的验证可能与几个问题有关。一个障碍是存储在源存储系统和远程存储系统中的数据量可能相对较大,以使得比较源存储系统和远程存储系统处的数据的副本在计算上是不实际的。第二个障碍是在同步镜像系统中,源存储系统和远程存储系统中的数据。
11、可能连续地变化,以使得精确验证源存储系统和远程存储系统处的数据的两个副本是相同的将会很困难。说明书CN102084350ACN102084359A2/4页50006为了解决这些问题,根据一些实施例的机制创建源存储系统中的数据和远程存储系统中的镜像副本的时间点快照(SNAPSHOT)。然后创建源存储系统中的数据的时间点快照的第一签名,并且基于远程存储系统中的镜像副本的时间点快照创建第二签名。第一和第二签名可以是基于源存储系统中的数据的内容和远程存储系统中的镜像副本的内容创建的任何种类的值。作为示例,签名可以是校验和(诸如循环冗余校验(CRC)值)、使用哈希函数生成的哈希值等等。存储系统中的数据的。
12、“时间点快照”(或更简单地“快照”)是指在某个特定时间点创建的数据的某种表示。注意,存储系统中的数据的快照无须是数据的完整副本。相反,快照可以仅仅包括存储系统中的数据的改变的部分。例如,第一快照可以包含第一时间点处数据的变化,第二快照可以仅仅包含发生在第一时间点和第二时间点之间的变化,等等。在重新创建数据的完整副本中,将必须组合多个快照,以及数据的基础版本(基础版本是指在随后创建的快照中反映的任何变化之前的数据的状态)。0007在其它实施方式中,可以使用其它种类的快照。0008通过比较源存储系统和远程存储系统中的快照的签名,创建了可靠的机制来高效地验证数据的远程镜像副本是否等同于源存储系统中的。
13、数据。通过基于快照而不是基于底层数据来计算签名,根据一些实施例的机制无须在可能花费一定量时间进行签名生成的同时强制源存储系统和远程存储系统中的底层数据保持静态。强制源存储系统和远程存储系统中的数据处于静态太长时间可能不利地影响存储系统性能,这是不期望的。0009在替换实施例中,验证远程镜像副本是否等同于源存储系统处的数据的技术还可以在异步镜像的背景下执行。利用异步镜像,可以在远程存储系统处的写完成之前确认源存储系统处的对数据的写的完成。0010图1示出包括源存储系统100和远程存储系统102的示范性布置。源存储系统100包括可以存储数据106的一个或多个存储设备104(例如,基于盘的存储设备、。
14、集成电路存储设备等等)。(一个或多个)存储设备104中的数据106可以被一个或多个客户端系统108(例如,客户端计算机、个人数字助理等等)通过数据网络110访问。客户端系统108的访问可以包括读请求或写请求。0011源存储系统100包括耦合到(一个或多个)存储设备104的处理器112。各个软件模块可在处理器112上运行,包括数据访问模块114(用于访问(一个或多个)存储设备104中的数据)、镜像管理模块116(用于在远程存储系统102处执行数据106的镜像)、和数据验证模块118(用于验证远程存储系统102处的镜像副本120与源存储系统100中的数据106相同(等同)。0012源存储系统100。
15、也包括网络接口122,以使得源存储系统100能够通过数据网络110通信。0013在远程存储系统102中,提供一个或多个存储设备122,其中保持源存储系统100中的数据106的镜像副本120。(一个或多个)存储设备122连接到远程存储系统102中的处理器124。包括数据访问模块126、镜像管理模块128和数据验证模块130的软件模块可在处理器124上运行。0014远程存储系统102通过网络接口132在数据网络110上通信。0015分别在源存储系统100和远程存储系统102中的镜像管理模块116和128协作以在远程存储系统102处执行源存储系统中的数据106的镜像(作为镜像副本120)。分别在说明。
16、书CN102084350ACN102084359A3/4页6源存储系统100和远程存储系统102中的数据验证模块118和130协作以证实镜像副本120与源存储系统100中的数据106相同。0016在执行数据验证以证实镜像副本120等同于源存储系统100中的数据106之前,数据验证模块118和130的每一个在源存储系统100中创建对应的快照140并且在远程存储系统102中创建对应的快照142,并基于快照140和142生成签名。然后将这些签名相比较以确定镜像副本120是否等同于数据106。注意,在快照140和142的创建期间,数据106和镜像副本120将必须保持静态。但是,创建快照140和142通。
17、常是比基于数据106和镜像副本120生成签名快得多的过程,以致分别在快照140和142的创建期间数据106和镜像副本120必须保持静态的时间量将相对较小。0017由数据验证模块118和130执行的数据验证可以用于各种情形下,包括在响应于源存储系统100处的某个故障或破坏而发生故障转移的情境下。在故障转移之前,系统操作员或管理员可能希望知道镜像副本120是否是当前副本(相对于源存储系统100中的数据106)。如果不是,则可以采取数据恢复步骤。但是,如果可以证实镜像副本120是当前的(等同于数据106),则该系统可以继续可靠地故障转移到远程存储系统102,并且使用镜像副本120作为最新的数据以供客。
18、户端系统108访问。0018证实镜像副本120是否是当前的还可以用在其它情境下,以允许系统管理员证实镜像机制是否正在正确执行。0019如上所述,执行的镜像是同步镜像。利用同步镜像,从客户端系统108到源存储系统100的写请求(其修改源存储系统100中的数据106的某部分)将使得源存储系统(以及更具体地,镜像管理模块116)首先将写数据和写请求发送到远程存储系统102。在远程存储系统102已经更新了镜像副本120之后,远程存储系统102(以及更具体地,镜像管理模块128)将确认发送回源存储系统100。然后,在源存储系统100已经执行了写之后,源存储系统100可以将确认发送回请求的客户端系统108。
19、以指示写已经完成。0020图2示出验证镜像副本120与源存储系统中的数据106相同的过程的流程图。该验证可以响应于从客户端系统108发送的请求,或者该验证可以响应于特定事件(例如,周期性地、异常事件、故障事件等等)执行。响应于诸如由源存储系统100的数据验证模块118接收到(在202)验证请求,数据验证模块118将该验证请求发送(在204)到远程存储系统102,以使得源存储系统和远程存储系统能够关于数据验证操作同步。在源存储系统100处,使得对源存储系统处的数据的输入/输出(I/O)活动静止(QUIESCE)(在206),以防止数据106在创建最新的快照之前被修改。在生成快照之前首先完成任何在。
20、运送中(INTRANSIT)的写请求。使源存储系统100中的数据106静止也意味着使镜像副本120静止。0021接着,创建(在208)源存储系统100中的数据106的快照140和远程存储系统处的镜像副本120的另一个快照142。以同步方式执行在源存储系统100和远程存储系统处创建快照。使快照创建同步通过源存储系统100使数据106静止(以暂时禁止数据106被改变)并且然后在使数据106静止之后交换消息以拍摄快照140和142来完成。0022如图1所示,数据106的在不同时间点的各个快照140存储在源存储系统100中的(一个或多个)存储设备104中,并且镜像副本120的在不同时间点的各个快照14。
21、2存储在远程存储系统102的(一个或多个)存储设备122中。0023接着,生成(在210)源存储系统处的快照140的第一签名(例如,校验和、哈希值)说明书CN102084350ACN102084359A4/4页7和远程存储系统102处的快照142的第二签名。生成快照的签名是指基于一个或多个快照的集合(和数据的基础版本)生成签名,该一个或多个快照的集合和数据的基础版本一起提供数据的当前状态的完全表示。0024接着,可以在源存储系统和远程存储系统之间交换校验和,诸如由远程存储系统102将它的校验和发送到源存储系统100,或者反之亦然。在源存储系统100或远程存储系统102(从另一个存储系统接收到签。
22、名的那个)处,数据验证模块118或130比较(在212)签名以验证镜像副本是否是当前的。0025如果否,则可以采取某种校正动作。如果签名匹配,则可以提供成功指示。0026在同步镜像的情境下执行上述过程。但是,可以在异步镜像的情境下应用类似的过程。在后一种情境下,在使源存储系统处的I/O活动静止(图2中的204)之后和在发送验证请求(图2中的206)之后,但是在创建快照(图2中的208)之前,可以通过将自从使源存储系统静止以来的所有改变应用于远程存储系统,来执行将异步远程镜像副本同步的步骤。0027注意,在一些情形下,可能必须执行将源存储系统处的数据的副本与远程存储系统处的镜像副本同步的步骤,因。
23、为有可能即使请求的客户端系统已被静止I/O活动可能已经处于运送中,使得还没有向请求的客户端系统确认I/O活动。0028加载如上所述的软件(包括图1的数据访问模块114和126、镜像管理模块116和128、以及数据验证模块118和130)的指令以在处理器(诸如图1中的处理器112和124)上运行。每个处理器包括微处理器、微控制器、处理器模块或子系统(包括一个或多个微处理器或微控制器)、或其它控制或计算装置。“处理器”可以是指单个组件或多个组件。0029数据和(软件的)指令存储在被实施为一个或多个计算机可读或计算机可用存储介质的相应存储设备中。存储介质包括不同形式的存储器,包括半导体存储器设备,诸。
24、如动态或静态随机存取存储器(DRAM或SRAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)和闪速存储器;磁盘,诸如固定盘、软盘和可移除盘;包括磁带的其它磁介质;和光学介质,诸如紧致盘(CD)或数字视频盘(DVD)。注意,上述软件的指令可以被提供在一个计算机可读或计算机可用存储介质上,或者可替换地,可以被提供在分布在可能具有多个节点的大型系统中的多个计算机可读或计算机可用存储介质上。认为这样的计算机可读或计算机可用存储介质是物品(或制品)的一部分。物品或制品可以是指任何制造的单个组件或多个组件。0030在前面的描述中,阐述了很多细节以提供对本发明的理解。但是,本领域技术人员将理解,可以不用这些细节来实践本发明。尽管已经参考有限的实施例公开了本发明,但是本领域技术人员将理解由此而来的很多修改和变化。所附的权利要求书意欲覆盖落入本发明的真正精神和范围内的这样的修改和变化。说明书CN102084350ACN102084359A1/2页8图1说明书附图CN102084350ACN102084359A2/2页9图2说明书附图CN102084350A。