实现磁盘冗余阵列之间数据复制的控制方法和装置的制作方法

文档序号:6755435阅读:194来源:国知局
专利名称:实现磁盘冗余阵列之间数据复制的控制方法和装置的制作方法
技术领域
本发明涉及磁盘冗余阵列(RAID)的数据复制技术,特别涉及一种实 现RAID之间数据复制的控制方法、以及一种实现RAID之间数据复制的控 制装置。
背景技术
RAID技术已广泛应用于数据存储的各种场合。其中,RAID5、 RAID6、 RAID10等具备冗余能力的RAID中,除了以条带方式存储数据之外,每一 条带还具有可还原该条带内数据的奇偶校验数据。
参见图1,以包含4个》兹盘的RAID5为例,有D0 D8共8个数据条块 写入至RAID5中,分别存^L于石兹盘0~2中的^t据条块D0 D2构成条带0, 且条带0还具有一校验和条块P0存放于磁盘3中;分别存放于磁盘0、磁 盘1、磁盘3中的数据条块D3 D5构成条带1,且条带l还具有一校验和条 块Pl存放于磁盘2中;分别存放于磁盘0、磁盘2、 i兹盘3中的D6 D8构 成条带2,且条带2还具有一校验和条块P2存放于磁盘1中。
基于RAID实现的存储设备,除了可以利用校验和条块中的奇偶校验数 据实现对应条带内的数据恢复之外,还可以作为源端RAID与其他任意目的 端RAID之间相互复制数据(本文所述的源端RAID、目的端RAID均是指 至少包含有RAID控制器的RAID存储设备,而非仅仅是指磁盘阵列)。
具体参见图2,源端RAID的RAID控制器中承载的复制模块,以条块 为单位复制每个数据条块中的数据并发送至目的端RAID;由于目的端RAID 的阵列组成方式与源端RAID不一定相同(例如一个条带包含的条块数量不 同),因此,目的端RAID接收到各数据条块后首先緩存在其RAID控制器内的写緩存中,当数据条块的数量达到目的端RAID的阵列组成方式所规定 的一个条带、即预定数量的数据条块构成新条带后,目的端RAID的RAID 控制器中承载的计算模块重新计算新条带的校验和条块,然后再由目的端 RAID的RAID控制器中承载的写模块,将緩存的各数据条块写入到对应磁 盘中、由计算模块将计算得到的校验和条块写入至对应磁盘中。
在上述过程中,源端RAID并不关心目的端RAID是否已完成针对每一 接收到的新条带所进行校验和条块的计算、以及写入,而是连续地已条块为 单位复制并发送数据。由于当今的网络传输性能已得到大幅提升,因而源端 RAID已条块为单位发送的数据在网络中的传输速率,远远大于目的端RAID 计算校验和条块的速率,而且现有RAID中也不能够利用多个计算模块来分 担校验和条块的计算量,从而使得目的端RAID的写緩存中的数据存储量会 不断增涨、直至写满为止,那么此时源端RAID和目的端RAID之间的数据 复制速率就完全取决于目的端RAID计算校验和条块的速率。而且,当写緩 存被写满后,目的端RAID本地的正常写操作也会收到影响。

