CN101847081B - 初始化磁盘阵列系统的方法和电子装置及磁盘阵列系统 - Google Patents

初始化磁盘阵列系统的方法和电子装置及磁盘阵列系统 Download PDF

Info

Publication number
CN101847081B
CN101847081B CN2009101196348A CN200910119634A CN101847081B CN 101847081 B CN101847081 B CN 101847081B CN 2009101196348 A CN2009101196348 A CN 2009101196348A CN 200910119634 A CN200910119634 A CN 200910119634A CN 101847081 B CN101847081 B CN 101847081B
Authority
CN
China
Prior art keywords
hard disk
array system
group
xor
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.)
Active
Application number
CN2009101196348A
Other languages
English (en)
Other versions
CN101847081A (zh
Inventor
吴明升
林杰毅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wistron Corp
Original Assignee
Wistron Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Wistron Corp filed Critical Wistron Corp
Priority to CN2009101196348A priority Critical patent/CN101847081B/zh
Publication of CN101847081A publication Critical patent/CN101847081A/zh
Application granted granted Critical
Publication of CN101847081B publication Critical patent/CN101847081B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明涉及初始化磁盘阵列系统的方法和电子装置及磁盘阵列系统。具体地,本发明提供一种初始化一磁盘阵列系统的方法,该磁盘阵列系统包含多个硬盘,该方法包含有将该多个硬盘分成多个群组,每一群组对应于该多个硬盘中至少一硬盘;以及调整该多个群组的每一群组所包含的硬盘的数据,使每一群组的所有硬盘的数据的异或运算结果为一预设值。本发明利用异或运算的特有性质,在磁盘阵列系统的初始化过程中,以读取动作取代写入动作,以节省初始化过程所花费的时间。

Description

初始化磁盘阵列系统的方法和电子装置及磁盘阵列系统
技术领域
本发明涉及一种初始化一磁盘阵列系统的方法及相关初始化装置与磁盘阵列系统,尤其涉及一种以读取操作取代写入操作,以节省磁盘阵列初始化时间的方法及相关初始化装置与磁盘阵列系统。
背景技术
磁盘阵列(冗余独立磁盘阵列(Redundant Array of Independent Disks),RAID)系统是一种将多个硬盘组合起来的储存技术,其性能达到甚至超过一个价格昂贵、容量巨大的硬盘。由于磁盘阵列系统比单颗硬盘具有更高的数据整合度、容错功能及储存容量,因此,磁盘阵列系统常被用在服务器计算机上,并且常使用完全相同的硬盘作为组合。
磁盘阵列系统在使用前必须先进行初始化,以避免产生错误。请参考图1A,图1A为公知针对一层级为RAID-5的磁盘阵列系统10进行初始化的示意图。在硬件上,磁盘阵列系统10由硬盘100、102、104及106所组成。就数据储存而言,磁盘阵列系统10由分储带(stripe)s_1~s_n所构成,且每一分储带包含四个储块(chunk),如分储带s_1包含储块CNK1_1、CNK1_2、CNK1_3及CNK1_4。在分储带s_1~s_n中,部分储块用来储存奇偶校验(Parity Check)数据,以确保数据正确性,相关操作方式为业界所熟知。在对磁盘阵列系统10进行初始化时,最常见的方法是将磁盘阵列系统10中的所有储块写入“0”,亦即:
CNK1_1=CNK1_2=CNK1_3=CNK1_1=0
CNK2_1=CNK2_2=CNK2_3=CNK2_4=0
CNKn_1=CNKn_2=CNKn_3=CNKn_4=0
在此情形下,由于所有储块的数据皆为0,则每一分储带中各储块的异或(exclusive-OR,XOR)运算结果亦为0,即:
CNK1_1 XOR CNK1_2 XOR CNK1_3 XOR CNK1_4=0
CNK2_1 XOR CNK2_2 XOR CNK2_3 XOR CNK2_4=0
CNKn_1 XOR CNKn_2 XOR CNKn_3 XOR CNKn_4=0
如此一来,磁盘阵列系统10的储存数据皆被初始化为“0”。
除此之外,请参考图1B,图1B为针对磁盘阵列系统10的另一初始化方法的示意图。图1B的初始化方法是将任意一硬盘视为一新更换的硬盘,并对该硬盘执行一硬盘重建操作。举例来说,若将硬盘106视为新更换的硬盘,则针对分储带s_1而言,公知技术是先读取硬盘100、102及104中储块CNK1_1、CNK1_2及CNK1_3的数据,再对储块CNK1_1、CNK1_2及CNK1_3的数据执行异或运算,所得的运算结果最后写入硬盘106的储块CNK1_4。同理,硬盘106的其他分储带s_2~s_n亦被写入相对应的异或运算结果(未绘于图1B)。如此一来,分储带s_1~s_n所储存的数据的异或运算结果:
CNK1_1 XOR CNK1_2 XOR CNK1_3 XOR CNK1_4=CNK1_4 XOR CNK1_4=0
CNK2_1 XOR CNK2_2 XOR CNK2_3 XOR CNK2_4=CNK2_4 XOR CNK2_4=0
CNKn_1 XOR CNKn_2 XOR CNKn_3 XOR CNKn_4=CNKn_4 XOR CNKn_4=0
如此一来,磁盘阵列系统10的初始化便告完成。
由上述可知,以分储带s_1为例,图1A所示的初始化方法需耗费四次写入时间,而图1B所示的初始化方法需耗费三次读取时间、二次异或运算时间及一次写入时间。在此情形下,随着硬盘的容量越来越大,磁盘阵列系统所包含的分储带越来越多,造成初始化所耗费的时间亦随之增加。尤其是对图1B的初始化方法而言,重建硬盘106的过程需要执行大量的异或运算,而磁盘阵列系统10内建的一中央处理器的运算能力通常较差,使得磁盘阵列系统10的初始化往往耗费数十个小时。
因此,为了改善磁盘阵列系统10的生产效率,磁盘阵列系统10的初始化方法实有改进的必要。
发明内容
因此,本发明的主要目的即在于提供一种初始化一磁盘阵列系统的方法及相关初始化装置与磁盘阵列系统。
本发明公开一种初始化一磁盘阵列系统的方法,该磁盘阵列系统包含多个硬盘,该方法包含有将该多个硬盘分成多个群组,每一群组对应于该多个硬盘中至少一硬盘;以及调整该多个群组的每一群组所包含的硬盘的数据,使每一群组的所有硬盘的数据的异或运算结果为一预设值。
本发明还公开一种用来初始化一磁盘阵列系统的电子装置,该磁盘阵列系统包含多个硬盘,该电子装置包含有一群组设定单元,用来将该多个硬盘分成多个群组,每一群组对应于该多个硬盘中至少一硬盘;以及一数据更新单元,用来调整该多个群组的每一群组所包含的硬盘的数据,使每一群组的所有硬盘的数据的异或运算结果为一预设值。
本发明另公开一种磁盘阵列系统,包含有多个硬盘;一存储器模块;一磁盘控制装置,耦接于该多个硬盘及该存储器模块,用来驱动该多个硬盘,并将该多个硬盘的配置信息及暂存数据储存于该存储器模块;以及一初使化控制装置,设于该磁盘控制装置中,用来初始化该磁盘阵列系统,其包含有一群组设定单元,用来将该多个硬盘分成多个群组,每一群组对应于该多个硬盘中至少一硬盘;以及一数据更新单元,用来调整该多个群组的每一群组所包含的硬盘的数据,使每一群组的所有硬盘的数据的异或运算结果为一预设值。
本发明利用异或运算的特有性质,在磁盘阵列系统的初始化过程中,以读取动作取代写入动作,以节省初始化过程所花费的时间。
附图说明
图1A为公知的一磁盘阵列系统的一初始化方法示意图。
图1B为公知的磁盘阵列系统的另一初始化方法示意图。
图2为本发明实施例的一流程的示意图。
图3为本发明流程实施于图1A的磁盘阵列系统的示意图。
图4为本发明流程实施于图1A的磁盘阵列系统的变化示意图。
图5为本发明实施例的一初始化流程的示意图。
图6为本发明实施例的一磁盘阵列系统的示意图。
主要组件符号说明:
10、40、60                                           磁盘阵列系统
20                                                   流程
50                                                   初始化流程
200、202、204、206、500、502、504、506、508、510、   步骤
512、514、516
100、102、104、400、402、404、406、408、HD_1、       硬盘
HD_2、HD_n
600                                                  存储器模块
610                                                  磁盘控制装置
620                                                  初使化控制装置
622                                                  群组设定单元
624                                                  数据更新单元
CNK1_1、CNK1_2、CNK1_3、CNK1_4、CNK1_5、             储块
CNK2_1、CNK2_2、CNK2_3、CNK2_4、CNK2_5、
CNKn_1、CNKn_2、CNKn_3、CNKn_4、CNKn_5
G_1、G_2、G_3                                        群组
s_1~s_n                                             分储带
具体实施方式
请参考图2,图2为本发明实施例的一流程20的示意图。流程20用于初始化一磁盘阵列(冗余独立磁盘阵列(Redundant Arrays of Independent Disks),RAID)系统,磁盘阵列系统包含多个硬盘。流程20包含以下步骤:
步骤200:开始。
步骤202:将该多个硬盘分成多个群组,每一群组对应于至少一硬盘。
步骤204:调整每一群组所包含的硬盘的数据,使每一群组的所有硬盘的数据的异或(exclusive-OR,XOR)运算结果为一预设值。
步骤206:结束。
根据流程20,本发明先将磁盘阵列系统的所有硬盘分成数个群组,接着再调整每一群组中硬盘的数据,使得每一群组在经过异或运算后,其对应的运算结果等于预设值,较佳地为0。在此情形下,所有群组的异或运算结果亦为0,则可完成初始化的动作。
简单来说,本发明是调整每一群组的硬盘的数据,使每一群组的硬盘的异或运算为0,则所有群组的异或运算结果亦为0。如此一来,所有群组的硬盘其相同储存位置的数据(储块)的异或运算结果必为0,因而可完成磁盘阵列系统的初始化。
进一步地,针对步骤204,由于任一群组可能包含有一个或多个的硬盘,本发明分别针对这两种不同的情况,提供相对应的实施方法。对于包含有多个硬盘的一群组,当群组硬盘数为偶数时,本发明可将该群组的一硬盘的所有数据复制至其他硬盘,或者当群组硬盘数为奇数时,本发明可将该群组的一硬盘的所有数据清为零,然后任取一硬盘数据复制至其他硬盘,最终都可使得该群组的所有硬盘的数据的异或运算结果为“0”。举例来说,请参考图3,图3为根据本发明初始化图1A的磁盘阵列系统10的示意图。在磁盘阵列系统10的初始化过程中,本发明是将硬盘100、102、104、106分配为二个群组G_1、G_2。群组G_1包含有硬盘100及102,而群组G_2包含有硬盘104及106。接着,硬盘100的数据被复制至硬盘102,硬盘104的数据被复制至硬盘106。更具体的说,硬盘100上的储块CNK1_1、CNK2_1...CNKn_1的数据分别被复制至硬盘102上对应的储块CNK1_2、CNK2_2...CNKn_2,而硬盘104上的储块CNK1_3、CNK2_3...CNKn_3的数据分别被复制至硬盘106上对应的储块CNK1_4、CNK2_4...CNKn_4。如此一来,分储带s_1~s_n所储存的数据的异或运算结果为:
CNK1_1 XOR CNK1_2 XOR CNK1_3 XOR CNK1_4=(CNK1_1 XOR CNK1_1)XOR(CNK1_3 XOR CNK1_3)=0 XOR 0=0
CNK2_1 XOR CNK2_2 XOR CNK2_3 XOR CNK2_4=(CNK2_1 XOR CNK2_1)XOR(CNK2_3 XOR CNK2_3)=0 XOR 0=0
CNKn_1 XOR CNKn_2 XOR CNKn_3 XOR CNKn_4=(CNKn_1 XOR CNKn_1)XOR(CNKn_3 XOR CNKn_3)=0 XOR 0=0
如此一来,磁盘阵列系统10的初始化便告完成。
由上述可知,针对磁盘阵列系统10中任一分储带,本发明仅需耗费二次读取时间及二次写入时间,即可完成初始化动作。相同情形下,图1A的实施例需四次写入时间,而图1B的实施例需三次读取时间、二次异或运算时间及一次写入时间。由于磁盘阵列系统的写入时间大于读取时间,因此本发明可大幅地节省初始化过程所耗费的时间。
另一方面,对于仅包含有单一硬盘的一群组,本发明可将该群组的唯一硬盘的所有数据更新为“0”,使得该群组与其他群组的异或运算结果亦为“0”。举例来说,请参考图4,图4为根据本发明初始化一磁盘阵列系统40的示意图。磁盘阵列系统40包含有硬盘400、402、404、406及408。和图3的分类过程相似,硬盘400及402被分配至群组G_1;硬盘404及406被分配至群组G_2。至于硬盘408,则被独自分配至群组G_3。群组G_1及G_2中的数据调整方式可参考前述,在此不赘述。而群组G_3的硬盘408中的所有储块CNK1_5、CNK2_5...CNKn_5被写入“0”,亦即CNK1_5=CNK2_5=...=CNKn_5=0。如此一来,分储带s_1~s_n的数据的异或运算结果为:
CNK1_1 XOR CNK1_2 XOR CNK1_3 XOR CNK1_4 XOR CNK1_5=(CNK1_1 XORCNK1_1)XOR(CNK1_3 XOR CNK1_3)XOR 0=0
CNK2_1 XOR CNK2_2 XOR CNK2_3 XOR CNK2_4 XOR CNK2_5=(CNK2_1 XORCNK2_1)XOR(CNK2_3 XOR CNK2_3)XOR 0=0
CNKn_1 XOR CNKn_2 XOR CNKn_3 XOR CNKn_4 XOR CNKn_5=(CNKn_1 XORCNKn_1)XOR(CNKn_3 XOR CNKn_3)XOR 0=0
如此一来,磁盘阵列系统40的初始化便告完成。
在此需注意的是,图3及图4用以说明本发明的精神,实际上,本领域普通技术人员应当可据以作适当的修饰,以适用于不同的磁盘阵列系统,如RAID-1、RAID-5等磁盘阵列系统。
上述的初始化操作可进一步归纳为一初始化流程50,如图5所示。初始化流程50包含以下步骤:
步骤500:开始。
步骤502:将硬盘HD_1~HD_n分成群组G_1~G_m;其中,n大于m,且每一群组至少包含一硬盘。
步骤504:设定一群组G_x为一待初始化群组G_cur。
步骤506:判断待初始化群组G_cur所包含的硬盘数是否大于1。若是,则进行至步骤508;若否,则进行至步骤510。
步骤508:将待初始化群组G_cur中一硬盘的数据复制至待初始化群组G_cur中的其他硬盘,并进行至步骤512。
步骤510:将待初始化群组G_cur中唯一硬盘的所有数据更新为“0”。
步骤512:判断全部的群组G_1~G_m是否皆已完成初始化。若是,则进行至步骤516;若否,则进行至步骤514。
步骤514:将群组G_x的下一群组G_x+1设定为待初始化群组G_cur。
步骤516:结束。
初始化流程50系用以说明流程20的具体操作方式,详细内容可参考前述,在此不赘述。
关于流程20的实现方式,请参考图6,图6为本发明实施例的一磁盘阵列系统60的示意图。磁盘阵列系统60包含有硬盘HD_1~HD_n、一存储器模块600、一磁盘控制装置610及一初使化控制装置620。磁盘控制装置610用来驱动硬盘HD_1~HD_n,并将硬盘HD_1~HD_n的配置信息及暂存数据储存于存储器模块600。初使化控制装置620用来初始化磁盘阵列系统60,其包含有一群组设定单元622及一数据更新单元624。群组设定单元622用来将硬盘HD_1~HD_n分成m个群组,n>m,且每一群组包含至少一硬盘。数据更新单元624用来调整每一群组所包含的硬盘的数据,使每一群组的所有硬盘的数据的异或运算结果为一预设值。
图6的磁盘阵列系统60系用来实现流程20,相关变化方式可以参考前述说明,在此不赘述。
比较图1A、图1B及图3可知,以分储带s_1的异或运算为例,图1A所示的公知初始化方法需耗费四次写入时间,图1B所示的公知初始化方法需耗费三次读取时间、二次异或运算时间及一次写入时间,而图3所示的本发明初始化方法仅需耗费二次读取时间及二次写入时间。同时,由于磁盘阵列的写入时间大于读取时间,因此本发明的初始化方法可大幅地节省初始化过程所耗费的时间。换言之,本发明使用读取动作取代写入动作,以节省初始化过程所花费的时间。
综上所述,本发明利用异或运算的特有性质,在磁盘阵列系统的初始化过程中,以读取动作取代写入动作,以节省初始化过程所花费的时间。
以上所述仅为本发明的较佳实施例,凡是依本发明权利要求书范围所作的等同变化与修饰,皆应属本发明的涵盖范围。

Claims (8)

1.一种初始化一磁盘阵列系统的方法,所述磁盘阵列系统包括多个硬盘,所述方法包括:
将所述多个硬盘分成多个群组,每一群组对应于所述多个硬盘中至少一硬盘;以及
调整所述多个群组的每一群组所包括的硬盘的数据,使每一群组的所有硬盘的数据的异或运算结果为一预设值;
其中,所述预设值为0;并且
其中,调整所述多个群组的每一群组所包括的硬盘的数据,使每一群组的所有硬盘的数据的异或运算结果为所述预设值的步骤,是在所述多个群组的一群组包括一第一硬盘及一第二硬盘时,将所述第一硬盘的数据复制至所述第二硬盘,以使所述群组的所述第一硬盘及所述第二硬盘的数据的异或运算结果为所述预设值。
2.如权利要求1所述的方法,其中调整所述多个群组的每一群组所包括的硬盘的数据,使每一群组的所有硬盘的数据的异或运算结果为所述预设值的步骤,是在所述多个群组的一群组仅包括一硬盘时,将所述硬盘的所有数据更新为0,以使所述群组的所述硬盘的数据的异或运算结果为所述预设值。
3.如权利要求1所述的方法,其中所述磁盘阵列系统为一层级为RAID-5的磁盘阵列系统。
4.如权利要求1所述的方法,其中所述磁盘阵列系统为一层级为RAID-1的磁盘阵列系统。
5.一种用来初始化一磁盘阵列系统的电子装置,所述磁盘阵列系统包括多个硬盘,所述电子装置包括:
一群组设定单元,用来将所述多个硬盘分成多个群组,每一群组对应于所述多个硬盘中至少一硬盘;以及
一数据更新单元,用来调整所述多个群组的每一群组所包括的硬盘的数据,使每一群组的所有硬盘的数据的异或运算结果为一预设值;
其中,所述预设值为0;并且
其中,所述数据更新单元用来在所述多个群组的一群组包括一第一硬盘及一第二硬盘时,将所述第一硬盘的数据复制至所述第二硬盘,以使所述群组的所述第一硬盘及所述第二硬盘的数据的异或运算结果为所述预设值。
6.如权利要求5所述的电子装置,其中所述数据更新单元用来在所述多个群组的一群组仅包括一硬盘时,将所述硬盘的所有数据更新为0,以使所述群组的所述硬盘的数据的异或运算结果为所述预设值。
7.如权利要求5所述的电子装置,其中所述磁盘阵列系统为一层级为RAID-5的磁盘阵列系统。
8.如权利要求5所述的电子装置,其中所述磁盘阵列系统为一层级为RAID-1的磁盘阵列系统。
CN2009101196348A 2009-03-24 2009-03-24 初始化磁盘阵列系统的方法和电子装置及磁盘阵列系统 Active CN101847081B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2009101196348A CN101847081B (zh) 2009-03-24 2009-03-24 初始化磁盘阵列系统的方法和电子装置及磁盘阵列系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2009101196348A CN101847081B (zh) 2009-03-24 2009-03-24 初始化磁盘阵列系统的方法和电子装置及磁盘阵列系统

Publications (2)

Publication Number Publication Date
CN101847081A CN101847081A (zh) 2010-09-29
CN101847081B true CN101847081B (zh) 2012-02-08

Family

ID=42771709

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009101196348A Active CN101847081B (zh) 2009-03-24 2009-03-24 初始化磁盘阵列系统的方法和电子装置及磁盘阵列系统

Country Status (1)

Country Link
CN (1) CN101847081B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103645862B (zh) * 2013-12-12 2016-05-18 北京同有飞骥科技股份有限公司 一种磁盘阵列初始化性能提升方法
CN110647479B (zh) * 2019-09-03 2020-11-10 宜鼎国际股份有限公司 双信道数据储存系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1591308A (zh) * 2003-10-07 2005-03-09 普安科技股份有限公司 在线磁盘阵列一致性初始化方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1591308A (zh) * 2003-10-07 2005-03-09 普安科技股份有限公司 在线磁盘阵列一致性初始化方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
谭志虎,谢长生,万继光.RAID一致性初始化方法研究.《小型微型计算机系统》.2008,第29卷(第7期),1204-1207. *

Also Published As

Publication number Publication date
CN101847081A (zh) 2010-09-29

Similar Documents

Publication Publication Date Title
US8103825B2 (en) System and method for providing performance-enhanced rebuild of a solid-state drive (SSD) in a solid-state drive hard disk drive (SSD HDD) redundant array of inexpensive disks 1 (RAID 1) pair
CN102880428B (zh) 分布式独立磁盘冗余阵列的创建方法及装置
CN102023815B (zh) 在固态存储器中实现raid
CN102799533B (zh) 一种磁盘损坏扇区屏蔽方法及装置
CN104503706B (zh) 一种基于磁盘阵列的数据存储及读取方法
US7673167B2 (en) RAID array data member copy offload in high density packaging
US20090327603A1 (en) System including solid state drives paired with hard disk drives in a RAID 1 configuration and a method for providing/implementing said system
WO2013160972A1 (en) Storage system and storage apparatus
CN105531677A (zh) Raid奇偶校验条带重建
CN103019617A (zh) 高效实现ssd内部raid的构建方法、数据读写方法及装置
US10467074B2 (en) Conditional journal for storage class memory devices
KR20110087272A (ko) 볼륨 조각 할당 방법, 볼륨 조각 할당 시스템 및 raid
US20190272215A1 (en) System and method for supporting data protection across fpga ssds
US11256447B1 (en) Multi-BCRC raid protection for CKD
JP2013125513A (ja) 不揮発性半導体記憶装置及びその管理方法
CN102789370B (zh) 一种raid阵列同步方法及装置
CN103544995A (zh) 一种坏道修复方法及装置
CN115344205A (zh) 一种针对磁盘固件升级过程中的读写数据方法及计算设备
US20170371782A1 (en) Virtual storage
CN101847081B (zh) 初始化磁盘阵列系统的方法和电子装置及磁盘阵列系统
US20130117506A1 (en) Integrated circuit device, data storage array system and method therefor
US10007432B2 (en) System and method for replacing storage devices
CN101788935A (zh) 冗余磁盘数组系统的坏块处理方法
US11609855B2 (en) Bit masking valid sectors for write-back coalescing
JP2012518231A (ja) 複数のディスクアレイのi/o動作を実行する方法及びシステム

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