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

上传人:e1 文档编号:777675 上传时间:2018-03-11 格式:PDF 页数:25 大小:1.23MB
返回 下载 相关 举报
摘要
申请专利号:

CN200910091267.5

申请日:

2009.08.14

公开号:

CN101625880A

公开日:

2010.01.13

当前法律状态:

授权

有效性:

有权

法律详情:

专利权人的姓名或者名称、地址的变更IPC(主分类):G06F 3/06变更事项:专利权人变更前:杭州华三通信技术有限公司变更后:新华三技术有限公司变更事项:地址变更前:310053 浙江省杭州市高新技术产业开发区之江科技工业园六和路310号华为杭州生产基地变更后:310052 浙江省杭州市滨江区长河路466号|||授权|||实质审查的生效IPC(主分类):G11B 19/02申请日:20090814|||公开

IPC分类号:

G11B19/02; G11B5/86

主分类号:

G11B19/02

申请人:

杭州华三通信技术有限公司

发明人:

孙 策; 周 迪

地址:

310053浙江省杭州市高新技术产业开发区之江科技工业园六和路310号华为杭州生产基地

优先权:

专利代理机构:

北京德琦知识产权代理有限公司

代理人:

王一斌;王 琦

PDF下载: PDF下载
内容摘要

本发明公开了一种实现磁盘冗余阵列(RAID)之间数据复制的控制方法、以及一种实现RAID之间数据复制的控制装置。本发明在源端RAID与目的端RAID的阵列组成相同时,由源端RAID以条带为单位复制各数据条块、并发送至目的端RAID以条带为单位缓存,待源RAID将对应的校验和条块复制并发送至目的端RAID后,目的端RAID无需进行校验和计算,即可同时将完整条带及其校验和条块写入至对应的磁盘中,从而减轻了目的端RAID的计算压力、保证目的端RAID本地的正常写操作不受影响。而且,本发明的技术方案

权利要求书

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复制的该条带的全部数据条块以及校验和条块写入至对应的磁盘。
6: 如权利要求5所述的控制方法,其特征在于,该方法进一步包括: 目的端RAID根据源端RAID的询问反馈自身的阵列组成、用以源端RAID 确定其阵列组成是否与目的端RAID相同。
7: 如权利要求5所述的控制方法,其特征在于,该方法进一步包括: 目的端RAID根据源端RAID为各数据条块和校验和条块设置的预设标识, 识别属于同一条带的各数据条块和校验和条块。
8: 如权利要求5至7中任一项所述的控制方法,其特征在于,该方法 进一步包括:目的端RAID接收并缓存源端RAID复制的同一条带的部分数 据条块时,接收到源端RAID发送的传输完毕消息、并判断出该条带非完整 条带并通知源端RAID接收完毕,然后接收并丢弃源端RAID复制的该条带 的校验和条块、自行计算该条带部分数据条块的校验和条块,再将源端RAID 复制的该条带的部分数据条块、以及自行计算得到的校验和条块写入至对应 磁盘。
9: 一种实现磁盘冗余阵列RAID之间数据复制的控制装置,与源端 RAID中耦合的各磁盘相连,该控制装置包括: 写缓存,用于缓存待写入至源端RAID中对应磁盘的写数据; 写模块,用于将写缓存中的写数据写入至源端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技术已广泛应用于数据存储的各种场合。其中,RAID5、RAID6、RAID10等具备冗余能力的RAID中,除了以条带方式存储数据之外,每一条带还具有可还原该条带内数据的奇偶校验数据。

    参见图1,以包含4个磁盘的RAID5为例,有D0~D8共8个数据条块写入至RAID5中,分别存放于磁盘0~2中的数据条块D0~D2构成条带0,且条带0还具有一校验和条块P0存放于磁盘3中;分别存放于磁盘0、磁盘1、磁盘3中的数据条块D3~D5构成条带1,且条带1还具有一校验和条块P1存放于磁盘2中;分别存放于磁盘0、磁盘2、磁盘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复制的同一条带的全部数据条块以及校验和条块分别写入至对应的磁盘。

    该方法进一步包括:源端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后,目的端RAID无需进行校验和计算,即可同时将完整条带及其校验和条块写入至对应的磁盘中,从而减轻了目的端RAID的计算压力、保证目的端RAID本地的正常写操作不受影响。

    而且,本发明的技术方案还适用于包含多个RAID存储设备的存储网络中,在任意RAID存储设备繁忙时,可由其它空闲RAID存储设备现行存储数据条块并计算校验和条块,尔后再从其它空闲RAID存储设备复制回数据条块和计算校验和条块,从而实现多个RAID存储设备间的负载分担。

    【附图说明】

    图1为现有RAID中的条带结构示意图;

    图2为现有源、目的端RAID之间数据复制过程的示意图;

    图3为本发明实施例中源、目的端RAID之间数据复制过程的示意图;

    图4为本发明实施例中源、目的端RAID之间数据复制过程的一特例示意图;

    图5为本发明实施例中针对源端RAID的控制方法流程示意图;

    图6为本发明实施例中针对目的端RAID的控制方法流程示意图;

    图7为本发明实施例所适用的一种存储网络结构示意图。

    【具体实施方式】

    为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明进一步详细说明。

    本实施例中,考虑到源端RAID和目的端RAID的阵列组成方式相同时,源端RAID和目的端RAID的同一条带内可以包含相同的数据条块,相应地,同一条带的校验和条块也可以相同,因此参见图3:

    源端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之间的数据复制,可能会涉及连续的多个条带,且对于起始条带和最后一个条带,可能只需复制其中的部分条块。

    这种情况下,参见图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反馈的阵列组成相同,如果是,则执行步骤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,否则执行步骤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的数据条块和校验和条块。

    以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换以及改进等,均应包含在本发明的保护范围之内。

实现磁盘冗余阵列之间数据复制的控制方法和装置.pdf_第1页
第1页 / 共25页
实现磁盘冗余阵列之间数据复制的控制方法和装置.pdf_第2页
第2页 / 共25页
实现磁盘冗余阵列之间数据复制的控制方法和装置.pdf_第3页
第3页 / 共25页
点击查看更多>>
资源描述

《实现磁盘冗余阵列之间数据复制的控制方法和装置.pdf》由会员分享,可在线阅读,更多相关《实现磁盘冗余阵列之间数据复制的控制方法和装置.pdf(25页珍藏版)》请在专利查询网上搜索。

本发明公开了一种实现磁盘冗余阵列(RAID)之间数据复制的控制方法、以及一种实现RAID之间数据复制的控制装置。本发明在源端RAID与目的端RAID的阵列组成相同时,由源端RAID以条带为单位复制各数据条块、并发送至目的端RAID以条带为单位缓存,待源RAID将对应的校验和条块复制并发送至目的端RAID后,目的端RAID无需进行校验和计算,即可同时将完整条带及其校验和条块写入至对应的磁盘中,从而减。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 信息存储


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1