CN101566924A - 一种磁盘阵列的数据读写方法 - Google Patents
一种磁盘阵列的数据读写方法 Download PDFInfo
- Publication number
- CN101566924A CN101566924A CNA2008100670046A CN200810067004A CN101566924A CN 101566924 A CN101566924 A CN 101566924A CN A2008100670046 A CNA2008100670046 A CN A2008100670046A CN 200810067004 A CN200810067004 A CN 200810067004A CN 101566924 A CN101566924 A CN 101566924A
- Authority
- CN
- China
- Prior art keywords
- write
- disk
- band
- check block
- disk band
- 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
- Signal Processing For Digital Recording And Reproducing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种磁盘阵列的数据读写方法,其包括以下步骤:内存分配多个条带结构,创建一个磁盘条带状态位图,以记录全部磁盘条带的状态属性;初始化所述磁盘条带状态位图;接收用户读写请求,并更新所述磁盘条带状态位图;执行用户的读写请求,如果是写请求,则执行写目标数据块并根据所述目标数据块所在磁盘条带的状态属性执行更新校验块或者延迟执行更新校验块,如果是读请求,则执行一读请求处理流程。本发明的磁盘阵列的数据读写方法,采用磁盘条带状态位图自适应检测其被写操作频度,对于写操作频率高的磁盘条带,延迟更新检验块,加快所述磁盘阵列的读写处理效率。
Description
技术领域
本发明涉及计算机存储领域,尤其涉及该领域内的独立冗余磁盘阵列的数据读写方法。
背景技术
随着信息技术的飞速发展,各种行业应用都对信息的存储提出了更高的要求,这些要求主要包括存储***的速度、容量、可靠性、可用性和安全性等方面,传统的存储***已经无法满足。
RAID(Redundant Array of Independent Disk,独立冗余磁盘阵列)是一种由多块独立磁盘构成的,能提高读写性能并具备容错能力的存储***。RAID实现了多个磁盘并行读写的功能,将用户的数据拆分成多个数据块并行写入多个磁盘。读取数据时先从多个磁盘并行读出数据块再组合成用户需要的数据,使得存储***的带宽由多个磁盘的带宽叠加而成,大大提高了存储***的访问速度。RAID的容错能力是通过冗余方式实现的,所述冗余的方式有磁盘镜像和设置校验等。除了用户需要的数据以外,RAID中还存储了大量的冗余数据,通过所述容错方法保证磁盘在出现错误的情况下可以恢复数据。
RAID按照实现存储的原理不同分为不同的级别,常见的具备容错能力的RAID级别有RAID1,RAID5,RAID10等。请参阅图1,为现有技术中的由四块磁盘构成的一个RAID5级磁盘阵列的数据分布示意图,将所述四块磁盘命名为磁盘1、磁盘2、磁盘3和磁盘4,每个磁盘分成N个数据块,所述四个磁盘分别贡献出一个数据块构成一个磁盘条带(StripeD)为该磁盘阵列的一行,可以理解,该RAID5具有N个磁盘条带,每个磁盘条带具有一个校验块,其用于存放一个校验值,所述校验值由该磁盘条带的另外三个数据块进行异或计算而得。
具体地说,来自磁盘1的数据块0、来自磁盘2的数据块1、来自磁盘3的数据块2以及来自磁盘4的校验块P1构成一个磁盘条带1(StripeD1),依次类推,构成StripeD2、StripeD3.........StripeDN。
对所述磁盘阵列执行写操作时,用户数据被拆分成若干个数据块,对应写入所述N个磁盘条带中的数据块内,其校验块P1的数据由数据块0异或数据块1,接着异或数据块2计算得到并写入校验块P1内。
因此,可以理解的是,当其中一个磁盘出错,都可以由其他磁盘通过异或计算从而恢复其上的数据,例如,如果磁盘2出错,那么磁盘2上的数据块1的数据可以由数据块0、数据块2和校验块P1异或计算得到,数据块4的数据可以由数据块3、校验块P2和数据块5异或计算得到,以此类推,磁盘2的数据都可以恢复。
很明显,每一次对磁盘阵列上的一个数据块进行写操作,都要进行一个对其他相关数据块的读操作和一次异或计算以更新校验块的值,例如,在完成对数据块0的写操作时,除了写数据块0以外,还需要另外完成数据块1的读操作,数据块2的读操作,以及校验块P1的重新计算和写操作。此时,如果用户再请求写数据块1和数据块2,那么还需要完成数据块0的读操作,校验块P1的重新计算和写操作。具体请参阅图2,为图1的磁盘阵列处理用户读写请求的时序图,可见,每一次对其中一个数据块的写操作(写0、写01、写012或者写2操作)都必须完成一个写时间和一个校验块的计算写入时间。因此,为了保证磁盘阵列的容错能力,需要花费大量的时间读取同一磁盘条带中的其他数据块到内存中分配的条带结构,并重新计算和写入校验块。这些读操作和异或计算大大增加了磁盘阵列的负担,尤其在用户写请求频繁的情况下,校验块内数据的反复更新会大大增加磁盘阵列的开销,降低***的读写性能,严重影响磁盘阵列对用户的响应。
中国专利CN101055512A提出一种磁盘阵列的数据存取方法,具体为:建立一个写记录表,该写记录表中的每一项对应所述磁盘阵列的一个磁盘条带;触发一个对该写记录表的定时和扫描任务。***每次进行数据的写操作时都要更新该写记录表中写操作所对应的磁盘条带的记录位。所述定时的动作结束时,所述扫描任务启动,如果发现所述记录位为更新标识,表示对应磁盘条带的数据已经更新,校验值则已经失效。读取所述有更新标识的记录位所对应的磁盘条带的全部数据块,并根据这些数据块来计算校验值,最后将校验值写入磁盘的校验块并更新记录位。重复上述步骤至所有的记录位处理完毕,再重新启动定时。由于该方法将对目标数据块的写操作和对校验块的更新操作采用一个定时和扫描任务分开来,每次执行写操作都仅仅更新目标数据块,并不更新对应的校验块,而是在所述定时的时间之后再进行校验块的更新动作。
该中国专利的技术存在以下不足:首先,***每次执行写操作时应该进行的校验数据更新都被延后在所述定时时间之后,即分布在磁盘各个位置的磁盘条带都有可能未更新校验块,整个条带的数据处于不一致状态。如果在条带的校验块更新之前磁盘出现错误,也即是在该定时时间内磁盘出现错误,则磁盘条带的数据将无法恢复,因此,***的容错能力得不到充分保证,数据丢失的风险较大。其次,写记录表的项数取决于磁盘容量,在磁盘容量较大的情况下,每次对写记录表的扫描均会消耗大量处理器时间,因此,所述写记录表的扫描开销较大,加重***负担。该专利提出的方法,一个记录位对应多个条带,却会造成不必要的校验块更新,无法降低开销。
又有美国专利6,282,671“Method and system for improved efficiency ofparity calculation in RAID system”提出根据写操作对磁盘条带的覆盖情况来选择计算校验块的方法。校验块可以通过目标数据块的新数据(new datavalue)和条带中其他数据块的旧数据(all other old data within the associateddata stripe)的异或计算得到,或者通过目标数据块的新数据(new data value)、目标数据块的旧数据(old data value)和旧校验块(old parity value)的异或计算得到,校验块的计算选择上述两种计算方法中进行读写次数最少(the leastnumber of input/output operations)的一种。该美国专利提供的方法通过减少在计算校验块时***进行读操作的次数,因此在一定程度上减少了计算校验块数据的时间,但是其写校验块的时间仍然较长,尤其在写操作频繁的情况下,校验块反复更新的开销仍然很高。
可见,现有技术还存在缺陷,有待于改进和发展。
发明内容
本发明的目的在于,提供一种磁盘阵列的自适应延迟校验方法,在充分保证磁盘阵列的容错能力的同时,加快写操作的处理速度,有效降低更新校验块的开销,提高磁盘阵列***的读写性能。
为解决上述技术问题,本发明的技术方案如下:
一种磁盘阵列的数据读写方法,所述磁盘阵列的每个磁盘条带具有一个状态属性,所述状态属性为写操作频繁状态、写操作不频繁状态或者延迟更新校验块状态,所述磁盘阵列的数据读写方法包括以下步骤:
A、内存分配多个条带结构,创建一个磁盘条带状态位图,以记录全部磁盘条带的状态属性;初始化所述磁盘条带状态位图;
B、接收用户读写请求,并更新所述磁盘条带状态位图上的目标磁盘条带的状态属性;
C、执行用户的读写请求,如果是写请求,则执行写目标磁盘条带并根据目标磁盘条带的状态属性执行更新校验块或者延迟更新校验块,如果是读请求,则执行一读请求处理流程。
所述的磁盘阵列的数据读写方法,其中,所述步骤C中,如果是写请求,则在执行所述写目标磁盘条带的同时检查其状态属性是否为写操作不频繁状态,如果是则选择执行所述更新校验块,如果不是则选择执行所述延迟更新校验块。
所述的磁盘阵列的数据读写方法,其中,所述步骤A中,所述初始化磁盘条带状态位图为将其上记录的每个磁盘条带的状态初始化为写操作不频繁状态。
所述的磁盘阵列的数据读写方法,其中,所述磁盘条带的状态属性以一个标记值记录在所述磁盘条带状态位图上,所述标记值为2位二进制值,所述写操作频繁状态、写操作不频繁状态或者延迟更新校验块状态的标记值不同。
所述的磁盘阵列的数据读写方法,其中,所述步骤C中,所述读请求处理流程包括以下步骤:
将目标数据块读入对应条带结构的数据缓冲区;
判断所述对应的条带结构的所有数据缓冲区是否完全更新,如果是,则执行步骤A5;
所述步骤A5为:检查目标磁盘条带的状态属性是否为延迟更新校验块状态,如果是,则更新目标磁盘条带的校验块并更新所述目标磁盘条带的状态属性为写操作不频繁状态。
所述的磁盘阵列的数据读写方法,其中,在执行步骤A中,在所述初始化每个磁盘条带的状态属性之前执行一个步骤D,所述步骤D为:检查所述磁盘条带状态位图是否记录有延迟状态,如果有则更新其相应磁盘条带的校验块。
所述的磁盘阵列的数据读写方法,其中,步骤A中,所述条带结构具有一个写计数属性,其由一个写计数属性维护线程维护,设定所述计数属性维护线程一个计数周期,并设定一个阈值,初始化所述磁盘条带状态位图的同时对每个条带结构的写计数属性清0,并开始一个计数周期;步骤B中,接收用户读写请求,每接收一个写请求则所述写计数属性维护线程对所述目标磁盘条带所对应条带结构的写计数属性加1,在所述计数周期结束时,所述条带结构的写计数属性大于所述阈值,则更新其对应的目标磁盘条带的状态属性为所述写操作频繁状态,所述写计数属性小于或者等于所述阈值,则更新其对应的目标磁盘条带的状态属性为写操作不频繁状态。
所述的磁盘阵列的数据读写方法,其中,所述更新校验块的步骤为读取目标磁盘条带的数据块并依次进行异或计算,将所述异或计算的结果写入所述校验块。
所述的磁盘阵列的数据读写方法,其中,所述步骤C中,所述执行延迟更新校验块包括以下步骤:
判断所述目标磁盘条带的状态属性为写操作频繁状态还是延迟更新校验块状态,如果是写操作频繁状态,则执行步骤A3,如果是延迟更新校验块状态,则执行步骤B3;
所述步骤A3为更新所述目标磁盘条带的状态属性为延迟更新校验块状态,并开始计时一个延迟时间,在所述延迟时间内,延迟更新校验块;
所述步骤B3为:判断所述延迟时间是否结束,如果是,则执行更新校验块并将目标磁盘条带的状态属性更新为写操作不频繁状态。
所述的磁盘阵列的数据读写方法,其中,所述目标磁盘条带的状态属性由一个状态访问线程访问所述磁盘条带位图获得,所述写计数属性维护线程与状态访问线程互斥。
本发明提供了一种磁盘阵列的自适应延迟校验方法,动态地检测并记录磁盘阵列中的写操作频率高的磁盘条带,并延迟处理处于所述写操作频率高的磁盘条带的校验块更新。在保证***容错功能的前提下,本发明有效减少了写操作频繁的情况下校验块的更新次数即校验数据的计算和写入的次数,大大提高***的读写处理速度,加快对用户读写请求的响应,显著改善磁盘阵列的读写性能。
附图说明
图1是现有技术中的一种RAID***的磁盘结构示意图;
图2是现有技术中的RAID***处理用户的读写请求的时序图;
图3是本发明第一实施例提供的一种磁盘阵列数据分布及其磁盘条带状态位图的示意图;
图4是本发明第一实施例提供的磁盘阵列的数据读写方法的流程图;
图5是本发明第一实施例提供的磁盘阵列的数据读写方法中的延迟校验处理的流程图;
图6是本发明第一实施例提供的磁盘阵列的数据读写方法中的读请求处理的流程图;
图7是采用本发明第一实施例提供的磁盘阵列的数据读写方法处理读写请求的时序图;
具体实施方式
下面结合附图和具体实施方式对本发明进行详细说明。
请参阅图3,为本发明第一实施例提供的一种由四块磁盘组成的一种RAID5级磁盘阵列以及为所述磁盘阵列创建的一个磁盘条带状态为图,所述四块磁盘分别为磁盘1、磁盘2、磁盘3以及磁盘4。所述磁盘阵列的数据块按照左旋不对称方式分布。
每个磁盘被划分为N个数据块,所述四个磁盘分别贡献出一个数据块构成该磁盘阵列中的一个磁盘条带(StripeD),每个磁盘条带为所述磁盘阵列的一个行,可以理解所述磁盘阵列有N个磁盘条带,来自磁盘1的一个数据块0、来自磁盘2的数据决1、来自磁盘3的数据块2以及来自磁盘4的校验块P1构成一个磁盘条带1(StripeD1),依次类推,构成StripeD2、StripeD3.........StripeDN。
所述磁盘阵列的每个磁盘条带具有一个状态属性,所述状态属性为写操作频繁状态、写操作不频繁状态或者延迟更新校验块状态。所述延迟更新校验块状态即是目标数据块处于被写中,而校验块未更新,校验块更新操作被延迟至一延迟时间之后进行。
定义所述磁盘条带处于写操作频繁状态为热点状态;定义所述磁盘条带处于写操作不频繁状态为冰点状态;定义所述磁盘条带处于延迟更新检验块的状态为延迟状态。
优选地,在本实施例中,预先设定一个阈值,在一个计数周期内,目标磁盘条带被执行写操作次数大于所述阈值时,标记该目标磁盘条带处于热点状态;目标磁盘条带写操作次数小于或者等于该阈值时,标记该目标磁盘条带处于冰点状态。
请参阅表1,优选地,本实施例提供的所述热点状态、冰点状态以及延迟状态分别对应的标记值按照表1的对应关系。优选地,本实施例的所述磁盘条带状态标记值采用2bit(位)。
表1
磁盘条带状态标记值 | 磁盘条带状态 |
00 | 冰点状态 |
01 | 热点状态 |
11 | 延迟状态 |
因此,可以理解的是,对于本实施例的磁盘阵列,StripeD1、StripeD3和StripeD5对应的状态位图标记为00,表示在目前的一个计数周期内,StripeD1、StripeD3和StripeD5这些磁盘条带作为目标的写请求较少,即其处于冰点状态;
StripeD2的状态位图为01,表示在该计数周期内,已接收到较多针对StripeD2的写请求,此时StripeD2校验块的内容需要频繁更新,但是这些更新目前并未延迟处理,磁盘条带处于热点状态;StripeD4的状态位图为11,表示***判定针对StripeD4的写请求十分密集,处理写请求时对StripeD4的校验块更新做出延迟处理来提升性能,磁盘条带处于延迟状态。
当然,所述磁盘条带状态标记值不限于所述2bit格式,其只要能够区分所述三种磁盘条带状态且可以适合计算机存储及辨识的值的形式都可以。
当然,所述三种磁盘条带状态与标记值“00、01、11”的对应关系不限于表1给出的对应关系,还可以为冰点状态对应“01”、热点状态对应“00”以及延迟状态对应“11”的对应关系等。
在实际情况中,由于写请求通常具备连续性,则磁盘阵列中的多个相邻磁盘条带的状态位图标记相同。
在本实施例中,预先创建所述磁盘条带状态位图,所述磁盘条带状态位图具有N个状态块,分别对应所述N个磁盘条带,记录所述N个磁盘条带的状态值,以标记其处于写操作频繁状态、写操作不频繁状态或者是延迟更新校验块状态。
优选地,在本实施例中,内存中每个条带结构具有一个写计数属性,***分配一个写计数属性维护线程以维护所述写计数属性。具体地,***每接收一个写请求,所述写计数维护线程对所述写计数属性加1,所述写计数维护线程采用定时机制,即设定一个计数周期,在所述一个计数周期内,所述写技术维护线程扫描该内存中正在使用(或者称为被激活)的条带结构的写计数属性,判断其是否超过一个阈值,如果超过所述阈值,则将其对应的磁盘条带对应的状态块更新为热点状态值;否则将其更新为冰点状态值,如果所述状态块的位图标记为延迟状态,则不进行更新。
上述判断完毕,将所述写计数属性清0,所有被激活的条带结构扫描完成之后进入下一个周期。
下面结合图4详细说明本发明第一实施例提供的磁盘阵列的数据读写方法。
图4为本发明第一实施例的磁盘阵列的数据读写方法流程图,包括步骤一、步骤二和步骤三:
步骤一内存分配多个条带结构,创建所述磁盘条带状态位图,以记录所述磁盘条带的状态属性;初始化所述磁盘条带状态位图;
本领域的技术人员可以理解,内存分配出多个条带结构(Stripe)。激活其中一个条带结构用于对应所述磁盘阵列的一个目标磁盘条带StripeD,所述目标磁盘条带即为被请求读操作或者写操作的目标磁磁盘条带。所述StripeD和Stripe中的数据块大小是相同的。所述内存的条带结构的数目远远低于所述磁盘阵列中的磁盘条带的数目,内存的条带结构只分配给被用户请求到的StripeD即目标磁盘阵列,所述分配出的对应目标磁盘条带的条带结构称为被激活的条带结构。
所述初始化所述磁盘条带状态位图,具体为,将其上记录的每个磁盘条带的状态值初始化为所述冰点状态。
设定所述计数属性维护线程的计数周期,并设定所述阈值,初始化所述磁盘条带状态位图的同时对每个条带结构的写计数属性清0,并开始所述计数周期;
步骤二接收读写请求,并更新所述磁盘条带状态位图。
本实施例中,在接收读写请求时执行一个写计数以更新所述磁盘条带状态位图,所述执行写计数为:每接收一个写请求,所述写计数属性维护线程对目标磁盘条带对应的条带结构的写计数属性加1,并根据所述执行写计数的结果更新所述磁盘条带状态位图。
具体地,在所述计数周期内,所述写计数属性大于所述阈值,更新所述磁盘条带的状态属性为所述热点状态,所述写计数属性小于或者等于所述阈值,所述磁盘条带的状态属性保持为冰点状态。
步骤三执行用户的读写请求,如果是写请求,则进入一个写请求处理流程,如果是读请求,则进入一读请求处理流程。
所述写请求处理流程包括以下步骤:判断目标磁盘条带的状态属性是否为冰点状态,如果是,则写入目标数据块并更新校验块,然后将目标磁盘条带的状态位图更新为冰点状态“00”,如果否,则写入目标数据块,然后进入一个校验延迟处理流程。
所述写请求处理流程中的更新校验块的步骤为:读取目标数据块所在磁盘条带的其他数据块并与目标数据块进行依次异或计算,将所述异或计算的结果写入所述校验块;
下面结合图5详细说明所述写请求处理流程中的校验延迟处理流程,所述校验延迟处理流程的步骤为:
判断所述目标磁盘条带的状态为热点状态还是延迟状态;
如果所述目标磁盘条带的状态是热点状态“01”,则执行步骤A3,如果所述目标磁盘条带的状态是延迟状态“11”,则执行步骤B3;
所述步骤A3为:更新所述目标磁盘条带的状态为延迟状态,并开始计时一个延迟时间。
所述步骤B3为:首先判断所述延迟状态的延迟时间是否结束,如果所述延迟时间结束,则执行更新校验块,并将目标磁盘条带的状态位图更新为冰点状态“00”。
可以理解的是,所述延迟时间的时间长度根据实际需要在***初始化时进行设定,不限于一个固定的值。当然,所述延迟时间越长,校验更新的次数会越少,磁盘阵列的读写效率会越高,而数据丢失的风险相对于延迟时间较短的磁盘阵列而言则越大。
下面结合图6详细说明所述步骤三中的读请求处理流程。
首先,读取目标数据块并写入数据缓冲区;
具体地,将目标数据块的数据读入其所在磁盘条带所对应的内存的条带结构的数据缓冲区中。
然后,判断目标数据块所在磁盘条带对应的条带结构是否更新,是则执行步骤A5,否则结束所述读请求处理并返回;
所述步骤A5为:查看所述磁盘条带的状态是否为延迟状态,是则更新校验块并结束所述校验延迟时间,否则结束所述读请求处理并返回。
在本实施例中,所述磁盘条带的状态属性由一个状态访问线程访问所述磁盘条带位图获得,所述写计数属性维护线程与状态访问线程互斥。优选地,设定所述写计数属性维护线程的优先级高于所述磁盘条带状态位图访问的优先级。
请参阅图7,为图3的磁盘阵列采用本发明第一实施例提供的磁盘阵列数据读写方法的读写请求处理时序图。
所述磁盘阵列执行对磁盘条带StripeD1中数据块的读写操作,包括写数据块0,写数据块0和数据块1,读数据块1,写数据块0、数据块1和数据块2,以及写数据块2共计六次读写操作。
采用本发明第一实施例给出的磁盘阵列的数据读写方法后,如图7所示,计算和写入校验块P1的操作被延迟,在此之前针对StripeD1中数据块的写操作处理都没有更新P1,节省了写请求的处理时间,加快了磁盘阵列处理读写的速度。
可见,采用本发明第一实施例提供的磁盘阵列的数据读写方法,在一个计数周期内,读写处理时序明显比现有技术的读写处理时序减少了多个更新校验的时间,提高了数据读写效率。在保证磁盘阵列容错能力的前提下,有效减少了写操作频繁的情况下校验数据的更新次数,大大提高***的读写处理速度,加快磁盘阵列对用户的响应,有效改善磁盘阵列的读写性能。
下面详细说明本发明第二实施例的磁盘阵列的数据读取方法,其与本发明第一实施例的不同点在于,在步骤一中,在所述初始化每个磁盘条带的状态属性之前执行一个步骤D,所述步骤D为:检查所述磁盘条带状态位图是否记录有延迟状态,如果有则更新其相应磁盘条带的校验块。
可以理解的是,本发明第二实施例的磁盘阵列,在当磁盘阵列意外被停止运行,***在下一次启动时,在所述初始化每个磁盘条带的状态属性之前,执行步骤D,可以恢复磁盘阵列被停止运行时的数据,在具备本发明第一实施例的有益效果基础上,数据安全性更高。
以上说明书中的具体实施部分,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的方法及技术内容做出些许的更动或修饰为等同变化的等效实施例,但是凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。
Claims (10)
1、一种磁盘阵列的数据读写方法,所述磁盘阵列的每个磁盘条带具有一个状态属性,所述状态属性为写操作频繁状态、写操作不频繁状态或者延迟更新校验块状态,所述磁盘阵列的数据读写方法包括以下步骤:
A、内存分配多个条带结构,创建一个磁盘条带状态位图,以记录全部磁盘条带的状态属性;初始化所述磁盘条带状态位图;
B、接收用户读写请求,并更新所述磁盘条带状态位图上的目标磁盘条带的状态属性;
C、执行用户的读写请求,如果是写请求,则执行写目标磁盘条带并根据目标磁盘条带的状态属性执行更新校验块或者延迟更新校验块,如果是读请求,则执行一读请求处理流程。
2、如权利要求1所述的磁盘阵列的数据读写方法,其特征在于,所述步骤C中,如果是写请求,则在执行所述写目标磁盘条带的同时检查其状态属性是否为写操作不频繁状态,如果是则选择执行所述更新校验块,如果不是则选择执行所述延迟更新校验块。
3、如权利要求1所述的磁盘阵列的数据读写方法,其特征在于,所述步骤A中,所述初始化磁盘条带状态位图为将其上记录的每个磁盘条带的状态初始化为写操作不频繁状态。
4、如权利要求1所述的磁盘阵列的数据读写方法,其特征在于,所述磁盘条带的状态属性以一个标记值记录在所述磁盘条带状态位图上,所述标记值为2位二进制值,所述写操作频繁状态、写操作不频繁状态或者延迟更新校验块状态的标记值不同。
5、如权利要求1所述的磁盘阵列的数据读写方法,其特征在于,所述步骤C中,所述读请求处理流程包括以下步骤:
将目标数据块读入对应条带结构的数据缓冲区;
判断所述对应的条带结构的所有数据缓冲区是否完全更新,如果是,则执行步骤A5;
所述步骤A5为:检查目标磁盘条带的状态属性是否为延迟更新校验块状态,如果是,则更新目标磁盘条带的校验块并更新所述目标磁盘条带的状态属性为写操作不频繁状态。
6、如权利要求1所述的磁盘阵列的数据读写方法,其特征在于,在执行步骤A中,在所述初始化每个磁盘条带的状态属性之前执行一个步骤D,所述步骤D为:检查所述磁盘条带状态位图是否记录有延迟状态,如果有则更新其相应磁盘条带的校验块。
7、如权利要求1所述的磁盘阵列的数据读写方法,其特征在于,步骤A中,所述条带结构具有一个写计数属性,其由一个写计数属性维护线程维护,设定所述计数属性维护线程一个计数周期,并设定一个阈值,初始化所述磁盘条带状态位图的同时对每个条带结构的写计数属性清0,并开始一个计数周期;步骤B中,接收用户读写请求,每接收一个写请求则所述写计数属性维护线程对所述目标磁盘条带所对应条带结构的写计数属性加1,在所述计数周期结束时,所述条带结构的写计数属性大于所述阈值,则更新其对应的目标磁盘条带的状态属性为所述写操作频繁状态,所述写计数属性小于或者等于所述阈值,则更新其对应的目标磁盘条带的状态属性为写操作不频繁状态。
8、如权利要求1或2所述的磁盘阵列的数据读写方法,其特征在于,所述更新校验块的步骤为读取目标磁盘条带的数据块并依次进行异或计算,将所述异或计算的结果写入所述校验块。
9、如权利要求2所述的磁盘阵列的数据读写方法,其特征在于,所述步骤C中,所述执行延迟更新校验块包括以下步骤:
判断所述目标磁盘条带的状态属性为写操作频繁状态还是延迟更新校验块状态,如果是写操作频繁状态,则执行步骤A3,如果是延迟更新校验块状态,则执行步骤B3;
所述步骤A3为更新所述目标磁盘条带的状态属性为延迟更新校验块状态,并开始计时一个延迟时间,在所述延迟时间内,延迟更新校验块;
所述步骤B3为:判断所述延迟时间是否结束,如果是,则执行更新校验块并将目标磁盘条带的状态属性更新为写操作不频繁状态。
10、如权利要求2或9所述的磁盘阵列的数据读写方法,其特征在于,所述目标磁盘条带的状态属性由一个状态访问线程访问所述磁盘条带位图获得,所述写计数属性维护线程与状态访问线程互斥。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008100670046A CN101566924B (zh) | 2008-04-23 | 2008-04-23 | 一种磁盘阵列的数据读写方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008100670046A CN101566924B (zh) | 2008-04-23 | 2008-04-23 | 一种磁盘阵列的数据读写方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101566924A true CN101566924A (zh) | 2009-10-28 |
CN101566924B CN101566924B (zh) | 2011-07-13 |
Family
ID=41283092
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008100670046A Active CN101566924B (zh) | 2008-04-23 | 2008-04-23 | 一种磁盘阵列的数据读写方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101566924B (zh) |
Cited By (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101702113B (zh) * | 2009-11-23 | 2011-02-16 | 成都市华为赛门铁克科技有限公司 | 写操作处理方法和装置 |
CN102087586B (zh) * | 2009-12-02 | 2012-05-30 | 成都市华为赛门铁克科技有限公司 | 数据处理方法及装置 |
CN102521074A (zh) * | 2011-12-01 | 2012-06-27 | 浪潮电子信息产业股份有限公司 | 一种加快raid5恢复的方法 |
CN103377130A (zh) * | 2012-04-13 | 2013-10-30 | 日立(中国)研究开发有限公司 | 数据存储设备以及相应的数据存储方法 |
CN103645862A (zh) * | 2013-12-12 | 2014-03-19 | 北京同有飞骥科技股份有限公司 | 一种磁盘阵列初始化性能提升方法 |
CN103823637A (zh) * | 2013-11-29 | 2014-05-28 | 华为技术有限公司 | 一种数据处理方法及设备 |
CN104461394A (zh) * | 2014-12-09 | 2015-03-25 | 华为技术有限公司 | 一种raid及从其读取数据的方法 |
CN104793897A (zh) * | 2015-02-04 | 2015-07-22 | 北京神州云科数据技术有限公司 | 一种bitmap的存储方法 |
CN105224240A (zh) * | 2014-05-30 | 2016-01-06 | 北京忆恒创源科技有限公司 | 将数据写入存储设备的方法、装置及存储设备 |
WO2016177328A1 (en) * | 2015-05-05 | 2016-11-10 | Huawei Technologies Co., Ltd. | Smr-aware append-only file system |
CN106843982A (zh) * | 2017-02-08 | 2017-06-13 | 广州致远电子股份有限公司 | 一种基于fpga的数据处理方法及装置 |
CN107797770A (zh) * | 2017-11-07 | 2018-03-13 | 深圳神州数码云科数据技术有限公司 | 一种磁盘状态信息的同步方法及装置 |
US9983819B2 (en) | 2010-08-19 | 2018-05-29 | International Business Machines Corporation | Systems and methods for initializing a memory system |
CN108121600A (zh) * | 2016-11-30 | 2018-06-05 | 中兴通讯股份有限公司 | 磁盘阵列控制器、输入输出io数据处理方法及装置 |
CN108536393A (zh) * | 2018-03-20 | 2018-09-14 | 深圳神州数码云科数据技术有限公司 | 一种磁盘初始化方法及装置 |
CN108595269A (zh) * | 2018-04-26 | 2018-09-28 | 北京腾凌科技有限公司 | 一种数据处理方法、指令生成装置和数据读写装置 |
CN109885506A (zh) * | 2017-12-06 | 2019-06-14 | 慧荣科技股份有限公司 | 数据储存装置、主机装置、以及数据写入方法 |
CN109947365A (zh) * | 2019-03-04 | 2019-06-28 | 腾讯科技(深圳)有限公司 | 一种分布式存储数据校验方法及装置 |
CN111352579A (zh) * | 2018-12-24 | 2020-06-30 | 深圳市茁壮网络股份有限公司 | 数据存储方法及装置 |
CN111580752A (zh) * | 2020-04-28 | 2020-08-25 | 中国人民大学 | 一种数据存储方法、设备、计算机程序及存储介质 |
CN111625181A (zh) * | 2019-02-28 | 2020-09-04 | 华为技术有限公司 | 数据处理方法、独立硬盘冗余阵列控制器和数据存储*** |
CN112068770A (zh) * | 2020-08-14 | 2020-12-11 | 苏州浪潮智能科技有限公司 | 一种基于raid条带写优化方法 |
CN112148221A (zh) * | 2020-09-18 | 2020-12-29 | 北京浪潮数据技术有限公司 | 一种磁盘冗余阵列的巡检方法、装置、设备及存储介质 |
CN112286453A (zh) * | 2020-10-26 | 2021-01-29 | 苏州浪潮智能科技有限公司 | 一种磁盘阵列数据读写方法、设备及存储介质 |
CN112783689A (zh) * | 2021-02-08 | 2021-05-11 | 上海交通大学 | 一种基于lrc编码的部分条带写优化方法及装置 |
CN113687788A (zh) * | 2021-08-30 | 2021-11-23 | 西安超越申泰信息科技有限公司 | 国产平台的数据读写优化方法、装置、计算机及存储介质 |
CN113805800A (zh) * | 2021-08-08 | 2021-12-17 | 苏州浪潮智能科技有限公司 | 一种基于raid条带的写io的方法、装置、设备及可读介质 |
CN116795295A (zh) * | 2023-08-16 | 2023-09-22 | 苏州浪潮智能科技有限公司 | 磁盘阵列中的数据处理方法及装置、存储介质、电子设备 |
WO2024098885A1 (zh) * | 2022-11-11 | 2024-05-16 | 苏州元脑智能科技有限公司 | 一种磁盘阵列写处理方法、装置、设备及介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5720025A (en) * | 1996-01-18 | 1998-02-17 | Hewlett-Packard Company | Frequently-redundant array of independent disks |
US6282671B1 (en) * | 1998-11-10 | 2001-08-28 | International Business Machines Corporation | Method and system for improved efficiency of parity calculation in RAID system |
CN101055512A (zh) * | 2007-06-01 | 2007-10-17 | 威盛电子股份有限公司 | 数据存取方法 |
-
2008
- 2008-04-23 CN CN2008100670046A patent/CN101566924B/zh active Active
Cited By (48)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101702113B (zh) * | 2009-11-23 | 2011-02-16 | 成都市华为赛门铁克科技有限公司 | 写操作处理方法和装置 |
CN102087586B (zh) * | 2009-12-02 | 2012-05-30 | 成都市华为赛门铁克科技有限公司 | 数据处理方法及装置 |
US9983819B2 (en) | 2010-08-19 | 2018-05-29 | International Business Machines Corporation | Systems and methods for initializing a memory system |
CN102521074A (zh) * | 2011-12-01 | 2012-06-27 | 浪潮电子信息产业股份有限公司 | 一种加快raid5恢复的方法 |
CN103377130A (zh) * | 2012-04-13 | 2013-10-30 | 日立(中国)研究开发有限公司 | 数据存储设备以及相应的数据存储方法 |
CN103823637A (zh) * | 2013-11-29 | 2014-05-28 | 华为技术有限公司 | 一种数据处理方法及设备 |
CN103645862B (zh) * | 2013-12-12 | 2016-05-18 | 北京同有飞骥科技股份有限公司 | 一种磁盘阵列初始化性能提升方法 |
CN103645862A (zh) * | 2013-12-12 | 2014-03-19 | 北京同有飞骥科技股份有限公司 | 一种磁盘阵列初始化性能提升方法 |
CN105224240A (zh) * | 2014-05-30 | 2016-01-06 | 北京忆恒创源科技有限公司 | 将数据写入存储设备的方法、装置及存储设备 |
CN105224240B (zh) * | 2014-05-30 | 2019-04-30 | 北京忆恒创源科技有限公司 | 将数据写入存储设备的方法、装置及存储设备 |
CN104461394A (zh) * | 2014-12-09 | 2015-03-25 | 华为技术有限公司 | 一种raid及从其读取数据的方法 |
CN104461394B (zh) * | 2014-12-09 | 2018-11-13 | 华为技术有限公司 | 一种raid及从其读取数据的方法 |
CN104793897A (zh) * | 2015-02-04 | 2015-07-22 | 北京神州云科数据技术有限公司 | 一种bitmap的存储方法 |
WO2016177328A1 (en) * | 2015-05-05 | 2016-11-10 | Huawei Technologies Co., Ltd. | Smr-aware append-only file system |
CN107735774A (zh) * | 2015-05-05 | 2018-02-23 | 华为技术有限公司 | 一种smr感知只追加文件*** |
CN107735774B (zh) * | 2015-05-05 | 2020-05-08 | 华为技术有限公司 | 一种smr感知只追加文件*** |
CN108121600B (zh) * | 2016-11-30 | 2022-11-29 | 中兴通讯股份有限公司 | 磁盘阵列控制器、输入输出io数据处理方法及装置 |
CN108121600A (zh) * | 2016-11-30 | 2018-06-05 | 中兴通讯股份有限公司 | 磁盘阵列控制器、输入输出io数据处理方法及装置 |
CN106843982A (zh) * | 2017-02-08 | 2017-06-13 | 广州致远电子股份有限公司 | 一种基于fpga的数据处理方法及装置 |
CN107797770B (zh) * | 2017-11-07 | 2020-08-21 | 深圳神州数码云科数据技术有限公司 | 一种磁盘状态信息的同步方法及装置 |
CN107797770A (zh) * | 2017-11-07 | 2018-03-13 | 深圳神州数码云科数据技术有限公司 | 一种磁盘状态信息的同步方法及装置 |
CN109885506B (zh) * | 2017-12-06 | 2022-11-11 | 慧荣科技股份有限公司 | 数据储存装置、主机装置、以及数据写入方法 |
CN109885506A (zh) * | 2017-12-06 | 2019-06-14 | 慧荣科技股份有限公司 | 数据储存装置、主机装置、以及数据写入方法 |
CN108536393B (zh) * | 2018-03-20 | 2021-03-19 | 深圳神州数码云科数据技术有限公司 | 一种磁盘初始化方法及装置 |
CN108536393A (zh) * | 2018-03-20 | 2018-09-14 | 深圳神州数码云科数据技术有限公司 | 一种磁盘初始化方法及装置 |
CN108595269B (zh) * | 2018-04-26 | 2020-10-09 | 北京腾凌科技有限公司 | 一种数据处理方法、指令生成装置和数据读写装置 |
CN108595269A (zh) * | 2018-04-26 | 2018-09-28 | 北京腾凌科技有限公司 | 一种数据处理方法、指令生成装置和数据读写装置 |
CN111352579A (zh) * | 2018-12-24 | 2020-06-30 | 深圳市茁壮网络股份有限公司 | 数据存储方法及装置 |
CN111352579B (zh) * | 2018-12-24 | 2023-11-10 | 深圳市茁壮网络股份有限公司 | 数据存储方法及装置 |
CN111625181A (zh) * | 2019-02-28 | 2020-09-04 | 华为技术有限公司 | 数据处理方法、独立硬盘冗余阵列控制器和数据存储*** |
CN111625181B (zh) * | 2019-02-28 | 2022-03-29 | 华为技术有限公司 | 数据处理方法、独立硬盘冗余阵列控制器和数据存储*** |
CN109947365B (zh) * | 2019-03-04 | 2021-08-17 | 腾讯科技(深圳)有限公司 | 一种分布式存储数据校验方法及装置 |
CN109947365A (zh) * | 2019-03-04 | 2019-06-28 | 腾讯科技(深圳)有限公司 | 一种分布式存储数据校验方法及装置 |
CN111580752A (zh) * | 2020-04-28 | 2020-08-25 | 中国人民大学 | 一种数据存储方法、设备、计算机程序及存储介质 |
CN111580752B (zh) * | 2020-04-28 | 2023-09-26 | 中国人民大学 | 一种数据存储方法、设备、计算机程序及存储介质 |
CN112068770A (zh) * | 2020-08-14 | 2020-12-11 | 苏州浪潮智能科技有限公司 | 一种基于raid条带写优化方法 |
CN112068770B (zh) * | 2020-08-14 | 2023-01-10 | 苏州浪潮智能科技有限公司 | 一种基于raid条带写优化方法 |
CN112148221B (zh) * | 2020-09-18 | 2024-02-13 | 北京浪潮数据技术有限公司 | 一种磁盘冗余阵列的巡检方法、装置、设备及存储介质 |
CN112148221A (zh) * | 2020-09-18 | 2020-12-29 | 北京浪潮数据技术有限公司 | 一种磁盘冗余阵列的巡检方法、装置、设备及存储介质 |
CN112286453A (zh) * | 2020-10-26 | 2021-01-29 | 苏州浪潮智能科技有限公司 | 一种磁盘阵列数据读写方法、设备及存储介质 |
CN112783689A (zh) * | 2021-02-08 | 2021-05-11 | 上海交通大学 | 一种基于lrc编码的部分条带写优化方法及装置 |
CN112783689B (zh) * | 2021-02-08 | 2022-09-02 | 上海交通大学 | 一种基于lrc编码的部分条带写优化方法及装置 |
CN113805800B (zh) * | 2021-08-08 | 2023-08-18 | 苏州浪潮智能科技有限公司 | 一种基于raid条带的写io的方法、装置、设备及可读介质 |
CN113805800A (zh) * | 2021-08-08 | 2021-12-17 | 苏州浪潮智能科技有限公司 | 一种基于raid条带的写io的方法、装置、设备及可读介质 |
CN113687788A (zh) * | 2021-08-30 | 2021-11-23 | 西安超越申泰信息科技有限公司 | 国产平台的数据读写优化方法、装置、计算机及存储介质 |
WO2024098885A1 (zh) * | 2022-11-11 | 2024-05-16 | 苏州元脑智能科技有限公司 | 一种磁盘阵列写处理方法、装置、设备及介质 |
CN116795295A (zh) * | 2023-08-16 | 2023-09-22 | 苏州浪潮智能科技有限公司 | 磁盘阵列中的数据处理方法及装置、存储介质、电子设备 |
CN116795295B (zh) * | 2023-08-16 | 2023-11-17 | 苏州浪潮智能科技有限公司 | 磁盘阵列中的数据处理方法及装置、存储介质、电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN101566924B (zh) | 2011-07-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101566924B (zh) | 一种磁盘阵列的数据读写方法 | |
US5530948A (en) | System and method for command queuing on raid levels 4 and 5 parity drives | |
CN103049222B (zh) | 一种raid5的写io优化处理方法 | |
US7035974B2 (en) | RAID-5 disk having cache memory implemented using non-volatile RAM | |
US6523087B2 (en) | Utilizing parity caching and parity logging while closing the RAID5 write hole | |
US7073010B2 (en) | USB smart switch with packet re-ordering for interleaving among multiple flash-memory endpoints aggregated as a single virtual USB endpoint | |
US5884098A (en) | RAID controller system utilizing front end and back end caching systems including communication path connecting two caching systems and synchronizing allocation of blocks in caching systems | |
JP5744244B2 (ja) | ストレージシステム | |
US6148368A (en) | Method for accelerating disk array write operations using segmented cache memory and data logging | |
US8977894B2 (en) | Operating a data storage system | |
US9292228B2 (en) | Selective raid protection for cache memory | |
CN107250975B (zh) | 数据存储***和数据存储方法 | |
KR101574844B1 (ko) | Smr raid용의 대블록 무작위 쓰기 핫 스페어 ssd 구현 | |
CN101236482B (zh) | 降级状态下处理数据的方法及独立冗余磁盘阵列*** | |
KR20050013938A (ko) | 하드 디스크 드라이브에서의 자율적인 데이터 스크럽시스템 및 방법 | |
JPH05505264A (ja) | データ記憶装置における書込みオペレーション識別子の不揮発性メモリ記憶 | |
Varma et al. | Destage algorithms for disk arrays with nonvolatile caches | |
US7062605B2 (en) | Methods and structure for rapid background initialization of a RAID logical unit | |
US7051156B2 (en) | Raid-5 disk having cache memory | |
CN115237342A (zh) | 一种由阵列磁盘进行数据校验的raid5校验方法 | |
CN104484135A (zh) | 一种快速数据读取方法及装置 | |
US8145839B2 (en) | Raid—5 controller and accessing method with data stream distribution and aggregation operations based on the primitive data access block of storage devices | |
US7174476B2 (en) | Methods and structure for improved fault tolerance during initialization of a RAID logical unit | |
RU2750645C1 (ru) | Способ хранения данных в избыточном массиве независимых дисков с повышенной отказоустойчивостью | |
CN114415968A (zh) | 存储***及其数据写入方法 |
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 | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20171113 Address after: 350700 building, two Financial Bureau, Yongtai County, Fujian, Fuzhou Patentee after: Yongtai County State owned asset management company Address before: 518057 Nanshan District Guangdong high tech Industrial Park, South Road, science and technology, ZTE building, Ministry of Justice Patentee before: ZTE Corporation |