具有数据跟踪的存储复制系统的制作方法

文档序号:6554330阅读:208来源:国知局
专利名称:具有数据跟踪的存储复制系统的制作方法
技术领域
本发明涉及数据存储领域,更具体地说,涉及具有数据跟踪能力的存储复制系统。
背景技术
数据的多个副本的维护是在数据不可用、损坏或丢失的情况下数据处理操作中安全功能的组成部分。数据处理系统的机构用户一般维护大量极重要的信息,并且耗费大量时间和金钱来防止数据因灾难或大灾难而造成的不可用性。维护冗余数据副本的一类技术称作镜像,其中,数据处理系统用户在可移动存储介质中现场保存或者在位于本地或远程的辅助镜像存储站点中保存有用信息的副本。现场以外但在大城市距离内、例如一直到大约200公里内的远程镜像防止本地灾难,包括火灾、断电或盗窃。跨过数百公里的地理距离的远程镜像可用于防止大灾难,例如地震、龙卷风、飓风、洪水等。许多数据处理系统采用设置在多个地理距离的多级冗余度来保护数据。
多站点数据复制和镜像技术的一个方面是响应站点之一的故障和灾难状况。通常,可能需要某种数据重正化或调和来使各种幸存站点或节点达到同步,即通常涉及幸存节点中要重正化的逻辑单元(lun)的完整复制的过程。复制导致性能和可用性降级,这是企业类高可用性和灾难容许应用不可接受的。

发明内容
根据用于重组扇出关系的技术的一个实施例,存储复制方法包括在多个目标之中复制来自源的数据,并跟踪目标中的数据修改。修改的标识在多个目标阵列之中相互传递。在源故障转移事件中,所选目标作为新源被建立,从而把其余目标中的已复制数据重组为与新源同步。


