CN101625880A - 实现磁盘冗余阵列之间数据复制的控制方法和装置 - Google Patents
实现磁盘冗余阵列之间数据复制的控制方法和装置 Download PDFInfo
- Publication number
- CN101625880A CN101625880A CN200910091267A CN200910091267A CN101625880A CN 101625880 A CN101625880 A CN 101625880A CN 200910091267 A CN200910091267 A CN 200910091267A CN 200910091267 A CN200910091267 A CN 200910091267A CN 101625880 A CN101625880 A CN 101625880A
- Authority
- CN
- China
- Prior art keywords
- raid
- stick
- band
- destination
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种实现磁盘冗余阵列(RAID)之间数据复制的控制方法、以及一种实现RAID之间数据复制的控制装置。本发明在源端RAID与目的端RAID的阵列组成相同时,由源端RAID以条带为单位复制各数据条块、并发送至目的端RAID以条带为单位缓存,待源RAID将对应的校验和条块复制并发送至目的端RAID后,目的端RAID无需进行校验和计算,即可同时将完整条带及其校验和条块写入至对应的磁盘中,从而减轻了目的端RAID的计算压力、保证目的端RAID本地的正常写操作不受影响。而且,本发明的技术方案还适用于包含多个RAID存储设备的存储网络中的负载分担。
Description
技术领域
本发明涉及磁盘冗余阵列(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的数据条块和校验和条块。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换以及改进等,均应包含在本发明的保护范围之内。
Claims (14)
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存储设备复制的同一条带的全部数据条块、以及校验和条块分别写入至对应的磁盘。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100912675A CN101625880B (zh) | 2009-08-14 | 2009-08-14 | 实现磁盘冗余阵列之间数据复制的控制方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100912675A CN101625880B (zh) | 2009-08-14 | 2009-08-14 | 实现磁盘冗余阵列之间数据复制的控制方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101625880A true CN101625880A (zh) | 2010-01-13 |
CN101625880B CN101625880B (zh) | 2011-07-20 |
Family
ID=41521689
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009100912675A Expired - Fee Related CN101625880B (zh) | 2009-08-14 | 2009-08-14 | 实现磁盘冗余阵列之间数据复制的控制方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101625880B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101727299B (zh) * | 2010-02-08 | 2011-06-29 | 北京同有飞骥科技股份有限公司 | 连续数据存储中面向raid5的写操作优化设计方法 |
CN102722340A (zh) * | 2012-04-27 | 2012-10-10 | 华为技术有限公司 | 数据处理方法、装置及系统 |
WO2014067452A1 (zh) * | 2012-11-05 | 2014-05-08 | 腾讯科技(深圳)有限公司 | 一种多层关联存储架构的数据同步方法、数据同步系统及存储介质 |
CN111708742A (zh) * | 2020-05-24 | 2020-09-25 | 苏州浪潮智能科技有限公司 | 一种分布式文件系统的输入输出预读方法和装置 |
CN113760186A (zh) * | 2019-07-30 | 2021-12-07 | 华为技术有限公司 | 数据存储方法、装置、计算设备、存储系统及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7085953B1 (en) * | 2002-11-01 | 2006-08-01 | International Business Machines Corporation | Method and means for tolerating multiple dependent or arbitrary double disk failures in a disk array |
CN101387975B (zh) * | 2008-10-20 | 2010-09-15 | 中科院成都信息技术有限公司 | 一种磁盘阵列系统 |
-
2009
- 2009-08-14 CN CN2009100912675A patent/CN101625880B/zh not_active Expired - Fee Related
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101727299B (zh) * | 2010-02-08 | 2011-06-29 | 北京同有飞骥科技股份有限公司 | 连续数据存储中面向raid5的写操作优化设计方法 |
CN102722340A (zh) * | 2012-04-27 | 2012-10-10 | 华为技术有限公司 | 数据处理方法、装置及系统 |
WO2014067452A1 (zh) * | 2012-11-05 | 2014-05-08 | 腾讯科技(深圳)有限公司 | 一种多层关联存储架构的数据同步方法、数据同步系统及存储介质 |
US9753939B2 (en) | 2012-11-05 | 2017-09-05 | Tencent Technology (Shenzhen) Company Limited | Data synchronization method and data synchronization system for multi-level associative storage architecture, and storage medium |
CN113760186A (zh) * | 2019-07-30 | 2021-12-07 | 华为技术有限公司 | 数据存储方法、装置、计算设备、存储系统及存储介质 |
CN111708742A (zh) * | 2020-05-24 | 2020-09-25 | 苏州浪潮智能科技有限公司 | 一种分布式文件系统的输入输出预读方法和装置 |
CN111708742B (zh) * | 2020-05-24 | 2022-11-29 | 苏州浪潮智能科技有限公司 | 一种分布式文件系统的输入输出预读方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN101625880B (zh) | 2011-07-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9170899B2 (en) | Reliability scheme using hybrid SSD/HDD replication with log structured management | |
CN101291347B (zh) | 一种网络存储系统 | |
CN100593775C (zh) | 具有多个存储系统的数据处理系统 | |
CN101625880B (zh) | 实现磁盘冗余阵列之间数据复制的控制方法和装置 | |
JP5256149B2 (ja) | Hdd障害からの高速データ回復 | |
CN102449607B (zh) | 具有多个闪存封装的存储系统 | |
US7975168B2 (en) | Storage system executing parallel correction write | |
JP3705731B2 (ja) | 入出力制御装置 | |
US8453011B2 (en) | Storage system and data restoration method thereof | |
CN101617295B (zh) | 集群对中的子系统控制器及集群操作方法 | |
US9251059B2 (en) | Storage system employing MRAM and redundant array of solid state disk | |
US8615678B1 (en) | Auto-adapting multi-tier cache | |
CN102053802B (zh) | 网络独立冗余磁盘阵列系统 | |
CN110750382A (zh) | 用于提高数据修复性能的最小存储再生码编码方法及系统 | |
CN105630423A (zh) | 一种基于数据缓存的纠删码集群存储扩容方法 | |
US20090313617A1 (en) | Method for Updating Control Program of Physical Storage Device in Storage Virtualization System and Storage Virtualization Controller and System Thereof | |
CN102520890B (zh) | 基于gpu的rs-draid系统及存储设备数据控制方法 | |
US20090327801A1 (en) | Disk array system, disk controller, and method for performing rebuild process | |
CN103761058A (zh) | Raid1和raid4混合结构网络存储系统及方法 | |
CN115617742B (zh) | 一种数据缓存的方法、系统、设备和存储介质 | |
CN103019893A (zh) | 一种多盘容错的二维混合盘raid4系统架构及其读写方法 | |
CN106527971A (zh) | 一种提升ssd在垃圾回收器件期间读性能的方法 | |
CN101533336B (zh) | 磁盘冗余阵列存储系统和方法 | |
US20040250022A1 (en) | Resynchronization of count key data with its corresponding meta data | |
CN103034559A (zh) | 基于rdma架构设计的pq检验模块及检验方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Patentee after: Xinhua three Technology Co., Ltd. Address before: 310053 Hangzhou hi tech Industrial Development Zone, Zhejiang province science and Technology Industrial Park, No. 310 and No. six road, HUAWEI, Hangzhou production base Patentee before: Huasan Communication Technology Co., Ltd. |
|
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110720 Termination date: 20200814 |