逻辑对象数据的复制方法以及相关装置的制作方法

文档序号:6354572阅读:184来源:国知局
专利名称:逻辑对象数据的复制方法以及相关装置的制作方法
技术领域
本发明涉及存储技术领域,尤其涉及一种逻辑对象数据的复制方法及一种逻辑对 象数据的复制装置。
背景技术
为了便于对越来越多的设备或对象进行管理,现有技术提出了逻辑单元号(LUN, Logical Unit Number)的概念。存储系统为每个需要进行描述的对象分配一个逻辑单元标 识(LUN ID),以扩充原有的仅能够对小型计算机系统接口(SCSI,Small Computer System Interface)总线上挂接的设备进行描述的目标标识(Target ID)。LUN ID并不等同于实体 设备,其描述的对象既可以是磁带机等设备,也可以是磁盘空间等虚拟对象。一个典型的LUN ID的应用为将磁盘阵列的磁盘空间划分为若干个小的存储资 源单元(即磁盘驱动器),每个小的存储资源单元可以作为一个逻辑对象(LUN Device或简 称为LUN),并为每个小的存储资源单元分配一个LUNID,例如LUNO、LUNU LUN2等。逻辑对 象是操作系统能够识别的最小存储对象。LUN复制技术是指将存储设备中源逻辑对象的数据复制到目标逻辑对象中,其中 源逻辑对象和目标逻辑对象分别位于不同存储设备中,甚至是不同类型磁盘阵列所构建的 存储设备中。通过该技术可以将一个逻辑对象上某个时间点的数据副本保存到其他多个逻 辑对象中,从而实现数据备份、或数据迁移的目的。发明人在本发明过程中发现,现有技术存在至少以下问题现有的基于快照方式 的LUN复制技术在进行LUN复制时需要在源逻辑对象所在的磁盘阵列中建立一个用于存储 源逻辑对象某个时间的数据副本的快照卷,将占用一定的存储资源。