通过参照以下描述和附图,可以最佳地理解涉及结构和操作方法的
具体实施例方式图1A、图1B和图1C是示意框图,说明具有以1:n扇出配置来设置并且适合修改为具有低开销的1:n-1扇出的多个存储阵列的存储系统的一个实施例;图2是示意框图,说明适合用于冗余数据存储系统的存储单元的一个实施例;图3是示意流程图,说明适合快速重组扇出关系以便把数据复制到多个地理位置、同时没有风险地维护数据的技术的一个实施例;图4是示意图,说明存储系统中数据跟踪的一个实例中的一系列块图;图5表示示意表格图,说明适合用于在复制跟踪期间收集数据的数据结构的一个实施例;图6A和图6B是流程图,说明用于在源故障的情况下把扇出修改为减小的扇出比的技术的实施例;图7A和图7B是流程图,说明用于在出现源故障时重组扇出配置的技术的实施例;以及图8A和图8B是示意框图,说明不包括所跟踪信息的跟踪和共享的存储系统配置。
具体实施例方式
描述用于重构1:n扇出的多站点复制的存储系统、存储单元及关联操作技术,它避免了大部分故障情况中几乎所有的重正化开销。
采用本文所公开的技术和结构的扇出的重组可使站点间通信量、再同步时间以及对主机应用的性能影响减小或最小。这些技术和结构还可使其中源逻辑单元(lun)在故障事件之后无权访问至少一个相应的同步副本的时间窗口减小或最小。
参照图1A、图1B和图1C,示意框图说明存储系统100的一个实施例,它包括以1:n扇出配置、说明性地为1:3扇出配置来设置的多个存储阵列102S、102D1、102D2和102D3。图1A说明1:3逻辑单元(lun)扇出实例,其中具有可称作集线器的源阵列102S以及三个目标阵列102D1、102D2和102D3。图1B说明在源阵列102S出故障时的1:3 lun扇出实例。图1C说明在源故障之后以及在扇出修改为1:2配置之后的存储系统100的结构。逻辑104通过多个存储阵列102S、102D1、102D2和102D3分布,并且在其中可执行。在一些配置中,逻辑可在存储阵列外部延伸到主机、计算机、控制器、存储管理装置等。逻辑104适合在从源存储阵列102S到n个目标存储阵列102D1、102D2和102D3的数据复制过程中跟踪数据修改。逻辑104经由通路106在n个目标存储阵列之间相互共享所跟踪数据修改信息,其中n为任何适当数值。逻辑104通过重组为1:n-1扇出配置来响应故障转移状况。根据来自n个目标存储阵列102D1、102D2和102D3的互相共享的所跟踪数据修改信息来引导重组。
简单远程复制部署可能是双站点的,也称作1:1配置,其中,对一个逻辑单元(lun)的输入/输出操作实时复制到通常处于分开的地理位置的目标阵列中的目标lun。如果某个事件、例如诸如气候、地震、断电或破坏情况等灾难状况影响主站点,则应用可通过把操作移到辅助站点来恢复到紧靠该事件之前的状况。1:1远程复制安排的限制在于,在站点事件之后,在受损站点恢复之前,仅保留复制数据的单个副本。恢复时间可能相当长,表示对于诸如银行业、经纪业、证券交易所、军事、卫生保健等行业和机构中的苛求灾难容许和高可用性应用的不可接受的单一故障点风险。许多灾难容许和高可用性用户对于在一个站点因事件而拆除时产生两个活动站点的三站点复制提出技术要求。
逻辑单元(lun)扇出是基于阵列的远程应用技术,它涉及把源lun的镜像副本同时复制到两个或两个以上目标阵列。对源的新写入以异步或者同步方式复制到多个目标。在同步复制中,在对于源lun以及目标lun进行了写入时,对始发主机确认对于源lun的写操作已完成。在异步复制中,在对于源lun而没有对目标lun进行了写入时,对始发主机确认对于源lun的写操作已完成。写入稍后在与对源lun的写入无关的动作中应用于目标lun。异步复制实现地理分布远程复制的最高性能级别,因为没有在对源lun的写操作上引起线路等待时间延迟。同步复制虽然对远距离具有较低性能,但确保目标lun一直是源lun的逐字节精确或者极接近精确的复制品。
多站点远程复制可采用单个lun扇出、简单1:2扇出技术或者如说明性存储系统100中的1:3扇出来实现。
更高的lun扇出比增加冗余度并因而增加可靠性。Lun扇出还实现用户对数据的可访问性。例如,广播分发数据分布模型可包含1:n扇出,其中n为二或大于二、甚至可能大得多。在一个具体实例中,活动流媒体馈送可应用于接近客户机应用的服务器,从而消除大量的网络开销。
存储系统100可通过特定位置、例如诸如伦敦之类的地理位置上的源存储阵列102S或集线器来直观化。从集线器102S中延伸出通信链路108,它们把集线器102S连接到远程存储阵列102D1、102D2和102D3。集线器102S可能是包含源逻辑单元(lun)110S的阵列。远程存储阵列102D1、102D2和102D3包含远程lun 110D1、110D2和110D3。数据在通信链路108上同步或者异步地流动。在典型情况中,存储阵列在地理上分布。仅作为实例,第一目标阵列102D1和第一目标lun 110D1可能位于纽约,第二目标阵列102D2和第二目标lun110D2可能位于东京,以及第三目标阵列102D3和第三目标lun110D3可能位于香港。宽广的分布有助于消除有限地理区域中可能出现的故障。在一种典型配置中,一个或多个链路极遥远并且是异步的,以及一个链路处于大城市区域内或者跨过它并且是同步的,从而使源lun能够在保持适当的灾难容许的同时是相当迅速反应的。其它配置也是可行的。
图1B说明与1:n扇出操作相关的问题-如何解决因源102S的丢失而产生的扇出关系破坏以及扇出关系的重组,以便采用其余存储阵列102D1、102D2和102D3重建扇出复制。
当源存储阵列102S或集线器丢失、或者对集线器的通信丢失的状况出现时,如果存储系统环境100能够进行到目标存储阵列102D1、102D2和102D3之一的故障转移操作,则应用可继续进行。
在不包括所跟踪信息的跟踪和共享的扇出安排800中,目标阵列之间不存在关联,如图8A所示。每个目标阵列802D只与集线器802S有关系。当扇出关系因集线器802S的丢失而要重组时,如图8B所示,目标阵列802D没有与哪些块已经或者还未对其它目标阵列802D上的相应lun 810D写入相关的信息。因此,被确定为作为新集线器工作的目标阵列必须完全复制该lun,这是可能持续相当长时间、也许数天的操作,并且完全复制操作引起的性能损失可能是显著的。一旦开始扇出的形成,则客户遇到只保护数据的单一良好副本而与扇出的起始程度无关的环境。
下面更详细地描述图8A和图8B。
再次参照图1A所示的存储系统100,通过维护目标存储阵列102D1、102D2和102D3中的信息之间正在进行的关联来增强数据保护和效率。通过可称作记帐技术的一种技术的操作来维护该关联,使每个目标阵列能够保持相对于其它目标存储阵列102D1、102D2和102D3的任一个上的合作lun 110D1、110D2和110D3不同的本地lun110S中的块的身份和跟踪。
通常,各个目标存储阵列102D1、102D2和102D3包括配置成跟踪相应目标逻辑单元(lun)110D1、110D2和110D3中的数据块的修改的逻辑。在跟踪操作中,逻辑可检测针对与源存储阵列102存在扇出关系的逻辑单元(lun)的写入,并通过向其它目标存储阵列102D1、102D2和102D3的每个发送通信包来响应写操作。在说明性实施例中,通信包通过相互远程通信链路106在目标存储阵列102D1、102D2和102D3之间相互交换。在一些实施例中,目标存储阵列102D1、102D2和102D3通过异步通信来通信,由此在网络上进行请求,而无需等待应答以进行通信。应答可在稍后时间到达。
在一个说明性实施例中,逻辑收集数据包,其中包括通过一个或多个写入修改的块编号以及由源阵列102S提供并表明对源102S的写入的序列号。
在源阵列102S中,对于经过扇出的逻辑单元(lun)、如110S,块写入通过分配序列号来处理。每个写入通常由一个序列号标识。源阵列102S在通信链路108上向所有目标存储阵列102D1、102D2和102D3发送包括块标识符(ID)、块中的数据以及序列号的信息。
块可能是物理实体或者逻辑实体。例如,块可能是轨道/扇区,它通常与物理存储元件或盘相关。典型的逻辑实体是lun中的顺序块编号。一般来说,块是在存储元件中所定义偏移处固定已知大小的数据的信息块。不同类型的存储阵列可采用不同类型的块来复制数据。例如,一些阵列采用指定为轨道/扇区项的物理块,其它阵列则采用逻辑块。
为了说明并作为逻辑块描述的一个实例,lun可包括1000个块,各具有1兆字节(MB)的大小。这个上下文中的块562的含义是lun中的第562个1MB块。
序列号由源阵列分配。序列号是对具体逻辑单元(lun)依次连续递增的整数。对源阵列中的第一逻辑单元、例如lun A的写入不影响同一个源阵列中的第二逻辑单元、如lun B的序列号。因此,对于针对源lun的每个写操作的到达,序列号加一。读操作使序列号保持不变。
包可捆绑为包组,并以包组在目标存储阵列102D1、102D2和102D3之间传递,以便促进效率。目标存储阵列102D1、102D2和102D3还包括适合相互接收来自其它目标存储阵列102D1、102D2和102D3的数据包和/或数据包组并根据包信息来确定数据内容差异的逻辑。目标存储阵列102D1、102D2和102D3之间的远程通信链路106使各目标存储阵列能够在受到阵列之间传输延迟的影响的基本上所有时间具有与所有目标阵列之间lun内容的差异相关的信息。远程通信链路106可能是目标存储阵列102D1、102D2和102D3之间的直接连接。在一些实现中,远程链路1 06可能与到源存储阵列102S的互连通路无关。在一些情况中,通信链路106可能处于相同网络中并且因而不是独立的,但是,如果源附近的链路106的一部分出故障,只要目标存储阵列之间的链路106的分段例如以公共互联网工作的方式保持可工作,则操作继续进行。远程通信链路106可通过适当的互连技术来组成。一个实例是因特网协议(IP)通信。
当集线器阵列丢失时,例如如图1B所示,并且扇出将被修改为如图1C所示,则目标存储阵列102D1、102D2和102D3中的任一个可被选择作为新的中央集线器102S’进行工作。新指定的源阵列或集线器102S’从控制实体、例如系统管理实体接收对故障转移操作的命令。存储系统100中的逻辑可适合于通过把多个存储阵列配置为排除出故障的源存储阵列102S并且在与故障转移实质上同时进行的分配中把n个目标存储阵列102D1、102D2和102D3其中之一分配为作为新的源存储阵列102S’进行工作,来响应故障转移状况。例如,新源的确定可根据各种条件或情况来进行,例如根据引发事件的类型或性质、时刻、技术支持的可用性、各个站点的技术特性、各种商业惯例等。例如,可根据事件在工作时间出现在一个位置以及半夜出现在另一个位置来选择源。
一旦新源存储阵列102S’被选取,存储系统100还可通过把其余n-1个目标存储阵列中的数据重组为与新源存储阵列102S’同步或一致,来响应故障转移状况。为了重组存储系统100的其余部分,命令或信号可从新源存储阵列102S’发送,通知其余目标存储阵列正在重组扇出。在接收到重组命令时,新配置中的目标存储阵列102D1’和102D2’不再接受来自先前源存储阵列102S的新请求。在重组命令之前到达的每个写入被完成,而与确认是否可发回到原始源102S无关。目标存储阵列102D1’和102D2’还通过发送指定已经接收更新的目标lun 110D1’或110D2’上的块的最终列表,来响应新的源存储阵列102S’。
新的源存储阵列102S’通过确定从其余目标存储阵列102D1’和102D2’接收的已更新块列表中的差异,分辨系统数据状态,并且把足以使存储阵列同步的数据重新复制到目标存储阵列102D1’和102D2’。新的源阵列102S’经由通信链路108仅把不同的块复制到重组目标存储阵列102D1’和102D2’。在分辨阶段,新的源存储阵列102S’仅发送与源相比在目标阵列中缺乏的那些数据块,从而使目标与新的源同步。
在成功重组命令的典型情况中,新的源存储阵列102S’请求和接收与哪些块将被复制到每个目标阵列以使目标lun 110D1’和110D2’能够与新的源存储阵列102S’同步有关的信息。新的源存储阵列102S’仅复制与各目标lun 110D1’或110D2’不同的块,以及扇出重组。
在重组命令无法执行并且目标阵列无法被访问的例外情况中,不可访问的目标阵列未参与扇出重组。如果在扇出经过修改之后,来自主机应用的任何写入被发送到新的源lun 110S’,则采用所述技术的一个实施例,块副本用于在目标阵列重新回到联机时把不可访问的目标阵列修改回到扇出中。采用说明的技术,扇出能够以最大效率再同步,对于在扇出关系中最初同步的lun在不可访问的时间周期之后重新加入扇的状况,仅复制不同的那些块。仅在全新的lun加入该扇的情况下,才批准所有lun块的完全复制。该技术还包含原始源重新加入1:n-1扇以便重组1:n扇出的情况。该技术还包含新源lun见到写操作而该扇中的一个或多个目标lun不可访问的情况。在所有情况中,该技术包括仅复制不同的块的动作。
原始源102S也可为应用于lun的写入维护块/序列表。所述基本块差异记帐和更新适合于写操作。一旦重组链路可工作或者原始源102S重新加入扇-在作为目标重组之后-对重组命令的响应在接收时可包括块/序列号列表,它可能比较大,取决于通信丢失的持续时间。
在一个典型实施例中,与lun复制的完整性无关地选择新的源。所选新源可能没有与目标阵列的一个或多个那样最新的复制。在典型实施例中,不进行工作来获得更完整的新源。但是,在一些实施例中,可寻求最近的信息。这类实施例可包括在新的源存储阵列102S’中可执行的逻辑,它适合确定目标存储阵列102D1’或102D2’是否具有比新的源存储阵列102S’更加新近的状态。在发出重组命令以及收集响应之后,确定具有更近的状态的目标存储阵列102D1’或102D2’。在lun的所有块上具有最高块序列号的目标存储阵列102D1’或102D2’为最近的。如果到任何目标的通信中断,则那个目标无法参与协商。新的源存储阵列102S’向具有最近的状态的目标存储阵列发送对于目标阵列中包含的、但新的源存储阵列102S’中不存在的数据的请求。向目标请求的块是具有较高序列号的任一个。新的源存储阵列102S’从所选目标阵列收集lun的较新的块,并采用响应该请求而接收的数据来更新新的源存储阵列102S’。
新的源阵列从所选目标阵列收集(Lun的)较新的块。
参照图2,示意框图说明适合用于冗余数据存储系统200的存储单元202的一个实施例。数据存储系统200可具有很少或许多存储单元202。存储单元202包括存储装置204、适合与多个分布站点存储单元通信的输入/输出(I/O)接口206以及控制器208。逻辑是在控制器208上可执行的,它适合把存储单元202作为扇出安排中的辅助站点来操作,并把数据从主站点存储单元复制到存储装置204。逻辑还跟踪被写入存储装置204的数据的修改,并在多个分布站点存储单元之间传递所跟踪修改。逻辑还收集从多个分布站点存储单元接收的所跟踪变化。
存储装置204可能是任何适当的存储介质装置,例如盘阵列、光盘存储设备、分层存储器和/或具有存储能力的分布式但结合控制的网络。存储装置204至少部分配置为逻辑单元(lun)210。
在存储单元202作为辅助站点存储单元来操作的过程中,在控制器208上可执行的逻辑检测针对与主站点存储单元存在扇出关系的逻辑单元(lun)的写入。逻辑跟踪写操作写入的逻辑单元(lun)中的块。在一个具体实施例中,跟踪动作可包括收集通过对存储单元202写入所修改的块编号以及从主机或源发送的、表明块内容的唯一标识符的序列号。所收集的块编号和序列号可存储在数据包中或者在所选时间上累积,并且形成可称作“信息块”的包组,以及例如通过异步通信直接在其它分布辅助站点存储单元之间传递,从而共享所跟踪信息。逻辑从其它辅助存储单元接收包和/或组中的块编号和序列号数据,以及相对于存储单元202本地的信息来分析该信息,从而确定通常在分布站点的多个辅助存储单元之间数据内容的差异。
存储单元202可接收对故障转移的命令。响应该命令,在控制器208上可执行的逻辑把存储单元202作为辅助站点来操作,并且发送请求以重组连网到存储单元202的扇出分布站点存储单元。分布站点存储单元通过发送表明远程单元上复制的写入的已更新块列表来响应该请求以便重组。存储单元202根据已更新块列表来确定哪个数据要发送给分布站点存储单元,并把该数据复制到分布站点单元。所复制的数据足以创建来自主站点的数据(lun)的精确的逐字节复制品。
如果在故障转移之后,存储单元202没有被选择作为主存储单元,则在控制器208上可工作的逻辑通常接收作为故障转移的第一指示的来自发起数据重组的新的主存储单元的信号或命令。响应进行重组的信号,逻辑立即停止接受来自先前主存储单元的新请求,并向新的主存储单元发送包含原始复制流所更新的最后的块的列表的已更新块列表。
参照图3,示意流程图说明适合快速重组扇出关系以便把数据复制到多个地理位置、同时没有风险地维护数据的技术的一个实施例。存储复制方法300包括在多个目标之间复制302来自源的数据,并跟踪304多个目标中的数据修改。修改的标识在多个目标阵列之间相互传递306。在源故障转移事件中308,所选目标作为新源被建立310,从而把其余目标中的已复制数据重组312为与新源同步。通过例如用户按下图形用户界面(GUI)上的按钮或者在命令行界面(CLI)键入命令以激活故障转移,通常可作为新源来建立310所选目标。
在故障转移310之前在目标之间修改数据的相互传递306实现用户应用遇到在涉及集线器阵列的故障之后仅存在数据的单个当前副本的状况的时间量的明显减小。修改数据的传递306还对于源lun改进故障转移之后的吞吐量性能,因为避免了完整数据副本。
参照图4,示意图说明表示存储系统中数据跟踪的一个实例的一系列块图400。在扇出操作开始时,当一个或多个目标被添加到扇出时,数据的完整副本通过通信链路被发送到目标,从而使源和目标中的对应逻辑单元(lun)中的数据同步。块标识符(ID)404和序列号406的完整块图402在开始时从源阵列发送到目标阵列。完整拷贝在从源到目标的通信通路上完成,使得目标具有与源lun对应的lun的块编号和序列号的完整图。lun的所有块以二列值阵列402来表示。第一列404为块编号。第二列406包含与块列404中的相应块关联的序列号。每一行具有不同且唯一的序列号。根据在源阵列上执行的说明性数据跟踪技术,复制序列号是不允许的,并且不会发生。此后,当源阵列接收写入时,包括块ID、数据和序列号的信息三元组被传递到各目标。在进行写入时采用新的序列号覆盖各目标上的块图中的条目。
为了说明,块图402表示五块lun的极简化实例,它在源阵列中形成,并被传递到一个或多个新的目标阵列。各目标维护与源阵列中存储的块图表402关联的表。
在一些实施例中,源上的跟踪表可扩充,使得源对于各目标以及对于源随后将作为目标重新加入扇出时的使用维护一列。列以极少或没有附加开销来维护,因为源在任何情况下接收关于对目标的写入的确认。在源上的所有目标块的跟踪使源能够重新加入扇出,而无需在不影响源lun的故障事件之后的完整拷贝。因此,说明性技术实现从1:n-1扇出回到1:n扇出的重组。
源阵列通常可把写入作为写入序列中的各个写入发送到目标阵列。在某个实现或者在一些条件下,源阵列可累积或捆绑多个写入,并把捆绑写入作为一个单位来发送。对于捆绑写入的传递,如果同一个块具有在该捆绑中的不止一个写入,则只有最后的序列号及关联数据位被发送给那个块的目标lun。因此,捆绑改进重复被写入的特定块的情况中的效率,因为那个块的数据在构建信息块时仅在每个单位时间通过链路传送一次。事务处理语义可用来确保目标lun始终处于应急一致状态。在应急一致状态中,lun包含信息块的应用之前的精确逐字节值或者信息块应用之后的精确逐字节值。如果目标lun进入一种其中已经仅应用部分信息块的状态,则信息块可能不是应急一致的,因为写操作没有按照与源lun相同的顺序应用于目标lun。虽然信息块数据移动和应急一致性对所说明的技术具有极少或没有实质影响,但事务处理语义可帮助进行关于哪个目标被选作用于扇出的新集线器的判定。因此,组块方法可能产生从不发送给目标阵列的一些数据块及相应序列号,因此,这类覆盖的序列号可能从不出现在任何目标表中。这类所省略的序列号对于所说明的技术的可操作性不重要。
除了从源阵列到所有目标阵列的更新之外,目标阵列还经由目标阵列之间的彼此互连来接收更新。目标阵列之间的相互通信还提供块和序列号组合的更新。
块图408T1说明在时间T1第一目标阵列、即目标一的块图。块图408T1包括目标一专有的块ID 410和序列号412,与源阵列的块图402中的相应列相似。另外,块图408T1还在相应列“目标2序列号”414和“目标3序列号”416中保存其它互连目标阵列、在此为目标二和目标三的序列号。在说明性实例中,目标二的序列号仅对于块三与目标一不同。目标三的序列号对于块二和块三与目标一不同。失配可能由阵列之间的各种通信延迟或者因写入捆绑引起的阵列的内部延迟而产生,从而使目标的记帐视图落后。在同步复制的情况中,最多只预期少数失配。在异步复制中,失配发生率不同,并且在一些情况中可能很大。说明性技术在故障转移时解决失配,而不管哪个目标lun在另一个目标lun之前,以及不管目标lun中任一个在后或在前相距多远。说明性技术还使数据移动减少或最少。
各目标维护和更新适当lun的相似块图表。
在故障转移的时间T2,发生例如至少临时消除源站点的事件。在实例中,目标一被选择为新的源阵列。目标一向目标二和三发送“重组”命令和指令,表明目标一作为可应用的lun的源阵列取得控制权。目标二和目标三都停止接受来自原始源阵列的新写入包,并且采用目标已经提交的最后一组块编号和序列号对来响应新的源阵列、即先前的目标一。然后,目标一最后一次更新表示为图408T2的块图。
作为新源阵列的先前目标一扫描块图表408T2,以便允许对不匹配的行条目的检测。在说明性实例中,目标二的块3以及目标三的块2和3不匹配新源阵列的条目。因此,新的源阵列向目标二发送包括所有数据位的块3的内部副本,以及向目标三发送块2和3的内部副本。在完成从新源到目标二和三的拷贝之后,目标二和三的相应lun包含与先前目标一完全相同的逐块内容。操作返回到跟踪状态,其中1:2扇配置替换先前的1:3配置,先前的目标一作为新的源阵列运行。在数据拷贝之后,所有阵列处于同步。在说明性实例中,仅对不匹配的块制作完整数据拷贝,从而消除七个匹配块的完整拷贝。对于此具体实例,该技术仅具有不采用说明性数据跟踪的技术的30%的拷贝负荷。在每个lun有超过五个块的现实的实例中,节省明显更高,对于大部分使用情况,与所有块的完整拷贝相比,通常具有10%或10%以下的拷贝负荷。
该实例说明到所选目标的故障转移。在实现的另一个实施例中,可向精选目标进行故障转移,其中所选目标继承了重组扇时数据的最近副本。该技术涉及先前所述的相同情况和动作,但故障转移是向包含最近副本的目标、这里为目标三进行的。块图表418表示最终确定表格的握手之后的1:2扇出配置的起始条件下的状态。块图表418是从目标三的角度来看的块图表408T2的视图。作为新源阵列的目标三扫描表格,并确定最高序列号包含在目标一中。因此,目标三请求目标一传送不同的每个块。在当前实例中,目标三请求块2和3的数据位。在传送之后,目标三具有最近的数据。通过把块3从目标三复制到目标二,目标三可按照说明性方法使目标二等于目标三。因此,所有目标均包含最近的数据,以及目标三准备作为新的源开始操作。
“最近的数据”的概念应用于在故障转移时具有活动通信链路的目标。如果包含实际最近的数据的目标因链路故障而不可访问,则具有不太新近的数据、但比其它任何可访问目标更新近的数据的可访问目标被看作具有“最近的数据”。
参照图5,示意表格图说明适合用于在复制跟踪期间收集数据的数据结构500的另一个实施例。指定轨道和扇区数据的说明性块列可在一些实施例中用作描述图4所示的块标识符的不同技术。数据结构可实现为各种文件、表格、辅助文件等,其中包含通常经由写操作已访问的块的表格。源数据结构502是与主存储装置关联的对象或应用。例如,源集线器维护写入的表,并把对表的改变转发给其它阵列或目标。源502接收来自主机的写入,并把写入依次或者以信息块形式分发给各目标,如数据结构502S所示。目标数据结构504D1、504D2和504D3是分别与三个目标存储装置关联的对应对象或应用。目标数据结构504D1、504D2和504D3表示各个目标所接收的数据,它仍未提交给存储装置。目标接收写入流、例如结构502S所示的写入,并在接收时按次序把写入应用于lun。如果采用信息块技术并且已经出现块覆盖,则源502S捕捉对同一个块的盖写作为单行,以及写入的信息块作为单个事务处理应用于目标。否则,在流式或非信息块实现中,如果对单行进行写入,块不会被覆盖,并且同一个块可能以多行多次表示,则写入可对各目标依次应用,以及事务处理大小为单行。各目标通过流式或者信息块传送来接收结构502S信息。各目标接收来自源的表的变化的列表,并把已改变数据的块和序列号的列表转发给其它所有目标。变化信息的列表可实时转发,或者可累积并在所选累积之后转发。一旦目标504D1、504D2和504D3采用顺序或信息块传送接收到结构502S中的数据,则当各块或信息块被提交到盘时,目标向其它目标阵列发送一组块标识和序列号组合。数据组合说明所提交数据的块编号和序列号。所提交块中的数据字节没有从一个目标发送到另一个,从而采用最小的目标间带宽利用使记帐技术高效。
对于相应源和目标存储装置中每一个,各种数据结构包括块字段506S、506D1、506D2和506D3;数据字段508S、508D1、508D2和508D3;以及序列字段510S、510D1、510D2和510D3。块字段506S、506D1、506D2和506D3指定对其进行写入的存储介质上的一个或多个位置,诸如逻辑单元(lun)以及轨道和扇区信息。数据字段508S、508D1、508D2和508D3表示与相应块字段中的相应轨道和扇区信息对应的缓冲数据。序列字段510S、510D1、510D2和510D3标识源所定义的、并与相应数据字段中列出的相应数据以及块字段中列出的轨道和扇区信息关联的序列号。
在一些实施例中,数据结构可包括确认字段,指定特定条目与其它存储单元相关的确认。例如,确认字段中的逻辑值“一”可表示从其它辅助存储单元接收到信号,表明特定序列号条目已经复制到其它存储单元。逻辑值“零”可表示没有对特定辅助存储单元的复制。
在示例操作中,源表明从4到9的已复制序列号。第一目标复制与序列号4到8对应的写操作。第二目标复制所有源写入。第三目标复制与序列号4到8对应的写操作。不同存储单元之间的差异可能由链路的暂时不可操作性或者由可能经由同步或异步通信进行通信的链路之间的定时差异所产生。链路之间的异步通信可能产生完成许多写入时的差异、因而产生许多序列号。链路之间的同步通信通常最多产生一个写入的完成差异。
在故障转移状况的情况中,根据表中的序列号的标识把数据恢复到新源的状况。通过为了管理哪些资源已经见到特定块的记帐而在存储单元之间传送序列号而不是数据,数据通信量在说明性技术中被减少。
参照图6A和图6B,流程图说明用于在源故障的情况下把扇出修改为减小的扇出比的技术的实施例。存储复制方法600包括把数据从源复制602到多个目标,并检测604源故障转移状况。根据与故障转移状况同时发生的状况从多个目标之中选择606新源。新源发送608发起多个目标中的数据重组的信号。
根据故障转移时可用的信息和状况对替代源的选择实现基于诸如故障的位置和原因、执行响应的资源的可用性、存储系统的一些部分的工作负荷之类的因素的有效响应。从多个目标之中对新源的同时选择促进灵活操作,因为一直到故障转移事件发生时最适当的响应是未知的。
如图6B所示,该方法还可包括在数据复制期间在多个目标上分发610各个目标的复制状态信息。数据可采用复制状态信息在多个目标中重组612为与新源同步。新源中的复制状态信息的可用性实现性能的改进,因为针对新源集线器lun的输入和输出操作在复制的重建过程中被减少或成为最少。类似地,各个目标中的复制状态信息的可用性实现性能的改进,因为针对目标lun的输入和输出操作在复制的重建过程中也被减少或成为最少。
由于源以及目标中的输入和输出操作不必作为重组操作的一部分来对付大量数据的复制,因此得到改进。类似地,对站点间链路的带宽的性能影响在复制重建过程中被减小或变为最小。该技术实现在源出故障时重组的有限相互通信,从而避免极大消耗带宽和其它资源的完全拷贝。在所有情况中,性能改进也许可能是多个数量级的。因此,采用说明性技术的1:n扇出技术可能对于希望在没有降低性能的情况下保持主机侧应用运行的高可用性、灾难容许用户极具吸引力。
参照图7A和图7B,流程图说明用于在出现源故障时重组扇出配置的技术的实施例。说明性源复制方法700包括把数据从源复制702到多个目标,并在目标接收704发起数据重组的信号。在目标,对于从先前复制写入流挂起的缓冲写入结束706处理。目标向新源发送708已更新块列表。已更新块列表包括通过复制所更新的块的列表。
在一些实施例中,新源根据已更新块列表来确定710要发送给目标的数据。源把数据复制712到目标,它足以使新源与目标同步。
在一个典型实现中,新源或新集线器发送标识新源的命令,表明该存储阵列正作为新集线器来接管。命令还请求各目标发送标识自目标之间先前相互通信已经提供序列号的基本集合以来先前没有标识的未决块写入的列表的最终序列号的列表。因此,用于重组的相互通信被减少。该命令还指定目标停止从旧源接受任何新写入。
在图7B中,扇出配置在出现源故障时重组为最新的目标的状态。阵列的状态被确定714。请求被发送到具有最近状况的目标。在重组命令之后,新源具有充分信息来确定哪个阵列是最近的,被定义为具有本地块表中的最高序列号的阵列。在许多情况中,多个阵列可能具有整组阵列中“最近的”相同状态,其中之一可选择用作最近的。新源还具有足以确定对于重组要收集哪些数据块的信息。新源请求716并取718足以获得最近状况的数据块,并采用所请求数据来更新720新源。因此,源控制源中所包含的阵列的更新。
参照图8A和图8B,示意框图说明不包括所跟踪信息的跟踪和共享的存储系统方案800。说明性方案800可想象为轮,其中,在中央具有轮毂802S,以及通信辐条从轮毂802S放射状伸到一个或多个目标阵列802D。轮毂802S可能是包含源逻辑单元(lun)810S的阵列。辐条是把轮毂802S连接到包含远程lun 810D的目标阵列802D的通信链路808。数据可在各通信链路808上同步或者异步地流动。
如图8A所示,当出现集线器阵列802S丢失或者到集线器802S的通信丢失的状况或情况时,期望环境800将操作故障转移到目标阵列802D之一,从而使应用能够继续进行。在传统的扇出技术中,目标阵列802D之间不存在关联。每个目标阵列802D仅具有与集线器802S的关系。
如图8B所示,扇出关系因集线器802S的丢失而尝试重组。目标阵列802D没有包含与哪些块已经或者没有被写入其它目标阵列中的lun 810D有关的信息。因此,被确定为作为新集线器802S’开始操作的目标阵列必须把可能极大的lun 810S’完全复制到其它目标阵列802D中的每一个。
说明性结构和技术与涉及对于重组完全拷贝的技术相比改进了复制效率,并且与不需要完全拷贝的技术相比也改进了复制效率。
说明性结构和技术实现对于用作新源的任意目标的选择。
虽然本公开描述了各种实施例,但这些实施例要被理解为说明性的,而不是限制权利要求范围。对所述实施例的许多变更、修改、增加和改进是可行的。例如,本领域的技术人员易于实现提供本文所公开的结构和方法所需的步骤,并且会理解,过程参数、材料和尺寸仅作为实例给出。参数、材料和尺寸可改变,以便实现预期结构以及修改,它们处于权利要求的范围之内。本文所公开的实施例的变更和修改也可进行,而仍然保持在以下权利要求的范围之内。例如,所公开的设备和技术可用于具有任何适当数量的存储元件的任何存储配置中。为了说明,lun扇出表示为1:3扇出。采用所说明的结构和技术,可支持任何适当的扇出比。虽然存储系统通常包括磁盘存储元件,但是可实现任何适当类型的存储技术。该系统可采用各种操作系统和数据库系统来实现。控制元件可实现为通用计算机系统、工作站、服务器等上的软件或固件,但是也可在专用装置和嵌入式系统中实现。
权利要求
1.一种适合用于冗余数据存储系统(200)中的存储单元(202),包括存储装置(204);输入/输出接口(206),耦合到所述存储装置(204),并适合与多个分布站点存储单元通信;控制器(208),耦合到所述存储装置(204)以及所述输入/输出接口(206);以及在所述控制器(208)上可执行的逻辑,适合把所述存储单元(202)作为扇出方案中的辅助站点来操作,把数据从主站点存储单元复制到所述存储装置(204),跟踪写入存储装置(204)的数据中的修改,在所述多个分布站点存储单元之间传递所跟踪修改,以及收集从所述多个分布站点存储单元接收的所跟踪变化。
2.如权利要求1所述的存储单元(202),其特征在于,还包括逻辑,适合接收故障转移命令,响应所述故障转移命令,把所述存储单元(202)作为主站点来操作,向所述多个分布站点存储单元发送重组扇出请求,根据来自所述多个分布站点存储单元的已更新块列表来确定要发送给所述多个分布站点存储单元的数据,以及把数据拷贝到所述多个分布站点存储单元,所述拷贝的数据足以复制所述主站点存储单元中的数据。
3.如权利要求1所述的存储单元(202),其特征在于,还包括所述存储装置(204),至少部分配置为逻辑单元(lun);逻辑,适合检测针对与所述主站点存储单元存在扇出关系的逻辑单元(lun)的写入,跟踪存储逻辑单元(lun)中的已修改块,以及向所述多个分布站点存储单元发送异步通信包;逻辑,适合收集包括一个或多个写入所修改的块编号以及表明块内容的唯一标识符的序列号的数据包,以及通过异步通信向所述多个分布站点存储单元发送所述数据包;逻辑,适合把多个数据包组合为包组,以及通过异步通信把所述数据包发送给所述多个分布站点存储单元;以及逻辑,适合从所述多个分布站点存储单元接收多个数据包和序列号,以及确定所述多个分布站点存储单元之间的数据内容的差异。
4.如权利要求1所述的存储单元(202),其特征在于,还包括逻辑,适合接收发起数据重组的信号,结束从先前复制写入流挂起的缓冲写入的处理,并向新近作为主站点来操作的存储单元发送已更新块列表,所述已更新块列表包括通过所述复制更新的块的列表。
5.如权利要求1所述的存储单元(202),其特征在于,还包括逻辑,适合接收故障转移命令,从作为辅助站点存储单元的操作重新配置为新的主站点存储单元,以及发送信号来通知所述多个分布站点存储单元的其余辅助站点存储单元正在重组扇出;以及逻辑,可用于新的主站点存储单元,并且适合确定所述多个分布站点存储单元中的其余辅助站点存储单元是否具有比所述新源更新近的状态;向具有更新近的状态的辅助站点存储单元发送请求,请求所述新的主站点存储单元中并非最新近的数据;以及采用所请求数据来更新所述新的主站点存储单元。
6.一种存储系统(100),包括多个存储阵列(102),以1∶n扇出配置来设置;以及在所述多个存储阵列(102)中可执行的逻辑(104),适合跟踪从源存储阵列(102S)到n个目标存储阵列(102D1,102D2,102D3)的数据复制过程中的数据修改,在所述n个目标存储阵列(102D1,102D2,102D3)之间互相共享所跟踪数据修改信息,以及通过重组为1∶n-1扇出配置来响应故障转移状况,根据来自所述n个目标存储阵列(102D1,102D2,102D3)的互相共享的所跟踪数据修改信息来指导所述重组。
7.如权利要求6所述的存储系统(100),其特征在于,还包括逻辑(104),适合于通过把所述多个存储阵列(102)配置为排除出故障的源存储阵列(102S)并且在与故障转移实质上同时进行的指定中指定所述n个目标存储阵列(102D1,102D2,102D3)其中之一作为新的源存储阵列(102S)来操作,从而响应所述故障转移状况;以及逻辑(104),适合通过把其余n-1个目标存储阵列中的数据重组为与所述新的源存储阵列一致,进一步响应所述故障转移状况。
8.如权利要求6所述的存储系统(100),其特征在于,还包括在各个目标存储阵列(102D1,102D2,102D3)中可执行的逻辑(104),适合检测针对与所述源存储阵列(102S)存在扇出关系的逻辑单元(lun)的写入,并适合向所述多个目标存储阵列中的其它阵列发送异步通信包。
9.如权利要求6所述的存储系统(100),其特征在于,还包括在各个目标存储阵列(102D1,102D2,102D3)中可执行的逻辑(104),适合检测针对与所述源存储阵列(102S)存在扇出关系的逻辑单元(lun)的写入;收集包括一个或多个写入所修改的块编号以及表明块内容的唯一标识符的序列号的数据包;以及通过异步通信向所述多个目标存储阵列中的其它阵列发送所述数据包;在各个目标存储阵列(102D1,102D2,102D3)中可执行的逻辑(104),还适合把多个数据包组合为包组,以及通过异步通信把所述包组发送给所述多个目标存储阵列中的其它阵列;以及在各个目标存储阵列(102D1,102D2,102D3)中可执行的逻辑(104),还适合从所述多个目标存储阵列中的其它阵列接收多个数据包和序列号,以及确定所述多个目标存储阵列之间的数据内容的差异。
10.如权利要求6所述的存储系统(100),其特征在于,还包括在各个目标存储阵列(102D1,102D2,102D3)中可执行的逻辑(104),还适合接收故障转移命令;重新配置为新的源存储阵列;以及发送信号以通知所述多个目标存储阵列中的其余目标存储阵列正在重组扇出;在各个目标存储阵列(102D1,102D2,102D3)中可执行的逻辑(104),适合接收通知扇出重组的所述信号;结束从先前复制写入流挂起的缓冲写入的处理;以及向所述新的源存储阵列发送所述目标中的已更新块列表,所述已更新块列表包括通过所述复制更新的块的列表;在所述新的源存储阵列中可执行的逻辑(104),适合确定从所述多个目标存储阵列接收的已更新块列表中的差异;以及把数据拷贝到所述多个目标存储阵列,它足以使所述多个存储阵列同步;以及在所述新的源存储阵列中可执行的逻辑(104),适合确定所述多个目标存储阵列中的一个目标存储阵列是否具有比所述新的源存储阵列更新近的状态;向具有最新近的状态的目标存储阵列发送对于所述目标存储阵列中存在、但所述新的源存储阵列中不存在的数据的请求;以及采用响应所述请求而接收的数据来更新所述新的源存储阵列。
全文摘要
一种存储复制方法包括在多个目标之间复制来自源的数据,并跟踪目标中的数据修改。修改的标识在多个目标阵列(102D1,102D2,102D3)之间相互传递。在源故障转移事件中,所选目标作为新源被建立,从而把其余目标中的已复制数据重组为与新源同步。
文档编号G06F11/20GK1838055SQ20061000437
公开日2006年9月27日 申请日期2006年1月27日 优先权日2005年1月28日
发明者K·多姆 申请人:惠普开发有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1