发明内容
有鉴于此,本发明提供了一种RAID之间数据复制的控制方法、以及一 种RAID之间数据复制的控制装置,能够在源端RAID与目的端RAID的阵 列组成方式相同时,降低目的端RAID在复制数据时的负担。
本发明提供的 一种RAID之间数据复制的控制方法,包括如下步骤
源端RAID在确定其阵列组成与目的端RAID相同后,以条带为单位复 制各数据条块并发送至目的端RAID,然后在同一条带的全部数据条块发送 完毕后向目的端RAID发送传输完毕消息;
源端RAID在目的端RAID将同一条带的全部数据条块放入至緩存后, 复制该条带的校验和条块并发送至目的端RAID,以供目的端RAID将源端 RAID复制的同 一条带的全部数据条块以及校验和条块分别写入至对应的石兹 盘。该方法进一步包"fe:源端RAID向目的端RAID询问阵列组成、用以确 定其阵列组成是否与目的端RAID相同。
该方法进一步包括源端RAID为发送至目的端RAID的同一条带的各 数据条块和校验和条块设置相同的预设标识。
该方法进一步包括源端RAID复制同一条带的部分数据条块并发送至 目的端RAID,然后在该条带的部分数据条块发送完毕后向目的端RAID发 送传输完毕消息,以供目的端RAID判断出该条带非完整条带后丢弃该条带 的校验和条块、并自行计算该条带部分数据条块的校验和条块。
本发明提供的 一种RAID之间数据复制的控制方法,包括如下步骤
目的端RAID在源端RAID确定其阵列组成与目的端RAID相同后,接 收并緩存源端RAID以条带为单位复制的各数据条块,然后接收源端RAID 在同一条带的全部数据条块发送完毕后所发送的传输完毕消息;
在目的端RAID将同一条带的全部数据条块放入至緩存后通知源端 RAID接收完毕,然后接收源端RAID复制的该条带的校验和条块,再将源
该方法进一步包括目的端RAID根据源端RAID的询问反馈自身的阵 列组成、用以源端RAID确定其阵列组成是否与目的端RAID相同。
该方法进一步包括目的端RAID根据源端RAID为各数据条块和校验 和条块设置的预设标识,识别属于同 一条带的各数据条块和校验和条块。
该方法进一步包括目的端RAID接收并緩存源端RAID复制的同一条 带的部分数据条块时,接收到源端RAID发送的传输完毕消息、并判断出该 条带非完整条带并通知源端RAID接收完毕,然后接收并丢弃源端RAID复 制的该条带的校验和条块、自行计算该条带部分数据条块的校验和条块,再 将源端RAID复制的该条带的部分数据条块、以及自行计算得到的校验和条 块写入至对应;兹盘。
本发明提供的一种RAID之间数据复制的控制装置,与源端RAID中耦 合的各磁盘相连,该控制装置包括写緩存,用于緩存待写入至源端RAID中对应磁盘的写数据; 写模块,用于将写緩存中的写数据写入至源端RAID的对应磁盘中; 计算模块,用于根据写緩存中的数据和源端RAID中的对应数据计算校 验和,并将校-验和写入至源端RAID中的对应》兹盘;
进一步包括复制模块,用于在确定源端RAID的阵列组成与目的端 RAID相同后,以条带为单位复制源端RAID中的各数据条块并发送至目的 端RAID,然后在该条带的全部数据条块发送完毕后向目的端RAID发送传 输完毕消息;还在目的端RAID将同一条带的全部数据条块放入至緩存后, 再复制源端RAID中该条带的校验和条块并发送至目的端RAID,以供目的 端RAID将同一条带的全部数据条块以及校验和条块分别写入至对应的磁 盘。
复制模块进一步复制源端RAID中同一条带的部分数据条块并发送至 目的端RAID,然后在该条带的部分数据条块发送完毕后向目的端RAID发 送传输完毕消息,以供目的端RAID判断出该条带非完整条带后丢弃该条带 的校验和条块、并自行计算该条带部分数据条块的校验和条块。
本发明提供的一种RAID之间数据复制的控制装置,与目的端RAID中 耦合的各磁盘相连,该控制装置包括
写緩存,用于緩存待写入至目的端RAID中对应磁盘的写数据; 写模块,用于将写緩存中的写数据写入至目的端RAID的对应磁盘中; 计算模块,用于根据写緩存中的数据和目的端RAID中的对应数据计算 校验和,并将校验和写入至目的端RAID中的对应》兹盘;
进一步包括复制写緩存,用于接收并緩存以条带为单位复制的源端 RAID中的各数据条块,源端RAID的阵列组成与目的端RAID相同;且, 写模块进一步接收源端RAID在同一条带的全部数据条块发送完毕发送的传 输完毕消息,并在同 一条带的全部数据条块放入至复制写緩存后通知源端 RAID接收完毕;
复制写緩存还接收源端RAID复制的各条带的校验和条块;且写模块将复制写緩存中的全部数据条块、以及校验和条块写入至目的端RAID中对应 磁盘。
写模块进一步在复制写緩存接收并緩存从源端RAID中复制的同一条 带的部分数据条块时,接收到源端RAID发送的传输完毕消息,判断出该条 带非完整条带并通知源端RAID接收完毕,然后接收并丢弃源端RAID复制 的该条带的校验和条块,并将复制写緩存中的部分数据条块提供给计算模 块、以计算该条带部分数据条块的校验和条块,再将复制写緩存中该条带的 部分数据条块写入至目的端RAID中对应的磁盘、并由计算模块将计算得到 的才交验和条块写入至目的端RAID中对应的磁盘。
本发明提供的一种实现磁盘冗余阵列RAID之间数据复制的系统,包括 源端RAID和目的端RAID,
源端RAID在确定其阵列组成与目的端RAID相同后,以条带为单位复 制各数据条块并发送至目的端RAID,然后在同一条带的全部数据条块发送 完毕后向目的端RAID发送传输完毕消息,并在目的端RAID将同一条带的 全部数据条块放入至緩存后,复制该条带的校验和条块并发送至目的端 RAID;
目的端RAID将源端RAID复制的同一条带的全部数据条块以及校验和 条块分别写入至对应的》兹盘。
本发明提供的一种基于RAID存储设备的存储系统,包括有连接至业务 网络、且阵列组成相同的若干RAID存储设备,
业务网络中设有流量分配器,用于根据任意RAID存储设备的请求,将 业务流量分担至其他RAID存储设备;
所述其他RAID存储设备,以条带为单位复制各数据条块并发送至发起 所述请求的RAID存储设备,然后在同一条带的全部数据条块发送完毕后向 发起所述请求的RAID存储设备发送传输完毕消息,并在发起所述请求的 RAID存储设备将同 一条带的全部数据条块放入至緩存后,复制该条带的校
验和条块并发送至发起所述请求的RAID存储设备;发起所述请求的RAID存储设备将所述其他RAID存储设备复制的同一 条带的全部数据条块、以及校验和条块分别写入至对应的磁盘。
由上述技术方案可见,本发明在源端RAID与目的端RAID的阵列组成 相同时,由源端RAID以条带为单位复制各数据条块、并发送至目的端RAID 以条带为单位緩存,待源RAID将对应的校验和条块复制并发送至目的端 RAID后,目的端RAID无需进行校验和计算,即可同时将完整条带及其校 验和条块写入至对应的i兹盘中,从而减轻了目的端RAID的计算压力、保证 目的端RAID本地的正常写操作不受影响。
而且,本发明的技术方案还适用于包含多个RAID存储设备的存储网络 中,在任意RAID存储设备繁忙时,可由其它空闲RAID存储设备现行存储 数据条块并计算校验和条块,尔后再从其它空闲RAID存储设备复制回数据 条块和计算校验和条块,从而实现多个RAID存储设备间的负载分担。