发明内容
本发明实施例提供一种逻辑对象数据的复制方法,用以减少进行LUN复制时耗费 的存储资源。对应地,本发明实施例还提供了 一种逻辑对象数据的复制装置。本发明实施例提供的技术方案如下一种逻辑对象数据的复制方法,包括获取差异位图,所述差异位图用于存储源逻辑对象中数据块是否已被复制到目的 逻辑对象中的状态信息;监控是否接收到修改源逻辑对象中数据块的写请求;如果监控结果是未接收到写请求,则根据差异位图确定源逻辑对象中未被复制到 目的逻辑对象中的数据块,将所述数据块复制到目的逻辑对象中,并更新差异位图中该数 据块的状态信息。一种逻辑对象数据的复制装置,包括获取单元,用于获取差异位图,所述差异位图用于存储源逻辑对象中数据块是否
5已被复制到目的逻辑对象中的状态信息;监控单元,用于在获取单元获取差异位图后,监控是否接收到修改源逻辑对象中 数据块的写请求;第一判断单元,用于在监控单元监控出未接收到写请求时,根据差异位图确定源 逻辑对象中未被复制到目的逻辑对象中的数据块;复制单元,用于将第一判断单元确定出的数据块复制到目的逻辑对象中;第一更新单元,用于在复制单元将数据块复制到目的逻辑对象中后,更新差异位 图中该数据块的状态信息。本发明实施例提供的技术方案首先获取用于存储源逻辑对象中每个数据块对应 的是否已被复制到目的逻辑对象中的状态信息的差异位图,在未接收到修改源逻辑对象 中数据块的写请求时,根据差异位图确定源逻辑对象中未被复制到目的逻辑对象中的数据 块,将所述数据块复制到目的逻辑对象中之后,更新差异位图中将该数据块的状态信息,从 而能够在进行LUN复制时无需建立快照卷,节约存储资源;另外本发明实施例还提供了一 种在复制过程中接收到写请求时的处理方案,能够减少读写操作次数,节约处理资源。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发 明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根 据这些附图获得其他的附图。图1为现有技术实现LUN复制的方案的原理示意图;图2为现有技术在进行LUN复制时接收到写请求的处理过程示意图;图3为本发明实施例的主要实现原理流程图;图4为本发明实施例提供的优选实施例的流程示意图;图fe为本发明实施例提供的差异位图和变化位图的示意图;图恥为本发明实施例中一次LUN复制过程的示意图;图5c为本发明实施例中处理完第一写请求后差异位图和变化位图的示意图;图5d为本发明实施例中处理完第二写请求后差异位图和变化位图的示意图;图k为本发明实施例中本次LUN复制结束后差异位图和变化位图的示意图;图5f为本发明实施例中将一个源逻辑对象中的数据复制到多个目标逻辑对象中 的示意图;图6为本发明实施例提供的逻辑对象数据的复制装置的结构示意图;图7为本发明实施例提供的逻辑对象数据的复制装置中获取单元的结构示意图。
具体实施例方式附图1为目前基于快照方式实现LUN复制的原理示意图。其中,源逻辑对象为位 于主阵列(Primary Site)中的源卷(P_Vol,Primary Volume),目标逻辑对象为位于从阵 列Gecondary Site)中的从卷(S-Vol,Secondary Volume)。LUN复制的基本流程为在准 备开始进行LUN复制时,在主阵列上创建一个快照卷(SnapVol),在整个LUN复制过程中,可以继续对源卷进行写操作等修改数据的操作,通过快照卷来提供源卷在某个时间的数据副 本;然后通过主阵列和从阵列之间的通信链路,将快照卷上保存的数据副本复制到从卷中, 从而完成依次LUN复制过程。基于快照的LUN复制技术在每次对源卷的数据进行复制时都要在主阵列上创 建快照卷,需要占用存储资源。另外,请参照附图2所示,若在复制过程中,主机向主阵 列发送用于对主卷中的数据块进行写操作的写请求,则需要进行以下处理(1)读取主卷 中该数据块根据写请求修改之前的内容(COWReadl) ; (2)将读取的内容写入快照卷(COW Write2) ; (3)主机在主卷中该数据块中写入新内容(Vol Write3) ; (4)从快照卷中读取修 改前的内容(LunCopy Readl) ; (5)将从快照卷中读取的修改前的内容写入S-Vol (LunCopy Write2)。其中,步骤(3)与步骤(4) (5)之间无先后顺序关系。可见在主阵列上除了在写 请求对应的数据块中写入新内容,即修改写请求对应的数据块之外,还需要执行2次写操 作和2次读操作。由于多次读写操作会耗费系统处理资源,因此在使用快照方式进行LUN 复制的过程中,在较短时间内对主卷进行多次写操作时,响应时延会快速增长,在对源卷进 行多次LUN复制时还会降低读写操作并发数目和带宽。本发明实施例提出通过位图方式来存储源逻辑对象中各个数据块对应的是否已 被复制到目的逻辑对象中的状态信息,而不是通过快照卷来保存源逻辑对象的数据副本, 省去了建立快照卷的步骤,从而节省存储空间。为了在复制过程中能够对源逻辑对象进行 写操作,本发明实施例进而提出通过两个位图来分别存储复制过程中,源逻辑对象中每个 数据块对应的是否已被复制到目的逻辑对象中的状态信息、以及复制过程中源逻辑对象中 的各数据块对应的是否被修改的状态信息,根据这两个位图直接将源逻辑对象中的数据块 复制到目的逻辑对象中,避免了对快照卷进行多次读写操作,降低了处理负荷。下面结合各个附图对本发明实施例技术方案的主要实现原理具体实施方式
及其 对应能够达到的有益效果进行详细的阐述。如图3所示,本发明实施例的主要实现原理流程如下步骤10,复制初始化时,获取差异位图,所述差异位图用于存储源逻辑对象中每个 数据块是否已被复制到目的逻辑对象中的状态信息;步骤20,开始复制后,监控是否接收到修改源逻辑对象中数据块的写请求,若未接 收到写请求,执行步骤30 步骤50 步骤30,根据差异位图,确定出存在未被复制到目的逻辑对象中的数据块时,进入 步骤40,否则处理结束;步骤40,将未被复制到目的逻辑对象的源逻辑对象中的数据块复制到目的逻辑对 象中,进入步骤50 ;步骤50,在差异位图中将该数据块对应的状态信息更新为已被复制到目的逻辑对 象中。差异位图的具体存储方式包括但不限于以下几种方式一在差异位图中仅存储尚未从源逻辑对象复制到目的逻辑对象中的数据块 的标识,不存储已从源逻辑对象复制到目的逻辑对象中的数据块的标识;在步骤50中,在 数据块已被复制到目的逻辑对象之后,在差异位图中将该数据块对应的状态更新为已被复 制到目的逻辑对象中,具体为在差异位图中删除该数据块的标识;
方式二 在差异位图中设置尚未从源逻辑对象复制到目的逻辑对象中的数据块的 第一状态标识,以及已从源逻辑对象复制到目的逻辑对象中的数据块的第二状态标识,例 如设置第一状态标识为1,第二状态标识为O ;在步骤50中,在数据块已被复制到目的逻辑 对象之后,在差异位图中将该数据块对应的状态更新为已被复制到目的逻辑对象中,具体 为在差异位图中将该数据块的第一状态标识更新为第二状态标识。考虑到实际应用中将同一源逻辑对象复制到同一目的逻辑对象的LUN复制的过 程通常是反复执行的,为了在两次复制过程之间源逻辑对象中的数据块未发生修改时,不 再重复复制该未修改的数据块,并且能够支持在复制过程中对源逻辑对象进行的写操作, 在附图3所示方案的基础上还可以进行如下改进首先,增加用于存储复制过程源逻辑对象中的每个数据块是否被修改的状态信息 的变化位图;与差异位图相似地,变化位图的具体存储方式包括但不限于以下几种方式一在变化位图中仅存储复制过程中被修改的源逻辑对象中的数据块的标 识,不存储复制过程中未被修改的源逻辑对象中的数据块的标识;在变化位图中将数据块 的状态信息更新为已被修改,具体为在变化位图中增加写请求中包含的数据块的标识;方式二 在变化位图中设置复制过程中被修改的源逻辑对象中的数据块的第三状 态标识,设置复制过程中未被修改的源逻辑对象中的数据块的第四状态标识,例如实际存 储时可以设置第三状态标识为1,第四状态标识为0,在变化位图中将数据块的状态信息更 新为已被修改,具体为在变化位图中将该数据块的状态标识更新为第三状态标识。其次,在附图3所示的流程中,当监控接收到写请求时,根据此时差异位图中该写 请求所要修改的数据块是否已被复制到目的逻辑对象中的状态信息来执行不同的处理流 程,并在变化位图中更新该写请求所修改的数据块是否被修改的状态信息。附图4给出了改进的LUN复制的处理过程的流程图,在该实施例中,差异位图和变 化位图均采用各自方式一中的存储方式步骤400,根据是否存在变化位图和差异位图来确定是否为首次将同一源逻辑对 象复制到同一目的逻辑对象,若是进入步骤401,否则进入步骤402;具体的,当未存在变化位图和差异位图时,确定为首次将同一源逻辑对象复制到 同一目的逻辑对象;否则,当已存在变化位图和差异位图时,确定并非首次将同一源逻辑对 象复制到同一目的逻辑对象中。步骤401,创建差异位图和变化位图,可选地,创建内容为空的差异位图和变化位 图,进入步骤403 ;步骤403,在步骤401创建的差异位图中将源逻辑对象中各数据块对应的状态设 置为未被复制到目的逻辑对象中,进入步骤404 ;在差异位图采用方式一的存储方式时,将源逻辑对象中各数据块对应的状态设置 为未被复制到目的逻辑对象中具体为在步骤401创建的差异位图中增加源逻辑对象中各 数据块的标识。步骤402,将前一次LUN复制结束时的变化位图中的状态信息作为本次复制的差 异位图的状态信息,进入步骤404 ;例如可以通过数据复制的方式,将上一次LUN复制结束时变化位图的内容复制到本次复制的差异位图的存储空间中;可选地,将前一次LUN复制结束时的变化位图的内容 作为本次复制的差异位图的内容之后,还未开始复制过程的情况下,将变化位图中源逻辑 对象中每个数据块对应的状态信息更新为未被修改,当采用方式一中的存储方式时,具体 为清空变化位图,这样可以减少在下一次LUN复制过程中的重复工作量,即下一次复制只 需要将本次复制过程中源逻辑对象中被写请求所修改的数据块复制到目标逻辑对象中即 可。步骤404,根据差异位图,确定源逻辑对象中是否存在未被复制到目的逻辑对象中 的数据块,若是,进入步骤405,否则处理结束;差异位图采用方式一中的存储方式时,该步骤为判断差异位图的内容是否为空, 若差异位图的内容为空,则不存在未被复制到目的逻辑对象中的数据块;若差异位图的内 容和为空,则存在未被复制到目的逻辑对象中的数据块。步骤405,在源逻辑对象中存在未被复制到目的逻辑对象中的数据块时,监控是否 接收到用于修改源逻辑对象中的数据块的写请求,若监控结果为接收到写请求,进入步骤 406 ;否则进入步骤411 ;步骤406,根据差异位图中该写请求中包含的数据块标识对应的数据块的状态, 确定该写请求中包含的数据块标识对应的数据块是否已被复制到目的逻辑对象中,若该写 请求中包含的数据块标识对应的数据块未被复制到目的逻辑对象中,则进入步骤407,否 则,若该写请求中包含的数据块标识对应的数据块已被复制到目的逻辑对象中,进入步骤 409 ;步骤407,将源逻辑对象中该写请求中包含的数据块的标识对应的数据块复制到 目的逻辑对象中,进入步骤408和步骤409 ;步骤408,在差异位图中将该写请求中包含的数据块的标识对应的数据块的状态 更新为已被复制到目的逻辑对象中;当差异位图采用方式一中的存储方式时,在差异位图中删除该写请求中包含的数 据块的标识;步骤409,根据该写请求修改该写请求中包含的数据块的标识对应的数据块,进入 步骤410 ;步骤410,在变化位图中将该写请求中包含的数据块的标识对应的数据块的状态 设置为已被修改;当变化位图采用方式一中的存储方式时,在变化位图中增加该写请求中包含的数 据块的标识;步骤408和步骤410结束后,返回步骤404 ;步骤411,根据差异位图,将源逻辑对象中未被复制到目的逻辑对象的数据块复制 到目的逻辑对象中,并进入步骤412 ;步骤412,在差异位图中将该数据块的状态更新为已被复制到目的逻辑对象中,进 入步骤404 ;当差异位图采用方式一中的存储方式时,在差异位图中删除该数据块的标识。在将差异位图中记录的所有数据块标识对应的源逻辑中的数据块复制到目标逻 辑对象之后,保存变化位图的内容,本次LUN复制结束,等待下一次LUN复制。
需要说明的是,步骤405、步骤411和步骤412构成的第一处理流程、步骤405-步 骤410构成的二处理流程,未收到写请求时,执行第一处理流程,在接收到写请求时,执行
第二处理流程。采用附图4提供的方案在反复多次将同一源逻辑对象复制到同一目的逻辑对象 时,无需在每次复制时都建立快照卷,从而节约了存储资源和处理资源;另外,在一次复制 过程中,在接收到修改源逻辑对象中数据块的写请求时,若根据差异位图,确定写请求所要 修改的数据块已被复制到目的逻辑对象中(例如,该写请求所要修改的数据块应当在本次 复制中被复制到目标逻辑对象中、且已被复制到目标逻辑对象中、或者该写请求所要修改 的数据块无需在本次复制中复制到目标逻辑对象中),那么此时需要执行的操作仅仅只是 根据写请求修改源目标逻辑对象中对应的数据块时在变化位图中记录写请求所要修改的 数据块的标识,不会引起对快照卷的读写操作,从而节约了处理资源;即使是写请求所要修 改的数据块尚未被复制到目的逻辑对象中(例如,该写请求所要修改的数据块应当在本次 复制中被复制到目标逻辑对象中,但接收到该写请求时尚未被复制到目标逻辑对象中)的 情况下,也只需要再执行一次将写请求修改之前的数据块复制到目标逻辑对象中的处理, 与现有技术相比也至少能够节省对快照卷需要执行的一次读操作和一次写操作,同样能够 节约处理资源。下面将依据本发明上述发明原理,详细介绍一个实施例来对本发明方法的主要实 现原理进行详细的阐述和说明。附图fe为差异位图A和变化位图B的结构示意图,假设源逻辑对象和目的逻辑对 象中均有16个数据块,数据块的标识分别为0 15。为了直观简明起见,每个数据块的标 识分别对应差异位图A和变化位图B中的一个小格,小格中的数字即为对应的数据块标识。 若其中的小格被阴影填充,则表明采用方式一中的存储方式时,差异位图A或变化位图B中 存储有该小格对应的数据块的标识。附图恥为将反复多次将同一源逻辑对象复制到同一目的逻辑对象时,其中一次 LUN复制过程的示意图。差异位图A中被阴影填充的小格代表其对应标识的数据块尚未从 源逻辑对象复制到目的逻辑对象中;未被阴影填充的小格代表其对应标识的数据块已从源 逻辑对象复制到目的逻辑对象中。本次复制的变化位图B中被阴影填充的小格代表在本次 复制过程中对应标识的数据块已被写请求所修改。当然在实际实施时,差异位图使用方式 一中的存储方式时,位图A可以为以数组的方式存储尚未从源逻辑对象复制到目的逻辑对 象中的数据块的标识;或者差异位图使用方式二中的存储方式时,位图A可以用2个字节 16bit来存储16个数据块的状态标识,用其中每一 bit来存储对应的一个数据块的状态标 识,当一个数据块对应的bit位被置1时说明该数据块尚未从源逻辑对象复制到目的逻辑 对象中,被置0时说明该数据块已从源逻辑对象复制到目的逻辑对象中。位图B的实施方 式也类似,在这里不再一一列举差异位图和变化位图所有可能的实施方式。假定本次复制不是首次将该源逻辑对象复制到该目的逻辑对象,因此将前一次复 制结束时的变化位图内容复制到本次复制的差异位图中,前一次复制结束时的变化位图如 附图恥中的变化位图B’所示,本次复制的差异位图如附图恥中的差异位图A所示,即本 次开始LUN复制时,源逻辑对象中标识分别为0、11、12、15的数据块还未被复制到目的逻辑 对象中。本次复制的变化位图中各数据块对应的状态信息为未被修改,如附图恥中的变化
10位图B所示。开始复制后,源逻辑对象所在的存储系统以设定的读写周期监控是否接收到写请 求,假设第一个读写周期接收到包含的数据块标识为4的、用于修改源逻辑对象中标识为4 的数据块的第一写请求,根据差异位图判断出尚未完成复制的数据块并不包含标识为4的 数据块,则根据第一写请求修改标识为4的数据块,并在变化位图中将数据块标识为4的数 据块的状态设置为已被修改,此时差异位图A和变化位图B如附图5c所示。可见,在写请 求所要修改的数据块无需在本次复制中复制到目标逻辑对象的情况下,只需要根据写请求 修改源逻辑对象的数据块即可,节约了将源逻辑对象中的数据块复制到目的逻辑对象所需 的读写操作。假设第二个读写周期接收到包含的数据块标识为11的、用于修改标识为11的数 据块的第二写请求,根据差异位图判断出尚未完成复制的数据块中包含标识为11的数据 块,则首先将标识为11的数据块复制到目标逻辑对象中,再在本次复制的差异位图A中将 数据块标识为U的数据块的状态设置为已被复制到目的逻辑对象中,然后根据第二写请 求修改源逻辑对象中标识为11的数据块,并在变化位图中将数据块标识为11的数据块的 状态设置为已被修改,此时差异位图A和变化位图B如附图5d所示。假设在后续读写周期中未接收到其他的写请求,则将附图5d中差异位图A中包含 的各数据块标识对应的数据块,即标识为0、12、15的数据块复制到目标逻辑对象中。本次LUN复制结束时,差异位图和变化位图如附图k所示。在进行下一次LUN复制时,将附图k中的变化位图作为下一次复制的差异位图, 执行同样的处理步骤,在这里不再赘述。在具体实施时,可以分别用两块指定的存储空间来存储差异位图和变化位图,在 反复多次将同一源逻辑对象复制到同一目的逻辑对象时,每一次复制初始时,将前一次复 制结束时的变化位图的存储地址作为本次复制初始时的差异位图的存储地址,再将前一次 复制结束时的差异位图的存储地址作为本次复制初始时的变化位图的存储地址。附图3、附图4和附图fe 附图k是以一个目标逻辑对象为例,介绍本发明实 施例提供的数据复制方案的,该方案同样适用于附图5f所示的将一个源逻辑对象中的数 据复制到多个目标逻辑对象的场景,源逻辑对象和目标逻辑对象可以设置在同一存储设备 中,也可以设置于不同的存储设备中,在这些场景下,分别为每对源逻辑对象和目标逻辑对 象设置差异位图和变化位图,对于每对源逻辑对象和目标逻辑对象,具体的复制过程与附 图3、附图4和附图fe 附图k提供的方案类似,在这里不再一一赘述。相应地,本发明实施例还提供了 一种逻辑对象数据的复制装置,如图6所示,该装 置包括获取单元601、监控单元602、第一判断单元603、复制单元604、第一更新单元605,具 体如下获取单元601,用于获取差异位图,所述差异位图用于存储源逻辑对象中数据块是 否已被复制到目的逻辑对象中的状态信息;监控单元602,用于在获取单元601获取差异位图后,监控是否接收到修改源逻辑 对象中数据块的写请求;第一判断单元603,用于在监控单元602监控结果是未接收到写请求时,根据差异 位图确定源逻辑对象中未被复制到目的逻辑对象中的数据块;
复制单元604,用于将第一判断单元603确定出数据块复制到目的逻辑对象中;第一更新单元605,用于在复制单元604将数据块复制到目的逻辑对象中后,更新 差异位图中该数据块的状态信息。可选地,附图6的复制装置还包括第二判断单元606、第一触发单元607、第二触发 单元608、修改单元609、第二更新单元610,具体如下第二判断单元606,用于在监控单元602监控结果是接收到写请求时,根据差异位 图,确定该写请求中包含的数据块标识对应的数据块是否已被复制到目的逻辑对象中;第一触发单元607,用于若第二判断单元606确定出该写请求中包含的数据块标 识对应的数据块未被复制到目的逻辑对象中,触发复制单元604将该写请求中包含的数据 块的标识对应的数据块复制到目的逻辑对象中;第二触发单元608,用于在第一触发单元607触发复制单元604将该写请求中包含 的数据块的标识对应的数据块复制到目的逻辑对象中之后,触发第一更新单元605将差异 位图中该数据块的状态信息更新为已被复制到目的逻辑对象中;修改单元609,用于若第二判断单元606确定出该写请求中包含的数据块标识对 应的数据块已被复制到目的逻辑对象中、或第二触发单元608已触发第一更新单元605将 差异位图中该数据块的状态信息更新为已被复制到目的逻辑对象中,根据写请求修改该写 请求中包含的数据块的标识对应的数据块;第二更新单元610,用于在修改单元609修改数据块之后,将变化位图中将该数据 块的状态信息更新为已被修改,所述变化位图用于存储复制过程中源逻辑对象中的数据块 是否被修改的状态信息。可选地,请参照附图7,附图6中的获取单元601具体包括判断单元701,用于确定本次复制是否为首次将源逻辑对象复制到目的逻辑对 象;第一确定子单元702,用于在判断子单元701确定出本次复制并非为首次将将源 逻辑对象复制到目的逻辑对象时,将前一次复制结束时变化位图中的状态信息作为本次复 制的差异位图中的状态信息;创建子单元703,用于在判断子单元701确定出本次复制为首次将源逻辑对象复 制到目的逻辑对象时,创建内容为空的差异位图和变化位图;第二确定子单元704,用于将创建子单元703创建的差异位图的源逻辑对象中数 据块的状态信息设置为未被复制到目的逻辑对象中。附图6、附图7所示的逻辑对象数据的复制装置的功能可以集成于源逻辑对象所 在的存储设备中,也可以设置在与源逻辑对象所在的存储设备连接的独立设备中。需要说明的是虽然本发明实施例是以逻辑对象为例介绍数据复制方法的,但是 该方法的适用范围并不仅仅是逻辑对象,还可以适用于其他存储设备,例如磁盘阵列之间 的数据复制过程。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以 通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读取存储介质中,如 ROM/RAM、磁碟、光盘等。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围 之内,则本发明也意图包含这些改动和变型在内。
权利要求
1.一种逻辑对象数据的复制方法,其特征在于,包括获取差异位图,所述差异位图用于存储源逻辑对象中数据块是否已被复制到目的逻辑 对象中的状态信息;监控是否接收到修改源逻辑对象中数据块的写请求;如果监控结果是未接收到写请求,则根据差异位图确定源逻辑对象中未被复制到目的 逻辑对象中的数据块,将所述数据块复制到目的逻辑对象中,并更新差异位图中该数据块 的状态信息。
2.如权利要求1所述的方法,其特征在于,还包括如果监控结果是接收到写请求,则根据差异位图,确定该写请求中包含的数据块标识对应的数据块是否已被复制到目的 逻辑对象中;若该写请求中包含的数据块标识对应的数据块未被复制到目的逻辑对象中,将该写请 求中包含的数据块的标识对应的数据块复制到目的逻辑对象中,将差异位图中的该数据块 的状态信息更新为已被复制到目的逻辑对象中;根据该写请求修改该写请求中包含的数据块的标识对应的数据块,将变化位图中该数 据块的状态信息更新为已被修改,所述变化位图用于存储复制过程中源逻辑对象中的数据 块是否被修改的状态信息。
3.如权利要求2所述的方法,其特征在于,获取差异位图,具体包括确定本次复制是否为首次将源逻辑对象复制到目的逻辑对象,以及在确定出本次复制并非为首次将源逻辑对象复制到目的逻辑对象时,将前一次复制结 束时变化位图中的状态信息作为本次复制的差异位图的状态信息。
4.如权利要求3所述的方法,其特征在于,将前一次复制结束时变化位图的中的状态 信息作为本次复制的差异位图的状态信息后,还包括将变化位图中源逻辑对象中数据块的状态信息更新为未被修改。
5.如权利要求3所述的方法,其特征在于,确定出本次复制为首次将源逻辑对象复制 到目的逻辑对象时,还包括创建内容为空的差异位图和变化位图;将差异位图中的源逻辑对象中各数据块的状态信息设置为未被复制到目的逻辑对象中。
6.如权利要求2至5中任一所述的方法,其特征在于,所述差异位图中存储源逻辑对象 中每个数据块是否已被复制到目的逻辑对象中的状态信息的方式,包括差异位图中存储尚未从源逻辑对象复制到目的逻辑对象中的数据块的标识,不存储已 从源逻辑对象复制到目的逻辑对象中的数据块的标识;所述将差异位图中该数据块的状态 信息更新为已被复制到目的逻辑对象中具体为在差异位图中删除该数据块的标识,或者将差异位图中未从源逻辑对象复制到目的逻辑对象中的数据块的状态信息设置为第 一状态标识,并将已从源逻辑对象复制到目的逻辑对象中的数据块的状态信息设置为第二 状态标识;所述将差异位图中该数据块的状态信息更新为已被复制到目的逻辑对象中具体 为将差异位图中该数据块的状态标识更新为第二状态标识。
7.如权利要求2至5中任一所述的方法,其特征在于,所述变化位图存储中复制过程源逻辑对象中数据块是否被修改的状态信息方式包括在变化位图中存储复制过程中被修改的源逻辑对象中的数据块的标识,不存储复制过 程中未被修改的源逻辑对象中的数据块的标识;所述将变化位图中写请求中包含的数据块 的状态信息更新为被修改,具体为在变化位图中增加写请求中包含的数据块的标识;或 者将变化位图中的在复制过程中被修改的源逻辑对象中的数据块的状态信息设置为第 三状态标识,将复制过程中未被修改的源逻辑对象中的数据块的状态信息设置为第四状态 标识;所述将变化位图中写请求中包含的数据块的的状态信息更新为被修改,具体为将 变化位图中该数据块的状态标识更新为第三状态标识。
8.一种逻辑对象数据的复制装置,其特征在于,包括获取单元,用于获取差异位图,所述差异位图用于存储源逻辑对象中数据块是否已被 复制到目的逻辑对象中的状态信息;监控单元,用于在获取单元获取差异位图后,监控是否接收到修改源逻辑对象中数据 块的写请求;第一判断单元,用于在监控单元监控结果是未接收到写请求时,根据差异位图确定源 逻辑对象中未被复制到目的逻辑对象中的数据块;复制单元,用于将第一判断单元确定出的数据块复制到目的逻辑对象中; 第一更新单元,用于在复制单元将数据块复制到目的逻辑对象中后,更新差异位图中 该数据块的状态信息。
9.如权利要求8所述的装置,其特征在于,还包括第二判断单元,用于在监控单元监控结果是接收到写请求时,根据差异位图,确定该写 请求中包含的数据块标识对应的数据块是否已被复制到目的逻辑对象中;第一触发单元,用于若第二判断单元确定出该写请求中包含的数据块标识对应的数据 块未被复制到目的逻辑对象中,触发复制单元将该写请求中包含的数据块的标识对应的数 据块复制到目的逻辑对象中;第二触发单元,用于在第一触发单元触发复制单元将该写请求中包含的数据块的标识 对应的数据块复制到目的逻辑对象中之后,触发第一更新单元将差异位图中该数据块的状 态信息更新为已被复制到目的逻辑对象中;修改单元,用于若第二判断单元确定出该写请求中包含的数据块标识对应的数据块已 被复制到目的逻辑对象中、或第二触发单元已触发第一更新单元将差异位图中该数据块的 状态信息更新为已被复制到目的逻辑对象中,根据写请求修改该写请求中包含的数据块的 标识对应的数据块;第二更新单元,用于在修改单元修改数据块之后,将变化位图中该数据块的状态信息 更新为已被修改,所述变化位图用于存储复制过程中源逻辑对象中的数据块否被修改的状 态fe息。
10.如权利要求9所述的装置,其特征在于,所述获取单元具体包括判断子单元,用于确定本次复制是否为首次将源逻辑对象复制到目的逻辑对象; 第一确定子单元,用于在判断子单元确定出本次复制并非为首次将源逻辑对象复制到 目的逻辑对象时,将前一次复制结束时变化位图中的状态信息作为本次复制的差异位图的状态信息;创建子单元,用于在判断子单元确定出本次复制为首次将源逻辑对象复制到目的逻辑 对象时,创建内容为空的差异位图和变化位图;第二确定子单元,用于将创建子单元创建的差异位图的源逻辑对象中各数据块的状态 信息设置为未被复制到目的逻辑对象中。
全文摘要
本发明公开了一种逻辑对象数据的复制方法以及相关装置,用以减少进行LUN复制时耗费的存储资源。该方法包括获取差异位图,所述差异位图用于存储源逻辑对象中每个数据块对应的是否已被复制到目的逻辑对象中的状态信息;监控是否接收到修改源逻辑对象中数据块的写请求,如果监控结果是未接收到写请求,则根据差异位图确定源逻辑对象中未被复制到目的逻辑对象中的数据块,将所述数据块复制到目的逻辑对象中,并更新差异位图中该数据块的状态信息。
文档编号G06F11/14GK102096616SQ20111003936
公开日2011年6月15日 申请日期2011年2月15日 优先权日2011年2月15日
发明者欧阳戟, 王飞 申请人:成都市华为赛门铁克科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1