在群集存储环境中执行并行数据迁移的方法

文档序号:6553368阅读:174来源:国知局
专利名称:在群集存储环境中执行并行数据迁移的方法
技术领域
本发明总体上涉及数据迁移领域,特别是提供并行数据迁移方法。
背景技术
在当今的计算环境中,客户计算机通常可以使用一个或多个存储系统,这些存储系统可经通道或网络进行本机或远程访问。可用于客户的存储通常表现为卷或逻辑单元。
经常必须将数据从一卷移动或“迁移”到另一卷。数据迁移对客户机是透明的;也就是说,尽管驱动器数据正被从一物理存储位置移到另一位置,但客户机可继续访问同一逻辑驱动器。当数据必须移到新连接的存储器时或当出现结点故障时或为优化存储器空间使用和/或性能,迁移是必须的。数据迁移是耗时的过程,因为卷趋于非常大。此外,如果控制迁移的结点失效,数据可能永久丢失。因此,迁移对受影响的系统可具有有害的性能影响。
因此,需要比目前现有的方案更高性能的数据迁移解决方案,且还需要防结点故障的数据迁移解决方案。

发明内容
根据本发明的原理,多个结点连到一个或多个存储系统或与其集成。结点提供用于客户机访问的LUN装置,LUN装置映射到对应于一个或多个存储系统上的存储区的源逻辑单元。目标逻辑单元对应于一个或多个存储系统上的不同存储区。源逻辑单元由多个结点中的两个或多个结点并行迁移到目标逻辑单元。
更具体地,迁移按如下实现。确定将从源逻辑单元移到目标逻辑单元的数据块。提供位屏蔽,每一数据块具有一位。每一位在初始被复位。位屏蔽被分为多个位的拼接。之后,由多个结点中的两个或多个结点中的每一个执行下述步骤,直到源逻辑单元已被全部迁移到目标逻辑单元为止。结点试图锁定拼接。如果结点成功锁定拼接,则结点将对应于该拼接中的每一位的数据块复制到目标逻辑单元。之后,结点设置位屏蔽中对应于所复制数据块的位。其后,当对应于所述拼接中的位的所有数据块均已被复制时,结点解锁拼接。如果拼接不能被锁定,则另一结点已锁定该拼接且正迁移拼接的相应数据块。
根据本发明的另一方面,多个结点包括群集系统。源逻辑单元和目标逻辑单元均为使用群集系统访问相应的存储区的逻辑实体。复制数据块的步骤在群集系统上运行。
根据本发明的另一方面,迁移操作可被随时取消。如果用户向任何结点提交取消指令,则逻辑单元及映射到其的LUN装置被保留,目标逻辑单元和位屏蔽被删除。
根据本发明的另一方面,位屏蔽在群集系统内的结点之间共享。当所有数据被复制到目的地因而位屏蔽中的所有位被置位时,迁移结束。位屏蔽的一个或多个镜象的拷贝保留在群集系统中。这些镜象的拷贝顺次更新以确保在任一时间只有一个拷贝被修改。该镜象提高了位屏蔽的容错。
根据本发明的另一方面,在迁移期间对LUN装置的I/O访问可由客户机执行。如果I/O访问是读访问,数据从源逻辑单元返回给客户机。如果I/O访问是包括将被写入的数据的写访问,则结点首先确定数据将被写到哪一数据块。之后,其锁定包含该数据块的拼接。如果拼接中的所有位均被置位,则数据被写到源逻辑单元和目标逻辑单元。如果拼接中并非所有位均被置位,则从源逻辑单元读拼接中的数据块并与将被写入的数据结合,结合后的数据被写到源和目标逻辑单元。拼接中数据块的位被置位。之后解锁拼接。
本发明的并行迁移方案相较先前可用的方案提供更高性能、更多容错的迁移解决方案。