图1为现有RAID中的条带结构示意图; 图2为现有源、目的端RAID之间数据复制过程的示意图; 图3为本发明实施例中源、目的端RAID之间数据复制过程的示意图; 图4为本发明实施例中源、目的端RAID之间数据复制过程的一特例示 意图5为本发明实施例中针对源端RAID的控制方法流程示意图; 图6为本发明实施例中针对目的端RAID的控制方法流程示意图; 图7为本发明实施例所适用的一种存储网络结构示意图。
具体实施例方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举 实施例,对本发明进一步详细i兌明。
本实施例中,考虑到源端RAID和目的端RAID的阵列组成方式相同时,源端RAID和目的端RAID的同 一条带内可以包含相同的数据条块,相应地, 同一条带的校验和条块也可以相同,因此参见图3:
源端RAID的RAID控制器中承载的复制模块,在确定源端RAID的阵 列组成与目的端RAID相同后,以条带为单位复制源端RAID的各数据条块 并发送至目的端RAID,然后在该条带的全部数据条块发送完毕后向目的端 RAID发送传输完毕消 息5
目的端RAID的RAID控制器中除了现有用于緩存本地待写入至目的端 RAID中的写数据的写緩存之外,还进一步设置有复制写緩存,复制写緩存 接收并緩存以条带为单位复制的源端RAID中的各数据条块,由于复制数据 在源端RAID即是以 一个条带为单位存放和复制的,因而在复制写緩存中也 按照一个完整条带存放;需要说明的是,目的端RAID的RAID控制器中额 外设置一复制写緩存,是为了避免复制数据与本地写数据冲突,目的端RAID 的RAID控制器中承载的写模块,可从RAID控制器的物理内存中申请得到 复制写缓存,并在数据复制完毕后再释放复制写緩存;
目的端RAID的RAID控制器中承载的写模块,除了用于将写緩存中的 写数据写入至目的端RAID的对应磁盘之外,还进一步接收源端RAID在同 一条带的全部数据条块发送完毕发送的传输完毕消息,并在同 一条带的全部 数据条块放入至复制写緩存后通知源端RAID接收完毕,等待源端RAID复 制对应条带的校验和条块;
源端RAID的RAID控制器中承载的复制模块在目的端RAID将同 一条 带的全部数据条块放入至緩存后,再复制源端RAID中该条带的校验和条块 并发送至目的端RAID;需要说明的是,当有条带的数据条块在传输过程中 丟失后,如果源端RAID仍将该条带的校验和条块复制并发送至目的端 RAID,则会造成目的端RAID无法识别该冲交-验和条块,因此,源端RAID 的RAID控制器中承载的复制模块并不是在同一条带的全部数据条块发送完 毕后立即复制并发送该条带的校验和条块;此外,当有条带的数据条块在传 输过程中丢失后,目的端RAID的RAID控制器中承载的写模块可以发起重传;
目的端RAID的RAID控制器中设置的复制写緩存还接收源端RAID复 制的各条带的校验和条块;
目的端RAID的RAID控制器中承载的写模块,可将复制写緩存中属于 同一条带的全部数据条块以及校验和条块写入至目的端RAID中对应磁盘, 从而目的端RAID的RAID控制器中承载的计算模块只需针对写緩存中的本 地写数据进行计算,而无需针对复制的数据进行计算。
实际应用中,为了源端RAID能够获知其阵列组成是否与目的端RAID 相同,源端RAID的RAID控制器中承载的复制模块可以进一步向目的端 RAID询问阵列组成,并由目的端RAID的RAID控制器中承载的写模块反 馈目的端RAID的阵列组成。
而为了目的端RAID的写模块能够区分哪些数据条块和校验和条块属 于同一条带,源端RAID的复制模块可以进一步为发送至目的端RAID的同 一条带的各数据条块和校验和条块设置相同的预设标识(例如条带编号等)。 这样,目的端RAID的写模块可以进一步根据源端RAID为各数据条块和校 验和条块设置的预设标识,识别属于同 一条带的各数据条块和校验和条块。
此外,实际应用中,在源端、目的端RAID之间的数据复制,可能会涉 及连续的多个条带,且对于起始条带和最后一个条带,可能只需复制其中的 部分条块。
这种情况下,参见图4:
源端RAID的RAID控制器中承载的复制模块,可进一步复制源端RAID 中同一条带的部分数据条块(例如图4中属于起始条带0的D2、属于最后 一个条带2的D6和D7)并发送至目的端RAID,然后在所复制的该条带的 部分数据条块发送完毕后向目的端RAID发送传输完毕消息;
目的端RAID的RAID控制器中承载的写模块,可进一步在复制写緩存 接收并缓存从源端RAID中复制的同一条带的部分数据条块时,接收到源端 RAID发送的传输完毕消息,根据该传输完毕消息判断出该条带非完整条带并通知源端RAID接收完毕,然后通知源端RAID接收完毕;
源端RAID在知晓目的端RAID接收非完整条带完毕后,仍会复制并发 送该条带的校验和条块,但目的端RAID的RAID控制器中承载的写模块, 会将复制写緩存中接收的该非完整条带的校验和条块(例如图4中由条带0 中的D2和未复制的D0、 D1计算得到的P0、由条带2中的D6、 D7以及未 复制的D8计算得到的P2)丟弃,并将复制写緩存中的部分数据条块(例如 图4中的D2、 D6和D7)提供给计算模块、以计算该非完整条带部分数据 条块的才交验和条块(例如图4中仅由D2计算得到的P0'、仅由D6和D7计 算得到的P2,),再将该条带的部分数据条块写入至目的端RAID中对应的 磁盘、并由计算模块将计算得到的校验和条块写入至目的端RAID中对应的 磁盘。
基于上述说明可知,本实施例中实现磁盘冗余阵列RAID之间数据复制 的控制装置,在与其相连的RAID作为源端RAID时,除了写緩存、写模块、 计算模块等现有各种模块之外,还需要包括复制模块;在与其相连的RAID 作为目的端RAID时,除了写緩存、写模块、计算模块等现有各种模块之外, 还需要包括复制写緩存;同理,在与其相连的RAID既作为源端RAID、又 作为目的端RAID时,则除了写緩存、写模块、计算模块等现有各种模块之 外,既需要包括复制模块、又需要包括复制写緩存。
可见,基于本实施例中实现RAID之间数据复制的控制装置,在源端 RAID与目的端RAID的阵列组成相同时,可以以条带为单位复制源端RAID 中的各数据条块、并发送至目的端RAID以条带为单位緩存,待源RAID将 对应的校验和条块复制并发送至目的端RAID后,在无需目的端RAID进行 校验和计算的情况下,可同时将完整条带及其校验和条块写入至对应的磁盘 中,从而减轻了目的端RAID的计算压力、保证目的端RAID本地的正常写 操作不受影响。
以上是对本实施例中RAID之间数据复制的控制装置的详细说明。下 面,再对本实施例中实现RAID之间数据复制的控制方法进行说明。在本实施例RAID之间数据复制的控制方法中
源端RAID在确定其阵列组成与目的端RAID相同后,可以以条带为单 位复制各数据条块并发送至目的端RAID,然后在同一条带的全部数据条块 发送完毕后向目的端RAID发送传输完毕消息;
目的端RAID中,除了现有的写緩存之外,还额外再建立一个复制写緩 存,当源端RAID发送复制数据后,由于复制数据在源端RAID即是以一个 条带为单位存放和复制的,因而在复制写緩存中也按照 一个完整条带存放; 且目的端RAID接收到传输完毕消息后,等待源端RAID复制对应条带的校 验和条块;需要说明的是,目的端RAID中额外设置一复制写緩存,是为了 避免复制数据与本地写数据冲突,目的端RAID可从物理内存中申请得到复 制写緩存,并在数据复制完毕后再释放复制写緩存;
源端RAID在目的端RAID将同 一条带的全部数据条块放入至复制写緩 存后,复制该条带的校验和条块并发送至目的端RAID;需要说明的是,当 有条带的数据条块在传输过程中丟失后,如果源端RAID仍将该条带的校验 和条块复制并发送至目的端RAID,则会造成目的端RAID无法识别该校验 和条块,因此,源端RAID并不是在同一条带的全部数据条块发送完毕后立 即复制并发送该条带的校验和条块;此外,当有条带的数据条块在传输过程 中丟失后,目的端RAID可以发起重传;
目的端RAID将源端RAID复制的同 一条带的全部数据条块以及该条带 的才交-验和条块分别写入至对应的,兹盘。
实际应用中,为了源端RAID能够获知其阵列组成是否与目的端RAID 相同,该方法可以进一步由源端RAID向目的端RAID询问阵列组成,并由 目的端RAID反馈目的端RAID的阵列组成。
而为了目的端RAID能够区分哪些数据条块和校验和条块属于同一条 带,该方法可以进一步由源端RAID为发送至目的端RAID的同一条带的各 数据条块和校验和条块设置相同的预设标识(例如条带编号等)。这样,目 的端RAID可以进一步根据源端RAID为各数据条块和校验和条块设置的预设标识,识别属于同 一条带的各数据条块和校验和条块。
此外,实际应用中,在源端、目的端RAID之间的数据复制,可能会涉 及连续的多个条带,且对于起始条带和最后一个条带,可能只需复制其中的 部分条块。
这种情况下,该方法可以进一步由源端RAID复制同一条带的部分数据 条块并发送至目的端RAID,然后在所复制的该条带的部分数据条块发送完 毕后向目的端RAID发送传输完毕消息;相应地,目的端RAID可在复制写 緩存接收并緩存从源端RAID中复制的同一条带的部分数据条块时,接收到 源端RAID发送的传输完毕消息,根据该传输完毕消息判断出该条带非完整 条带并通知源端RAID接收完毕,然后通知源端RAID接收完毕;
此后,源端RAID在知晓目的端RAID接收非完整条带完毕后,仍会复 制并发送该条带的校验和条块,但目的端RAID会将复制写緩存中接收的该 非完整条带的校验和条块丟弃,并自行计算该非完整条带部分数据条块的校 验和条块,再将源端RAID复制的该条带的部分数据条块、以及自行计算得 到的校验和条块写入至对应的;兹盘。
图5为本发明实施例中针对源端RAID的控制方法流程示意图。如图5 所示,本实施例中实现RAID之间数据复制的控制方法在源端RAID的具体 处理流程包括如下步骤
步骤501,源端RAID向目的端RAID询问阵列组成。
步骤502,源端RAID判断其阵列组成是否与目的端RAID反馈的阵列 组成相同,如果是,则4丸行步骤503,否则结束本流程。
步骤503,开始复制、并判断当前复制的是否为完整条带,如果是,则 执行步骤504,否则执行步骤505。
步骤504,源端RAID以条带为单位复制各数据条块、并设置对应条带 的预设标识后发送至目的端RAID,在同一条带的全部数据条块发送完毕后 向目的端RAID发送传输完毕消息,然后执行步骤506。
步骤505,源端RAID复制同一条带中的部分条块、并设置对应条带的预设标识后发送至目的端RAID,在该条带的部分数据条块发送完毕后向目 的端RAID发送传输完毕消息,然后执行步骤506。
步骤506,源端RAID获知目的端RAID接收完毕后,复制目的端RAID 已接收完毕的完整条带或非完整条带的校验和条块并发送至目的端。
步骤507,源端RAID判断复制是否完成、即是否所有需复制的条带均 已完成复制,如果是,则结束本流程,否则返回步骤503继续下一条带的复 制。
至此,上述流程结束。
图6为本发明实施例中针对目的端RAID的控制方法流程示意图。如图 6所示,本实施例中实现RAID之间数据复制的控制方法在目的端RAID的 具体处理流程包括如下步骤
步骤601,目的端RAID针对源端RAID的询问反^"阵列组成。 步骤602,目的端RAID在自身的物理内存中申请复制写緩存。 步骤603,目的端RAID在源端RAID确定其阵列组成与目的端RAID 相同后,接收源端RAID以条带为单位复制的各数据条块、并依据源端RAID 设置的标识识别出接收的各数据条块所属条带,然后以条带方式緩存在复制 写緩存中。
步骤604,目的端RAID接收来自源端RAID的传输完毕消息后,通知 源端RAID接收完毕,然后判断当前接收并緩存的是否为完整条带,如果是, 则执行步骤605,否则执4于步骤606。
步骤605,目的端RAID接收并緩存源端RAID复制的校验和条块,依 据源端RAID设置的标识识别出校验和条块所属条带,并将复制写緩存中标 识相同的数据条块和校验和条块分别写入至对应的磁盘,然后执行步骤607。
步骤606,目的端RAID自行计算非完整条带的校验和条块、丟弃源端 RAID复制的校验和条块,并将复制写緩存中标识相同的数据条块、以及自 行计算的校验和条块写入至对应的磁盘,然后执行步骤607。
步骤607,目的端RAID判断复制是否完成、即是否所有需复制的条带均已完成复制,如果是,则执行步骤608,否则返回步骤603继续下一条带 的复制。
步骤608,目的端RAID释放申请的复制写緩存,然后结束本流程。 至此,上述流程结束。
以上是对本实施例中实现RAID之间数据复制的控制装置和控制方法 的详细说明。需要补充说明的是,本实施例中实现RAID之间数据复制的控 制装置和控制方法,并不仅仅是能够在源端RAID与目的端RAID的阵列组 成方式相同时,降低目的端RAID在复制数据时的负担,而是还适用于其它 应用。
例如,假设有存储构架中存在多个RAID存储设备,且各RAID存储设 备的阵列组成相同。那么,当其中一台RAID存储设备忽然并发大量的本地 写业务时,由于该RAID存储设备内的计算模块的计算能力有限,导致业务 响应速度非常的緩慢,而同时其他的一些RAID存储设备却十分空闲,此时, 即可依据本实施例的基本原理、并配置一台流量分配器,以使并发大量本地 写业务的RAID存储设备繁忙时,可以利用其他RAID存储设备来存储写数 据、并计算条带的校验和,然后再通过本实施例的复制方式,将数据条块和 校验和条块及时快速的复制回正确的RAID存储设备,在保证业务数据一致 性的同时也不会长期占用其他RAID存储设备的存储空间。
图7为本发明实施例所适用的一种存储网络结构示意图。如图7所示, 当业务网络并发8路对RAID存储设备A写数据时,RAID存储设备A的最 大RAID计算量为4路数据的并发,而此时RAID存储设备B和RAID存储 设备C处于比较空闲状态,则RAID存储设备A通知流量分配器转移2路 业务到RAID存储设备B、另2路业务到RAID存储设备C,并分别在RAID 存储设备A和RAID存储设备B、 RAID存储设备A和RAID存储设备C之 间建立复制连接,然后使用本实施例中的复制方式,即,RAID存储设备B 和RAID存储设备C在接收了整条带数据后计算校验和,然后直接将数据条 块和校验和条块通过复制连接传输到RAID存储设备A, RAID存储设备A接收到复制过来的数据条块和校验和条块写入磁盘,传输完成后RAID存储 设备B和RAID存储设备C删除复制并发送给RAID存储设备A的数据条 块和校验和条块。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范 围。凡在本发明的精神和原则之内,所作的任何修改、等同替换以及改进等, 均应包含在本发明的保护范围之内。
权利要求
1、一种实现磁盘冗余阵列RAID之间数据复制的控制方法,其特征在于,包括如下步骤源端RAID在确定其阵列组成与目的端RAID相同后,以条带为单位复制各数据条块并发送至目的端RAID,然后在同一条带的全部数据条块发送完毕后向目的端RAID发送传输完毕消息;源端RAID在目的端RAID将同一条带的全部数据条块放入至缓存后,复制该条带的校验和条块并发送至目的端RAID,以供目的端RAID将源端RAID复制的同一条带的全部数据条块以及校验和条块分别写入至对应的磁盘。
2、 如权利要求1所述的控制方法,其特征在于,该方法进一步包括 源端RAID向目的端RAID询问阵列组成、用以确定其阵列组成是否与目的 端RAID相同。
3、 如权利要求1所述的控制方法,其特征在于,该方法进一步包括 源端RAID为发送至目的端RAID的同 一条带的各数据条块和校验和条块设 置相同的预设标识。
4、 如权利要求1至3中任一项所述的控制方法,其特征在于,该方法 进一步包括源端RAID复制同一条带的部分数据条块并发送至目的端 RAID,然后在该条带的部分数据条块发送完毕后向目的端RAID发送传输 完毕消息,以供目的端RAID判断出该条带非完整条带后丢弃该条带的校验 和条块、并自行计算该条带部分数据条块的校验和条块。
5、 一种实现磁盘冗余阵列RAID之间数据复制的控制方法,其特征在 于,包括如下步骤目的端RAID在源端RAID确定其阵列组成与目的端RAID相同后,接 收并緩存源端RAID以条带为单位复制的各数据条块,然后接收源端RAID 在同一条带的全部数据条块发送完毕后所发送的传输完毕消息;在目的端RAID将同一条带的全部数据条块放入至緩存后通知源端 RAID接收完毕,然后接收源端RAID复制的该条带的校验和条块,再将源 端RAID复制的该条带的全部数据条块以及校验和条块写入至对应的f兹盘。
6、 如权利要求5所述的控制方法,其特征在于,该方法进一步包括目的端RAID根据源端RAID的询问反馈自身的阵列组成、用以源端RAID 确定其阵列组成是否与目的端RAID相同。
7、 如权利要求5所述的控制方法,其特征在于,该方法进一步包括 目的端RAID根据源端RAID为各数据条块和校验和条块设置的预设标识, 识别属于同 一条带的各数据条块和校验和条块。
8、 如权利要求5至7中任一项所述的控制方法,其特征在于,该方法 进一步包括目的端RAID接收并緩存源端RAID复制的同一条带的部分数 据条块时,接收到源端RAID发送的传输完毕消息、并判断出该条带非完整 条带并通知源端RAID接收完毕,然后接收并丢弃源端RAID复制的该条带 的校验和条块、自行计算该条带部分数据条块的校验和条块,再将源端RAID 复制的该条带的部分数据条块、以及自行计算得到的校验和条块写入至对应 磁盘。
9、 一种实现磁盘冗余阵列RAID之间数据复制的控制装置,与源端 RAID中耦合的各磁盘相连,该控制装置包括写緩存,用于緩存待写入至源端RAID中对应^f兹盘的写数据; 写模块,用于将写緩存中的写数据写入至源端RAID的对应磁盘中; 计算模块,用于根据写緩存中的数据和源端RAID中的对应数据计算校 验和,并将校验和写入至源端RAID中的对应磁盘;其特征在于,进一步包括复制模块,用于在确定源端RAID的阵列组成 与目的端RAID相同后,以条带为单位复制源端RAID中的各数据条块并发 送至目的端RAID,然后在该条带的全部数据条块发送完毕后向目的端RAID 发送传输完毕消息;还在目的端RAID将同一条带的全部数据条块放入至緩 存后,再复制源端RAID中该条带的校验和条块并发送至目的端RAID,以供目的端RAID将同一条带的全部数据条块以及校验和条块分别写入至对应 的磁盘。
10、 如权利要求9所述的控制装置,其特征在于,复制模块进一步复制 源端RAID中同一条带的部分数据条块并发送至目的端RAID,然后在该条 带的部分数据条块发送完毕后向目的端RAID发送传输完毕消息,以供目的 端RAID判断出该条带非完整条带后丢弃该条带的校验和条块、并自行计算 该条带部分数据条块的校验和条块。
11、 一种实现磁盘冗余阵列RAID之间数据复制的控制装置,与目的端 RAID中耦合的各磁盘相连,该控制装置包括写緩存,用于緩存待写入至目的端RAID中对应磁盘的写数据; 写模块,用于将写緩存中的写数据写入至目的端RAID的对应磁盘中; 计算模块,用于根据写緩存中的数据和目的端RAID中的对应数据计算校验和,并将校验和写入至目的端RAID中的对应磁盘;其特征在于,进一步包括复制写緩存,用于接收并緩存以条带为单位复制的源端RAID中的各数据条块,源端RAID的阵列组成与目的端RAID相同;且,写模块进一步接收源端RAID在同一条带的全部数据条块发送完毕发送的传输完毕消息,并在同一条带的全部数据条块放入至复制写緩存后通知源端RAID接收完毕;复制写緩存还接收源端RAID复制的各条带的校验和条块;且写模块将复制写緩存中的全部数据条块、以及校验和条块写入至目的端RAID中对应磁盘。
12、 如权利要求11所述的控制装置,其特征在于,写模块进一步在复 制写緩存接收并緩存从源端RAID中复制的同一条带的部分数据条块时,接 收到源端RAID发送的传输完毕消息,判断出该条带非完整条带并通知源端 RAID接收完毕,然后接收并丢弃源端RAID复制的该条带的校验和条块, 并将复制写緩存中的部分数据条块提供给计算模块、以计算该条带部分数据 条块的校验和条块,再将复制写緩存中该条带的部分数据条块写入至目的端RAID中对应的磁盘、并由计算模块将计算得到的校验和条块写入至目的端 RAID中对应的》兹盘。
13、 一种实现磁盘冗余阵列RAID之间数据复制的系统,包括源端RAID 和目的端RAID,其特征在于,源端RAID在确定其阵列组成与目的端RAID相同后,以条带为单位复 制各数据条块并发送至目的端RAID,然后在同一条带的全部数据条块发送 完毕后向目的端RAID发送传输完毕消息,并在目的端RAID将同一条带的 全部数据条块放入至緩存后,复制该条带的校验和条块并发送至目的端 RAID;目的端RAID将源端RAID复制的同 一条带的全部数据条块以及校验和 条块分别写入至对应的磁盘。
14、 一种基于RAID存储设备的存储系统,包括有连接至业务网络、且 阵列组成相同的若干RAID存储设备,其特征在于,业务网络中设有流量分配器,用于根据任意RAID存储设备的请求,将 业务流量分担至其他RAID存储设备;所述其他RAID存储设备,以条带为单位复制各数据条块并发送至发起 所述请求的RAID存储设备,然后在同一条带的全部数据条块发送完毕后向 发起所述请求的RAID存储设备发送传输完毕消息,并在发起所述请求的 RAID存储设备将同 一条带的全部数据条块放入至緩存后,复制该条带的校 验和条块并发送至发起所述请求的RAID存储设备;发起所述请求的RAID存储设备将所迷其他RAID存储设备复制的同一 条带的全部数据条块、以及校验和条块分别写入至对应的磁盘。
全文摘要
本发明公开了一种实现磁盘冗余阵列(RAID)之间数据复制的控制方法、以及一种实现RAID之间数据复制的控制装置。本发明在源端RAID与目的端RAID的阵列组成相同时,由源端RAID以条带为单位复制各数据条块、并发送至目的端RAID以条带为单位缓存,待源RAID将对应的校验和条块复制并发送至目的端RAID后,目的端RAID无需进行校验和计算,即可同时将完整条带及其校验和条块写入至对应的磁盘中,从而减轻了目的端RAID的计算压力、保证目的端RAID本地的正常写操作不受影响。而且,本发明的技术方案还适用于包含多个RAID存储设备的存储网络中的负载分担。
文档编号G11B19/02GK101625880SQ20091009126
公开日2010年1月13日 申请日期2009年8月14日 优先权日2009年8月14日
发明者迪 周, 策 孙 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1