为有助于更全面理解本发明,现在参考附图。这些图不应被视为限制本发明,而仅是示例性的。
图1为本发明实施于其中的系统的示意图。
图2为包括本发明的迁移应用的I/O栈的表示。
图3为根据本发明,通过多个结点将数据块从源逻辑单元并行迁移到目的地逻辑单元的表示。
图4为被分为拼接的位屏蔽元数据的表示。
图5为后台迁移操作的流程图。
图6为前台操作的流程图。
图7为位屏蔽的多个拷贝的表示。
具体实施例方式
根据本发明的原理,几个结点连到一个或多个存储系统。连到结点的客户机可访问对应于存储系统上的存储区的LUN装置。当特定LUN装置需要被迁移时,其相应的逻辑单元当由几个结点中的至少部分结点并行迁移到目标逻辑单元时成为源逻辑单元。由于迁移跨几个结点并行发生,大大提高了迁移速度,从而整体上提高了系统的性能。此外,尽管结点失效迁移操作也可进行,从而提供迁移的容错度量。
参考图1,示出了本发明组合于其中的系统10。两个或多个结点12在网络14上连接,所述网络可以是IP网络、光纤通道SAN、一些其它互连网络或其组合。网络14将结点连到存储系统16。客户机18经网络20连到每一结点12。例如,网络20可以是IP网络、光纤通道SAN、一些其它互连网络或其组合。每一结点12执行群集系统软件22。群集系统软件22尤其需要以在访问数据的结点之间保持数据一致。也就是说,当多个客户机18访问和写同一数据时,共享的群集系统软件22确保数据是一致的,及一致地暴露给所有客户机。群集系统还采用元数据,其尤其用于确保数据一致。群集系统还确保元数据一致以防结点失效。许多群集系统使用许多类型的共享文件系统软件之一。网络文件系统(NFS)使多个客户机能经拥有共享文件的服务器访问共享文件。群集文件系统(CFS)使能通过任何结点同时共享访问并在结点失效时提供资源的故障切换。根据优选实施例,共享文件系统22为CFS。CFS的例子为来自Red Hat的GFS(全局文件系统)、来自IBRIX的Fusion、及来自IBM的GPFS(通用并行文件系统)。图1的结点12和存储系统16被示作单独实施,例如实施为服务器和存储器阵列。然而,结点12和存储系统16可组合在系统内。应注意,在于此描述的特定应用使用群集文件系统的同时,于此描述的应用通常适用于群集系统。
本发明部分源自下述认识提供影响群集系统的优点的块存储装置的存储阵列非常有利。连到该系统的客户机同时共享对逻辑块存储装置即逻辑单元(LUN)的访问。群集系统确保这些共享的LUN上的数据一致。群集系统中的结点18通过“LUN装置”实体将LUN呈现给客户机。单一LUN装置对应于存储系统中存在的单一逻辑单元。因而,本发明提供用于实施分层在群集系统上的群集存储器阵列的软件。该软件称为“SCAD”。因而,图1中所示为用于实施群集存储器阵列的SCAD软件24。实施SCAD软件24的结点在此称为SCAD结点。
SCAD软件24在图2中更详细地示出。SCAD软件24是建立为在CFS22之上运行的I/O软件栈26。SCAD栈26影响CFS22的有利特征,包括高可用性和共享数据的一致性,以将共享LUN暴露给客户机。
所述栈的前端驱动器28为用于接口连接到客户机18的介质驱动器。SCAD API30将SCAD“装置”暴露给前端28。SCAD装置为可字节寻址的逻辑单元(“LUN装置”),其使用由作为其后备存储的在下面的CFS创建的文件。LUN装置最好由前端驱动器28作为SCSI LUN呈现给客户机18,尽管其它存储介质也可被实施。在下面SCAD API为SCAD分层应用32,其实施将对LUN装置执行的各种类型的操作。一种SCAD分层应用32为SCAD迁移应用34,其将进一步描述。SCAD层为CFS。SCAD内的层是位于CFS和SCAD应用之间的元数据管理器(MDB)36。MDB影响由CFS提供的锁定机构从而使能进行一致的群集范围的数据共享及保持SCAD元数据的一致性。该SCAD元数据38支持SCAD迁移应用。如将进一步描述的,MDB镜象其管理的元数据38以使其高度可用。该镜象对MDB上面的SCAD层是透明的。
现在进一步详细描述SCAD迁移应用34。参考图3,LUN装置39被示作映射到源逻辑单元40。SCAD迁移应用34使“源”逻辑单元40的透明在线数据能迁移到迁移或“目标”逻辑单元42。目标逻辑单元42被迁移层下面的SCAD层当作常规的LUN装置且对上面的层保持隐蔽。所有客户机18在迁移期间可继续使用迁移装置。一旦迁移结束,客户机18访问相同的LUN装置39,除了其数据已被放在目标逻辑单元42以外。根据本发明,多个结点12负责服务于任何逻辑单元的后台迁移。如果因一些原因一结点已失效或忙于更优先的任务,所有结点12或结点12的子集均可参与。多个结点的参与使能最大化并行执行迁移操作,从而最大化系统性能并提高操作的容错级别。
SCAD迁移的目标逻辑单元与源逻辑单元大小相同。目标逻辑单元具有在其创建时赋予其的迁移“数据块”大小,例如32K字节。源逻辑单元由结点12数据块44接数据块44地并行移到目标逻辑单元。
如图4中所示,元数据38被示为包括与目标逻辑单元相关联的位屏蔽46。位屏蔽46中的每一位48对应于将从源逻辑单元40写到目标逻辑单元42的数据块。位屏蔽46被分为“拼接”50,其中每一拼接50为位屏蔽46中固定数量的位48。在迁移操作之前,所有位48被复位,示为“0”。每一SCAD结点12试图顺序锁定每一拼接50并将对应于每一成功锁定的拼接50的数据块44从源逻辑单元40移到目标逻辑单元42。在完成拼接50中每一数据块44的数据迁移之后,其相应的位48被置位。
有两种类型的迁移操作客户机I/O驱动的迁移操作,在此称为前台迁移操作,及后台迁移操作。后台迁移操作在LUN装置40的正在进行的透明迁移会话期间出现。为将数据从LUN装置39的源逻辑单元40移到目标逻辑单元42的目的,在每一SCAD结点上产生单独的线程。参考图5,其示出了每一结点采取的步骤。首先,从位屏蔽46的开始,每一结点试图锁定位屏蔽拼接50(步骤52、54)。锁定机构最好根据经IEEE标准1003.1中描述的fcntl系统调用提供的POSIX记录锁定实施。如果锁定尝试成功(步骤56),拼接50的每一数据块44被从源逻辑单元40读出然后写到目标逻辑单元42(步骤58)。之后,位屏蔽46中对应于所述数据块44的位48被置位(步骤62)。当所有数据块44均已被复制(步骤62)后,拼接锁定被释放(步骤64)。如果锁定尝试失败(步骤56),这些数据块44被跳过,因为另一SCAD结点12肯定已完成锁定并正迁移数据。如果尚未到达最后的拼接50(步骤66),则SCAD结点12返回以试图锁定下一拼接50(步骤68、步骤54)。一旦每一拼接50均已被锁定且其相应的数据块44均已迁移(步骤66),则锁定整个MDB位屏蔽46(步骤70)并检查每一位48的状态(步骤72)。对应于任何因前台迁移操作(将被描述)剩余的置“0”位的数据块44从源逻辑单元40复制到目标逻辑单元42(步骤74),且位48被置位(步骤76)。
在图4中,示出了在每一结点上执行图3的后台迁移操作的结果的例子。对应于第一拼接50(“拼接1”)中的位48的数据块44已全部由第一结点12迁移,因此位48被置位及该拼接现在被解锁。对应于第二拼接50(“拼接2”)中的位48的数据块44已由第二结点迁移,从而这些位48被置位且该拼接也被解锁。对应于第三拼接50(“拼接3”)中的位48的数据块44尚未被迁移,因此部分位48未被置位,因而该拼接50仍然由结点锁定。对应于最后两拼接50(“拼接n-1”、“拼接n”)中的位48的数据块44的迁移尚未开始,因而它们的位48未被置位及这些拼接50仍然保持解锁。
根据本发明的另一方面,在迁移期间后台迁移操作可随时由用户取消。如图5中所示,在迁移期间,用户可向几个结点18之一发出取消命令。如果接收到取消命令(步骤53),结点12将使用群集系统在其同等结点之间协调取消请求。一旦这已被建立(步骤77),源逻辑单元40及其相应的LUN装置39被保留(步骤78),目标逻辑单元42及相应的位屏蔽46被删除(步骤79)。现在迁移操作被取消(步骤80)。前台迁移操作是那些在后台迁移操作期间由客户机I/O访问LUN装置引起的操作。
前台迁移操作按图6中所示进行处理。如果客户机I/O访问是读请求(步骤81),SCAD迁移应用34从源逻辑单元40读数据并返回数据(步骤82)以完成操作(步骤83)。如果客户机I/O访问是写请求,则映射到目标逻辑单元42中写逻辑块地址的数据块44被计算(步骤84)。位屏蔽46中其相应的拼接50被锁定(步骤86)。位屏蔽46元数据被检查以确定目标逻辑单元42中有多少写访问的源数据。如果所有拼接位均被置位(步骤88),则所有数据均已从源逻辑单元40迁移到目标逻辑单元42。因此,位屏蔽46维持不变。写访问从SCAD迁移传到较低的层从而传到源及目标逻辑单元40和42(步骤90),对于数据块的位被置位(步骤91),及拼接锁定被释放(步骤92)。如果部分或没有拼接位被置位(步骤88),则部分或没有数据已被移到目标逻辑单元。在这种情况下,从源LUN装置40读相应的数据块44(步骤96),并与写数据结合(步骤98),然后写到源及目标逻辑单元40和42(步骤90)。置位相应的数据块位(步骤91)并释放拼接锁定(步骤102),结束操作(步骤93)。
根据本发明的另一方面,在管理SCAD元数据38时采取步骤以在结点失效时确保数据完整性。如果在结点失效时MDB36正修改SCAD元数据38,其可维持该元数据38为未知状态。这是不允许的,因为为了确保数据完整性,必须总是保持元数据一致性。这样,为增加元数据38可用性,MDB36在磁盘上保持位屏蔽46的多个拷贝46a-46n,如图7中所示。以同步顺序执行对这些位屏蔽拷贝的更新。这确保任一元数据总是有至少一拷贝,或旧的或更新后的,在当前未被修改。可使用任何数量的位屏蔽46拷贝,仅使用两个拷贝可能比较方便。此外,对每一元数据计算和保存检查和104。如果结点失效,继续存在的结点可扫描磁盘上的所有元数据拷贝并确定哪些拷贝具有每一元数据的最新有效信息。继续存在的结点将按与MDB同步顺序更新相同的顺序检查拷贝。每一拷贝的检查和104将被计算并与磁盘上的值比较。被发现具有匹配检查和104的第一拷贝被声称为元数据38的有效拷贝,所有其它拷贝均与其同步。
先前描述的SCAD迁移操作和元数据管理在面对多种差错情况时确保用户数据和元数据正确。考虑下述差错情况1、SCAD结点在完成位屏蔽锁定之后但在完成迁移写之前失效a、用户数据仍然原封不动,因为源位置尚未被修改。
b、元数据位屏蔽46尚未被写,从而其依然反映迁移操作未被完成的事实。在这种情形下,源位置仍然是用户数据的有效位置。
2、SCAD结点在执行迁移操作之后但在更新位屏蔽中的相应位之前失效a、用户数据用户数据安全存在于源和目的地位置中。
b、元数据位屏蔽46中的位48指示迁移尚未被执行,从而源位置称为数据的真实位置。已被完成的用户块的拷贝被忽略且在重新开始迁移操作时其需要被再次执行。
3、SCAD结点在迁移之后失效,在位屏蔽更新期间a、用户数据用户数据存在于源和目的地位置中。
b、元数据由于先前描述的多个拷贝和检查和,位屏蔽46可恢复。继续存在的结点可使用多个拷贝和检查和检测无效的元数据并执行所有拷贝的“修补”,从而其或匹配指向有效源的旧值,或匹配指向有效目的地的新值。旧值导致上面的情形2,新值导致下面的情形4。
4、SCAD结点在置位位屏蔽中的适当位之后但在释放位屏蔽锁定之前失效a、用户数据用户数据存在于源和目的地位置中。
b、元数据有效。在这种情况下,在SCAD栈下面的CFS负责清除锁定。
所有上述创新的机构共同提供较先前已知的解决方案更高性能和更多容错的迁移解决方案。还应注意,先前描述的机构可用于实施不同于卷迁移的操作。例如,使用所述机构可执行卷或卷扇区的快照拷贝。在这种情形下,源逻辑单元将被复制到目标逻辑单元,同时源逻辑单元保持其到当前LUN装置的映射,目标逻辑单元通过映射到其自己的LUN装置而可用于客户机访问。
本发明不限于在此所述的具体实施例的范围。实际上,除了在此所述的内容之外,对本领域一般技术人员而言,从前述描述和附图可容易对本发明进行各种修改。因而,这样的修改应视为落在本发明的范围内。此外,尽管本发明的各方面已在用于特定目的的特定环境的特定实施例中描述,本领域一般技术人员将认可其使用并不限于这些,本发明可在用于任何数量目的的任何数量的环境中有利地实施。
权利要求
1.装置,包括与一个或多个存储系统一起运行的多个结点,所述结点提供由客户机访问的LUN装置,LUN装置映射到对应于一个或多个存储系统上的存储区的源逻辑单元;每一结点上用于导致多个结点中的两个或多个结点并行将源逻辑单元迁移到目标逻辑单元的机构,目标逻辑单元对应于一个或多个存储系统上的不同存储区。
2.根据权利要求1的装置,其中每一结点上的机构包括用于确定将从源逻辑单元移到目标逻辑单元的数据块的逻辑电路;位屏蔽,每一数据块具有一位;用于将位屏蔽分为多位的拼接的逻辑电路;用于试图锁定拼接的逻辑电路;如果拼接被成功锁定,用于执行下述步骤的逻辑电路;将对应于拼接中的每一位的数据块复制到目标逻辑单元;置位位屏蔽中对应于所复制数据块的位;当对应于拼接中的位的所有数据块均已被复制时解锁拼接。
3.根据权利要求2的装置,其中多个结点包括群集系统,且其中源逻辑单元和目标逻辑单元为使用群集系统访问相应的存储区的逻辑实体,及其中用于复制数据块的逻辑电路在群集系统上操作。
4.根据权利要求3的装置,在所述机构中还包括用于随时取消迁移步骤的逻辑电路,用于取消的逻辑电路包括用于在群集中的所有结点之间协调取消请求的逻辑电路;用于保留源逻辑单元及其相应的LUN装置的逻辑电路;用于删除目标逻辑单元和位屏蔽的逻辑电路。
5.根据权利要求4的装置,还包括群集系统中位屏蔽的多个拷贝,每一拷贝具有与其相关联的检查和;如果多个结点的任何结点失效,用于通过继续存在的结点检验检查和从而确定位屏蔽的有效拷贝的逻辑操作。
6.根据权利要求5的装置,还包括用于对所述拷贝执行同步、顺序更新以确保在任何特定时间只有一个拷贝正被更新的逻辑电路。
7.根据权利要求6的装置,其中如果多个结点中的任一结点失效,源逻辑单元被成功迁移到目标逻辑单元。
8.根据权利要求7的装置,还包括在迁移步骤期间用于结点执行从客户机到LUN装置的I/O访问的逻辑电路,该用于执行的逻辑电路包括如果I/O访问是读访问,用于从源逻辑单元返回数据给客户机的逻辑电路;如果I/O访问是包括将被写的数据的写访问,用于执行下述步骤的逻辑电路确定数据将被写到哪一数据块;锁定包含所述数据块的拼接;如果所述拼接中的所有位均被置位,则把将要写的数据写入源逻辑单元和目标逻辑单元;如果所述拼接中不是所有位均被置位,则从源逻辑单元读所述拼接中的数据块、将要写的数据与读出的数据块结合、及将结合后的数据写入目标逻辑单元和源逻辑单元;置位位屏蔽中对应于所复制数据块的位;解锁所述拼接。
9.一种方法,包括步骤提供与一个或多个存储系统一起运行的多个结点;由所述结点提供由客户机访问的LUN装置,LUN装置映射到对应于一个或多个存储系统上的存储区的源逻辑单元;由多个结点中的两个或多个结点并行将源逻辑单元迁移到目标逻辑单元,目标逻辑单元对应于一个或多个存储系统上的不同存储区。
10.根据权利要求9的方法,其中迁移步骤包括确定将从源逻辑单元移到目标逻辑单元的数据块;提供位屏蔽,每一数据块具有一位;将位屏蔽分为多位的拼接;由多个结点中的两个或多个结点的每一结点重复执行下述步骤,直到源逻辑单元已被完全移到目标逻辑单元为止试图锁定拼接;如果拼接被成功锁定,则将对应于拼接中的每一位的数据块复制到目标逻辑单元;置位位屏蔽中对应于所复制数据块的位;当对应于拼接中的位的所有数据块均已被复制时解锁拼接。
全文摘要
群集存储阵列由连到一个或多个存储系统的几个结点组成。结点提供客户机访问的LUN装置,LUN装置映射到对应于一个或多个存储系统上的存储区的源逻辑单元、目标逻辑单元对应于一个或多个存储系统上的不同存储区。源逻辑单元由几个结点并行迁移到目标逻辑单元。
文档编号G06F3/06GK101084481SQ200580043899
公开日2007年12月5日 申请日期2005年12月20日 优先权日2004年12月20日
发明者迈克尔·F.·布朗, 希兰·P.·马德拉尼, 戴维·W.·德罗什 申请人:伊姆西公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1