CN1118503A - 带有空闲块奇偶校验高速缓存的第五级raid - Google Patents
带有空闲块奇偶校验高速缓存的第五级raid Download PDFInfo
- Publication number
- CN1118503A CN1118503A CN95103824A CN95103824A CN1118503A CN 1118503 A CN1118503 A CN 1118503A CN 95103824 A CN95103824 A CN 95103824A CN 95103824 A CN95103824 A CN 95103824A CN 1118503 A CN1118503 A CN 1118503A
- Authority
- CN
- China
- Prior art keywords
- block
- data
- parity
- new
- protected
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/10—Indexing scheme relating to G06F11/10
- G06F2211/1002—Indexing scheme relating to G06F11/1076
- G06F2211/1009—Cache, i.e. caches used in RAID system with parity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/10—Indexing scheme relating to G06F11/10
- G06F2211/1002—Indexing scheme relating to G06F11/1076
- G06F2211/1033—Inactive data in parity groups, i.e. RAID parity groups where parity is calculated on only occupied or busy bits in the stripe
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/10—Indexing scheme relating to G06F11/10
- G06F2211/1002—Indexing scheme relating to G06F11/1076
- G06F2211/1059—Parity-single bit-RAID5, i.e. RAID 5 implementations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/31—Providing disk cache in a specific location of a storage system
- G06F2212/312—In storage controller
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
用于向盘阵列写数据的系统,包括一结合到盘阵列的高速缓存存储器,用于保存表示在盘阵列上位置的数据,和与包含有此位置的奇偶校验组相联系的奇偶校验块。每个奇偶块包括一个表示在由奇偶校验数据所保护的一特定奇偶校验组中的位置的标识符。写逻辑从奇偶校验块中读标识符,并根据它判断某磁盘位置是否不被奇偶校验数据所保护。写逻辑同样也向此位置写并更新奇偶校验数据和相关标识符以包括此数据块的位置,指示数据块被保护。
Description
本发明一般地涉及到数字信息的永久存储系统,特别是盘类型的系统,尤其涉及到可以产生并存储奇偶校验块以便于恢复磁盘故障的盘阵列系统。
一种冗余廉价盘阵列RAID已经被提出作为单个的大型昂贵盘(SLD)的低成本替代品以为具有高吞吐量的数字信息提供海量存储。RAID理论使用相对廉价的盘,这些盘单个来讲比较昂贵的盘有较高的故障机率,但可以通过产生并存储用以帮助恢复磁盘故障的奇偶校验块来增加冗余性从而补偿这种较高的故障机率。
图1A给出了一个可实现的RAID组织形式的盘阵列子系统结构。一个盘控制器30连接到一个主系统10,并且具有一个高速缓存31来管理一个廉价盘阵列40—43。在一个具有N+1个盘的RAID组织形式中,为每N个数据块产生一个奇偶校验块,并且这N+1个块(N个数据块加一个奇偶校验块)中的每一块存储于不同的盘上。在一种实现方式中,一个奇偶校验块通过N个数据块的按位“异或”(XOR)从N个数据块中计算出来。奇偶校验块和计算出这个奇偶校验块的N个数据块被称作一个奇偶校验组。一个奇偶校验组中的任何块可以从这个奇偶校验组的其它块计算出来。
在“冗余廉价盘阵列的一种方式”(“A Case Redundant Arraysof Inexpensive Disks(RAID)”,Proc.of ACM SIGMOD Interna-tional Conference on Management of Data,PP.109—116,1988)中,在此作为参考,D.A.Patterson,G.Gibson和R.H.Katz描述了五种盘阵列分为一到五级RAID。特别感兴趣的是具有第五级RAID组织形式的盘阵列,因为这样一种RAID类型中奇偶校验块均匀地分配到所有盘上,因而不会产生瓶颈问题。
RAID环境的一个缺点是一个盘写操作的代价远远高于SLED,因为在RAID上写一次数据需要多至四次盘访问操作而在SLED上只需要两次盘访问操作。无论何时一个RAID组织形式中的盘控制器收到一个写数据块的请求,它必须不仅更新(即读和写)数据块,而且必须更新(即读和写)相应的奇偶校验块以保持一致性。例如,如果图2A中的数据块D1要被写,P0的新值这样计算:
新P0=(旧D1 XOR新D1 XOR旧P0)因此,需要以下的四个盘访问操作:(1)读旧数据块D1;(2)读旧奇偶校验块P0:(3)写新数据块D1;(4)写新奇偶校验块P0。读必须在写开始之前完成。
在“事务处理环境中盘阵列的性能”(“Performance of DiskArrays in Transaction Processing Environments”.Proc.of Inter-national Conference on Distributed Computing System,PP.302—309,1992)一文中,J.Menon和D.Mattson指出在盘控制器中增加高速缓存或缓存存储块可以提高RAID盘阵列子系统的性能。如果有一个盘高速缓存,并且将被替换的块在高速缓存中,则可避免从此块的盘阵列上预读。再有,如果每个奇偶校验组的奇偶校验块也存储在高速缓存中,这样如果奇偶校验块在高速缓存中则从盘阵列的两次读可以避免。
普通转让和共同未决的美国专利申请07/017,920,1993年2月16日申请(IBM Docket YO993—013),描述了一个系统,该系统中写操作频繁的奇偶校验组中的奇偶校验块存储于一个高速缓存中以降低更新过程中盘访问的次数。
现有方案的一个缺点是,在任意所给时间,一个给定奇偶校验组中的不同数据块可能不包含有用数据。例如,一些数据块可能没被用到,而其它一些,虽然以前被使用了,可能已被操作系统释放。这样,当每个奇偶校验块被赋予一组数据块时,奇偶校验块的每一位依赖于所有相应数据块的位,而不管这个数据块是否被使用。
本发明消除了上面讨论的缺点。本发明是一个用于在盘阵列上写数据的系统,其中一个奇偶校验块可为它的奇偶校验组中的所有数据块或这些数据块的任意子集提供奇偶校验信息。这就允许仅为当前使用的数据块存储奇偶校验信息。这个系统包括一个结合到盘阵列的高速缓存存储器,用于存储与包含各自位置的奇偶校验组相联系的奇偶校验块。根据本发明,每个奇偶校验块包含一个标识符来指示一个特定奇偶校验组中被奇偶校验数据保护的数据块。写逻辑结合到高速缓存存储器和盘阵列中,包含用于读标识符并判断一个目标块是否未被奇偶校验数据保护的装置。写逻辑还包含用于向未保护位置写的写装置和用于更新奇偶校验数据和与包含此位置的奇偶校验块相联系的标识符的更新装置,以指示此位置被保护。
参照附图可以更好地理解本发明,其中:
图1A是一个图示一个盘阵列子系统结构框图;
图1B是一个图示一个实施本发明的盘阵列子系统结构框图;
图2A是一个表示数据和奇偶校验块放置的常规第五级RAID的数据映像;
图2是一个分区的奇偶校验/数据盘高速缓存;
图3是一个根据本发明实施方式的单个块写操作的流程图;
图4是一个根据本发明实施方式的空闲块命令的流程图;
图5是一个描述本发明的奇偶校验和标识符块的框图。
本发明可在图1B所示的盘阵列子系统上实现,它包括一个具有一个高速缓存存储器31的盘控制器30和盘阵列40,41,42和43。高速缓存存储器31被分为两部分:一个用于缓存数据块的数据部分31a和一个用于缓存奇偶校验块的奇偶校验部分31b。数据部分31a和奇偶校验部分31b可被高速缓存控制器独立地访问。根据本发明的一种实施方式,数据块写在可变写保护逻辑32控制下执行,可变写保护逻辑32同高速缓存31的31a和31b两部分都相连。将要描述的最佳实施方式盘阵列40—43中的数据映像是一个第五级RAID(RAID V)的映像。
图2表示了盘控制器30所使用的用于它的高速缓存31a和31b的数据结构。当给予块202一个带号ID后,RAID V确定哪个盘有其他盘上数据块的奇偶校验和编号,然后盘控制器使用实际盘地址工作。高速缓存索引204和206用哈希表实现,一个用于奇偶校验高速缓存,一个用于数据高速缓存。给出一个盘块地址,查找哈希表以确定此地址处的数据是否在高速缓存中,并且如果它在高速缓存中,则在那里。奇偶校验高速缓存中一个块的哈希表入口指向一个最近最少使用(LRU)的栈208。LRU栈的入口地址确定实际数据在哪里,因为在LRU栈入口和高速缓存块之间存在一一对应关系。为计算数据的地址,使用(高速缓存空间基地址)+(块大小)*(LRU栈入口地址—LRU栈基地址)/(LRU栈入口长度)。LRU栈210的入口具有一个数据块地址域。
在操作中,每个高速缓存按下列方式使用:(1)每次访问一个奇偶校验/数据块时,它从当前位置移到LRU栈中最近最多使用(MRU)的位置;(2)当需要空间以读进一个奇偶校验/数据块时,用于LRU块的高速缓存空间被释放,这个块被读进此位置,放到MRU位置,并据此更新高速缓存索引。
在一个最佳实施方式中,一个LRU栈用一个有固定大小入口的双重链表或链实现。每个入口可以具有关于一个LRU栈目的的信息。在这种情况下,如果使用地址计算技术,一个指向高速缓存块的指针不是必需的。每个入口还可具有有关两个指针的信息,一个指向下一个MRU入口如果它是MRU入口则为空),一个指向下一个LRU入口(如果它是LRU入口则为空)。LRU栈可用软件实现,这是由于入口可转移到栈中部之外的任何地方,然后用一些指令放到栈的顶部。
图2A表示了一个第五级RAID的数据映像,在一个共有N+1个盘的第五级RAID系统中,每个奇偶校验组包括N个数据块和一个奇偶校验块。传统的方法是把数据块划分到奇偶校验组中,如图2A所示。在图2A中,例如,数据块D0,D1,D2,D3和奇偶校验块P0形成一个奇偶校验组。图2A中奇偶校验块P0被标记为100,101,102,103和104。因此,奇偶校验块P0(标记为100)是数据块D0(标记为110),数据块D1(标记为111),数据块D2(标记为112),数据块D3(标记为113)的异或。根据本发明,对于从主系统10到盘控制器30的每个数据块更新请求,如果相应的奇偶校验块已在控制单元高速缓存31中,则一个数据更新需要3个物理盘访问操作:1)读取旧数据;并且2)写新数据;3)写新的奇偶校验块。
根据本发明的一种实施方式,每个奇偶校验块包含一个标识符,或“前缀”,它标识这个奇偶校验组中的哪些数据块被保护。当主系统10向盘控制器30发送一个写命令时,可变写保护逻辑32从高速缓存存储器31中的相关奇偶校验块中读取前缀。在与将被写入的奇偶校验组(或“带”)相联系的奇偶校验块前缀标识一个特定的数据块未被奇偶校验保护的情况下,旧的奇偶校验同新数据进行异或,更新前缀以标识此数据块已被保护,新数据写到盘的数据块上,并且新的奇偶校验块写到盘上。这样就完全避免了从盘上读取旧数据的步骤。
图3图示了一个根据本发明的可变保护单个块写逻辑32的流程图。这个可变保护写逻辑32可用在盘控制器的微处理器中执行的微代码控制程序的形式实现。
当盘控制器从主处理器10接收到一条写命令时逻辑开始。写命令包括数据块和写地址。写命令还包括一个由主文件系统设置的标识,它指示是否全部带都由空闲(即未用)空间构成。
在第302步中盘控制器检测自由带标识以确定数据块所属的整个带是否空闲。如果整个带是空闲的,在第304步中盘控制器使带的奇偶校验块P等同于数据块D(P=D),同时,数据块D在空闲块位向量中标记为被保护。值得注意的是这个操作不需要从高速缓存或盘进行读取。在第306步中控制器把P和D写到盘上。
如果在第302步中盘控制器确定整个带不全是空闲的,在第308步中控制器利用哈希表304判断奇偶校验块P是否在高速缓存31中。如果不在,在第310步中控制器判断将被替换的数据块(Dold)是否在高速缓存31中。如果在,第312步中控制器从盘上读取P,如果不在,第314步中从盘上读取P和Dold。
下面,在第316步中控制器检测奇偶校验块前缀以判断Dold是否被保护。如果被保护,在第318步中控制器为奇偶校验P确定新值,P=P XOR DoldXOR D。然后,在第306步中,P和D写到盘上。如果Dold没被保护,在第320步中P的新值由P=PXOR D确定并且D在块前缀中标记为被保护。然后,在第306步中P和D写到盘上。
如果在第308步中确定P在高速缓存中,在第324步中控制器检测奇偶校验块前缀以判断Dold是否被保护。如果被保护,在第326步中盘控制器判断Dold是否在高速缓存中。如果在,执行第318和306步。如果不在,在第328步中从盘上读取Dold然后执行第318和306步。
若在第324步确定Dold未保护,则在第320步控制器确定新的奇偶校验值为P=P XOR D,然后标识D为被保护。随后执行第306步。需注意的是在第320步时所有的值都取自高速缓存,这样就无需从盘上读取。
在最佳实施方式中,盘空间由主操作系统中称为文件系统的部分管理。文件系统负责把称为文件和目录的逻辑实体映射到盘上的物理空间,并负责管理空闲(未用的)盘空间。例如,当需要建立一新文件或扩展一已存在的文件时,文件系统可以为此目的而分配已有的空闲空间,从而使空闲空间成为非空闲(即在使用)的。相反地,当删除文件或用于存放一个文件的空间减少时,先前在使用的空间可成为空闲的。为了最优化写盘性能以释放空间,并为了加速一盘故障后的恢复工作,要求空闲盘块不被保护。为此目的,可向盘控制器提供一“释放块命令”,其逻辑如图4所示。例如,在一些给定的带S上每当先前在使用的空间要释放时,或者由一给定的时间间隔、或当被保护的空闲空间达到一阈值数量等等所决定的周期性地成批地释放空间时(一个批由一个用于包含有将要设置成未保护而现为被保护空闲空间的每个带的命令组成),此命令可由文件系统发出。
图4中“释放块命令”的操作如下:首先,在第402步,高速缓存管理程序判断P是否在高速缓存中。若不在,则在第404步将P从盘上读入高速缓存中。接着,在第406步,程序判断要释放的块数(k)是否与带中的块数(N)(不算P)相等。若要释放整个带(除了P),在则第408步,把所有的数据块都标识成未保护。在第410步,把在高速缓存中存储的每个要释放的块Bj都标识为空闲高速缓存空间。然后在第412步,将新的奇偶校验块写入盘中。
若要释放少于整带的数据块,则在第414步确定没有保存在高速缓存中的正在使用的数据块数(d)。d是为了通过对所有在使用的数据块异或来计算奇偶校验值而需要从盘上读出的数据块数。在第416步,确定不在高速缓存中的要释放的未保护的数据块数b。若通过减去将成为未保护的被保护块而重新计算了奇偶校验值,则b是需从盘上读出的块数。
接下来,在第415步,判断d是否小于或等于b。这一步的目的是为了使两者之一的I/O操作数最少。若d小于或等于b,则在第418步,将不在高速缓存中的所有正在使用的数据块从盘上读出,然后在第420步通过把所有数据块D1…Dn相互异或而重新计算奇偶校验值。相反地若d大于b,则在第422步,把不在高速缓存中的所有被保护的数据块从盘上读出,然后在第424步要被释放的每个数据块Bj都与奇偶校验块P相异或。这一操作从奇偶校验块中减去要释放的被保护数据块Bj。
在第426步,通过清除所有正在释放的块Bj在相应块前缀中的登记项而把它们标识成为未保护。然后如前所述进行第410步和第412步的操作。
图5A—5C显示了如何通过使用与根据发明的奇偶校验块前缀502确定奇偶校验值的一些例子。给出了一个每带(奇偶校验组)有四个数据块和一个奇偶校验块的实施方式。在前缀中的映射使得每个数据块Dn都在前缀中有一位置。0指示相应的数据块未包含在奇偶校验计算中,1指示数据块包含于奇偶校验计算中。
在图5A中,数据块D9、D10和D11为空闲,这样仅有数据块D8由奇偶校验块P2保护。前缀502a设成1000(二进制),表明奇偶校验块P2的奇偶校验位504a仅由数据块D8生成。三个零指明其余的三个数据块未被保护。
在图5B中,假定控制器需要向块D10执行写操作。通过检查原来奇偶校验块前缀502a,控制器确定只有块D8为奇偶校验位所保护,这样,新的奇偶校验值计算为P=D8 XOR D10或P=D10 XOR旧的P,并存于奇偶校验块504b中。
在图5C中,假定控制器需对块D9执行写操作。原来的奇偶校验值502b指示块D9未被保护。这样,新的奇偶校验值计算为P=D8 XOR D9 XOR D10或P=D9 XOR旧的P。P存于奇偶校验块504c中,并如在502c中所示更新前缀。
对本发明中具有自由块奇偶校验系统的RAID 5,若盘阵列中的某个盘发生故障,其恢复方案与标准的RAID盘阵列相同。在故障盘上有块的每个奇偶校验组中所丢失的块由其奇偶校验在其它盘上的其它块获得。然而,在恢复中的一个优点是,在本系统中前缀提供了一个由奇偶校验块所描述的数据块映象。所以不用重构未使用的数据块。
在单个盘发生故障的情况下,在现有RAID结构盘系统中的盘的内容可以重建。实际上,对于故障盘上的每个块,若它为奇偶校验块,则重新计算奇偶校验信息,若它为数据块,则其内容可使用带中的所有其它数据块和该带的奇偶校验块进行重建。
利用本发明的可变带保护模式,重构的进行如下所示。首先,假设故障盘上的块为数据块。从带上的奇偶校验块可判断此块是被保护还是未被保护的。若它是被保护的,则其内容的重构如上所述,除了只使用带中其它被保护的数据块(和奇偶校验块)。若只有少数其它块被保护,则对每带上少数被保护的块增加保存,减少了I/O(与现有技术方法相比),从而加速盘的恢复。另一种情况是数据块未被保护。在这种情况下,无需进一步的动作,这显然是对现有技术方法的较大改进。特别值得注意的是若故障盘包含大量未被保护(空闲)的空间,则与现有盘重构方法相比,盘的恢复将非常快。
接下来,假设故障盘上的块为奇偶校验块。在这种情况下,有两种方法可用于重构块。第一种方法,若要求盘的重构独立于主系统进行,那么则需作最坏的假设,即带上的所有数据块都是有效(正在使用)块。在这种情况下,通过计算此带上所有数据块的奇偶校验值可找到奇偶校验块,然后进一步在奇偶校验块的前缀区把所有的数据块标志为被保护的。
第二种涉及与主系统通信的方法如下。对故障盘上的每个奇偶校验块,盘控制器在主文件系统中查询带上数据块的状态(空闲或正在使用)。主文件系统对带上的每个块返回一个位向量以指示它是否空闲。将每个这种空闲块标志为未被保护的,带中其余的数据块标志为被保护的。最后对带中被保护的块计算奇偶校验值,这样就在故障盘上重构了奇偶校验块。若带中少于全部的数据块被保护,这也是对现有方法的改进,因为只有被保护的块才需从盘上读出以重新计算奇偶校验块。
总而言之,当在带上少于全部的数据块为奇偶校验块所保护时,本发明减少了需读和写的次数。特别地,奇偶校验块中含有标示符,将每个数据块归类为或者是被保护数据,即对这些数据计算了奇偶校验信息并保存在奇偶校验块中;或者是未保护数据,即对这些数据没有存储的奇偶校验信息。后一类的数据块总是未使用的块。另外,第一类(被保护的)数据块可进一步分类为在使用或未使用的。例如,当将给定块中的信息更新并写入另一盘位置,或当信息作废并由操作系统将包含这些数据的盘空间释放时,就可能发生被保护的数据块中含未使用数据的情况。执行对未保护数据块的写操作不用先判断当前块的内容,因为这些未包含在当前的奇偶校验信息中。再者,被保护但未使用的数据块可通过对正在使用的数据块重新计算奇偶校验信息而转换成未保护块。在最佳实施方式中,系统利用其内容中包含数据和奇偶校验块数的高速缓存存储器,以及在奇偶校验块中读并修改前缀的写逻辑,来确定需用于读和写每种类型的块的动作。
当参照最佳实施方式特别说明并描述本发明后,熟练的技术人员可以懂得从本发明的实质和范围出发可作出各种形式上或细节上的改动。
Claims (16)
1.一种用于向盘阵列写数据的系统,包括:
一个结合到盘阵列中的高速缓存存储器,高速缓存存储器保存了与盘数据块的带相联系的一个或多个奇偶校验块,每个奇偶校验块含有其带上的一个或多个数据块的奇偶校验数据和一标识其带上的被保护数据块的标识符,
结合到高速缓存存储器和盘阵列中的写逻辑,写逻辑包括:
判断某位置是否由奇偶校验数据所保护的装置;
将数据写到所选位置的装置;
如需要指示所选位置被保护时,用于计算新的奇偶校验数据并更新与新的奇偶校验数据相联系的标识符的装置。
2.根据权利要求1中的系统,其特征在于它还包括:
用于当一个数据块释放后从盘阵列上将其读出的装置;和
用于重新计算奇偶校验数据并更新与重新计算的奇偶校验数据相联系的标识符以反映数据块释放的装置。
3.根据权利要求2中的系统,其特征在于它包含当一数据块释放后用于从盘阵列上将其读出的装置。
4.根据权利要求2中的系统,其特征在于它还包括用于确定从盘上读出最佳块集合以重新计算奇偶校验数据的装置。
5.根据权利要求2中的系统,其特征在于它还包括用于在多个数据块释放后将它们从盘阵列上读出的装置。
6.一种将新数据写入冗余廉价盘阵列中的一个盘上的方法,包括:
把新数据保存于高速缓存存储器中;
为盘阵列中一组数据块中的正在使用的数据块计算奇偶校验块;
在奇偶校验块中加入一标识符以指示该组数据块中的哪些数据块正在使用;
给新数据选定一目标数据块;
确定目标数据块是否属于一组空闲数据块,如果是这样,只使用新的数据设置奇偶校验块,并将设置的奇偶校验块和新数据写入盘中;否则,根据标识符确定目标块是否由奇偶校验块所保护;
如果是的话,使用新数据、目标块和奇偶校验块计算新的奇偶校验块以反映出新数据并将新的奇偶校验块写入高速缓存和盘中;
否则,计算新的奇偶校验块以反映新数据,将新的奇偶校验块写入高速缓存和盘中并更新标识符以指示此目标块现在由奇偶校验块所保护。
7.根据权利要求6中的方法,其特征在于目标块由奇偶校验块所保护并且如果目标块的内容未存于高速缓存中,则在计算新的奇偶校验块之前将目标块的内容从盘上读出。
8.根据权利要求7中的方法,其特征在于奇偶校验块和数据块组中的每个数据块都存于盘阵列中不同的盘上。
9.根据权利要求6中的方法,其特征在于若奇偶校验块未存于高速缓存中,则在确定目标块是否被保护的步骤之前,从盘上读取奇偶校验块和标识符。
10.根据权利要求6中的方法,其特征在于通过把新的数据块与奇偶校验块相异或来计算新的奇偶校验块。
11.一种用于计算冗余廉价盘阵列中未使用数据块的方法,包括:
为存于盘上的一组数据块中的数据块计算奇偶校验块;
在奇偶校验块中加入一标识符以指示组中的哪些数据块正在使用;
当把一数据块从正在使用的重新归类为未使用的时,使用奇偶校验块和将被重新归类的块中的数据计算一新的奇偶校验块,并更新标识符以指示要被重新分类的块不被新的奇偶校验块所保护。
12.根据权利要求11中的方法,其特征在于阵列带有一个与之相联系的高速缓存存储器,若奇偶校验块和标识符未存于高速缓存存储器中,则在计算新的奇偶校验块的步骤之前,从盘上读出奇偶校验块和标识符。
13.根据权利要求11中的方法,其特征在于阵列带有一个与之相联系的高速缓存存储器,若将被重新归类的数据块未存于高速缓存存储器中,则在计算新的奇偶校验块的步骤之前,从盘上读出将要被重新归类的数据块。
14.根据权利要求11中的方法,其特征在于标识符包括与组中数据块数相等的位数,每一位对应于组中一个不同的数据块,并且更新标识符的步骤包括改变与将被重新归类的块相对应的位的状态。
15.根据权利要求11中的方法,其特征在于奇偶校验块和组中每个数据块存于阵列中不同的盘上。
16.根据权利要求11中的方法,其特征在于计算新的奇偶校验块的步骤包括把奇偶校验块与将被重新归类的块中的数据相异或。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US238,769 | 1988-08-31 | ||
US238769 | 1994-05-05 | ||
US08/238,769 US5522032A (en) | 1994-05-05 | 1994-05-05 | Raid level 5 with free blocks parity cache |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1118503A true CN1118503A (zh) | 1996-03-13 |
CN1097774C CN1097774C (zh) | 2003-01-01 |
Family
ID=22899236
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN95103824A Expired - Lifetime CN1097774C (zh) | 1994-05-05 | 1995-04-14 | 带有空闲块奇偶校验高速缓存的第五级raid |
Country Status (6)
Country | Link |
---|---|
US (1) | US5522032A (zh) |
EP (1) | EP0681238B1 (zh) |
JP (1) | JP2902970B2 (zh) |
KR (1) | KR100188485B1 (zh) |
CN (1) | CN1097774C (zh) |
DE (1) | DE69512459T2 (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100337209C (zh) * | 2002-11-01 | 2007-09-12 | 国际商业机器公司 | 容忍磁盘阵列中多个相关或任意双盘故障的方法和装置 |
CN100359478C (zh) * | 2003-06-28 | 2008-01-02 | 国际商业机器公司 | 对多倍冗余存储器执行安全写操作的装置和方法 |
CN100412806C (zh) * | 2004-12-14 | 2008-08-20 | 富士通株式会社 | 存贮控制器及存贮控制方法 |
CN101084486B (zh) * | 2004-12-23 | 2010-12-29 | 英特尔公司 | 用于校验子生成以及数据恢复的方法和系统 |
CN101566931B (zh) * | 2003-08-14 | 2011-05-18 | 克姆佩棱特科技公司 | 虚拟磁盘驱动系统和方法 |
CN111880963A (zh) * | 2020-07-29 | 2020-11-03 | 北京浪潮数据技术有限公司 | 一种数据重构方法、装置、设备及存储介质 |
CN112119380A (zh) * | 2018-05-18 | 2020-12-22 | 微软技术许可有限责任公司 | 带有旁路的奇偶校验记录 |
CN112947847A (zh) * | 2019-12-11 | 2021-06-11 | 伊姆西Ip控股有限责任公司 | 用于存储数据的方法、设备和计算机程序产品 |
WO2022179377A1 (zh) * | 2021-02-25 | 2022-09-01 | 浪潮电子信息产业股份有限公司 | 一种raid 5校验值的更新方法、装置和介质 |
CN117785026A (zh) * | 2023-11-17 | 2024-03-29 | 青海师范大学 | 一种基于ssd raid-5系统高效写的缓存方法 |
Families Citing this family (47)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3687111B2 (ja) * | 1994-08-18 | 2005-08-24 | 株式会社日立製作所 | 記憶装置システムおよび記憶装置の制御方法 |
JP3202550B2 (ja) * | 1995-07-14 | 2001-08-27 | 日本電気株式会社 | ディスクアレイサブシステム |
US5933592A (en) * | 1995-10-13 | 1999-08-03 | Digital Equipment Corporation | Promoting device level error to raidset level error to restore redundacy in a raid array data storage system |
US5961652A (en) * | 1995-10-13 | 1999-10-05 | Compaq Computer Corporation | Read checking for drive rebuild |
US5737744A (en) * | 1995-10-13 | 1998-04-07 | Compaq Computer Corporation | Disk array controller for performing exclusive or operations |
US5826001A (en) * | 1995-10-13 | 1998-10-20 | Digital Equipment Corporation | Reconstructing data blocks in a raid array data storage system having storage device metadata and raid set metadata |
US5860090A (en) * | 1995-10-20 | 1999-01-12 | Informix Software, Inc. | Append-only storage in a disk array using striping and parity caching |
US5720025A (en) * | 1996-01-18 | 1998-02-17 | Hewlett-Packard Company | Frequently-redundant array of independent disks |
KR100208801B1 (ko) | 1996-09-16 | 1999-07-15 | 윤종용 | 데이타 입/출력 성능을 향상시키기 위한 기억장치 시스템 및 그에 따른 데이타 복구정보 캐시구현방법 |
US6016552A (en) * | 1997-06-06 | 2000-01-18 | The Chinese University Of Hong Kong | Object striping focusing on data object |
US6012123A (en) * | 1997-06-10 | 2000-01-04 | Adaptec Inc | External I/O controller system for an independent access parity disk array |
US6035347A (en) * | 1997-12-19 | 2000-03-07 | International Business Machines Corporation | Secure store implementation on common platform storage subsystem (CPSS) by storing write data in non-volatile buffer |
JPH11203056A (ja) * | 1998-01-19 | 1999-07-30 | Fujitsu Ltd | 入出力制御装置及びアレイディスク装置 |
US6029168A (en) | 1998-01-23 | 2000-02-22 | Tricord Systems, Inc. | Decentralized file mapping in a striped network file system in a distributed computing environment |
US6173415B1 (en) | 1998-05-22 | 2001-01-09 | International Business Machines Corporation | System for scalable distributed data structure having scalable availability |
US6122754A (en) * | 1998-05-22 | 2000-09-19 | International Business Machines Corporation | Method and system for data recovery using a distributed and scalable data structure |
US6725392B1 (en) | 1999-03-03 | 2004-04-20 | Adaptec, Inc. | Controller fault recovery system for a distributed file system |
US6513093B1 (en) | 1999-08-11 | 2003-01-28 | International Business Machines Corporation | High reliability, high performance disk array storage system |
US6629199B1 (en) * | 1999-08-20 | 2003-09-30 | Emc Corporation | Digital data storage system including directory for efficiently providing formatting information for stored records and utilization of a check value for verifying that a record is from a particular storage location |
JP2001356882A (ja) * | 2000-06-13 | 2001-12-26 | Nec Corp | データ読み書き制御方法及びディスクアレイ装置並びにデータ読み書き制御用プログラムを記憶した記録媒体 |
EP1168173A3 (en) * | 2000-06-29 | 2004-09-22 | Snap Appliance, Inc. | Fault tolerant storage device with cache |
US6775792B2 (en) * | 2001-01-29 | 2004-08-10 | Snap Appliance, Inc. | Discrete mapping of parity blocks |
US6990667B2 (en) * | 2001-01-29 | 2006-01-24 | Adaptec, Inc. | Server-independent object positioning for load balancing drives and servers |
US6862692B2 (en) * | 2001-01-29 | 2005-03-01 | Adaptec, Inc. | Dynamic redistribution of parity groups |
US7054927B2 (en) * | 2001-01-29 | 2006-05-30 | Adaptec, Inc. | File system metadata describing server directory information |
US6766491B2 (en) | 2001-05-09 | 2004-07-20 | Dot Hill Systems Corp. | Parity mirroring between controllers in an active-active controller pair |
US20030037302A1 (en) * | 2001-06-24 | 2003-02-20 | Aliaksei Dzienis | Systems and methods for automatically converting document file formats |
US7168025B1 (en) * | 2001-10-11 | 2007-01-23 | Fuzzyfind Corporation | Method of and system for searching a data dictionary with fault tolerant indexing |
US7185144B2 (en) * | 2003-11-24 | 2007-02-27 | Network Appliance, Inc. | Semi-static distribution technique |
US7562230B2 (en) * | 2003-10-14 | 2009-07-14 | Intel Corporation | Data security |
CN100419700C (zh) * | 2004-02-11 | 2008-09-17 | 鸿富锦精密工业(深圳)有限公司 | 磁盘容错系统及方法 |
US7370163B2 (en) * | 2004-05-03 | 2008-05-06 | Gemini Storage | Adaptive cache engine for storage area network including systems and methods related thereto |
US20060036904A1 (en) * | 2004-08-13 | 2006-02-16 | Gemini Storage | Data replication method over a limited bandwidth network by mirroring parities |
US7457980B2 (en) * | 2004-08-13 | 2008-11-25 | Ken Qing Yang | Data replication method over a limited bandwidth network by mirroring parities |
US7321905B2 (en) | 2004-09-30 | 2008-01-22 | International Business Machines Corporation | System and method for efficient data recovery in a storage array utilizing multiple parity slopes |
US7711965B2 (en) * | 2004-10-20 | 2010-05-04 | Intel Corporation | Data security |
KR100579133B1 (ko) | 2004-12-06 | 2006-05-12 | 한국전자통신연구원 | 블록분할 디스크 어레이에서의 분산 패러티를 이용한데이터 배치 방법 및 블록분할 분산패러티 디스크어레이에서의 대형/소형 블록 읽기/쓰기 제어 방법 |
US7779294B2 (en) * | 2005-04-15 | 2010-08-17 | Intel Corporation | Power-safe disk storage apparatus, systems, and methods |
US7454668B1 (en) * | 2005-09-23 | 2008-11-18 | Emc Corporation | Techniques for data signature and protection against lost writes |
CN101361278B (zh) * | 2006-01-19 | 2012-02-01 | 富士通株式会社 | 奇偶校验位生成电路、计数电路以及计数方法 |
US7836380B2 (en) * | 2006-10-31 | 2010-11-16 | Intel Corporation | Destination indication to aid in posted write buffer loading |
US8316258B2 (en) * | 2007-05-03 | 2012-11-20 | Oracle America, Inc. | System and method for error detection in a data storage system |
JP5279785B2 (ja) * | 2010-09-17 | 2013-09-04 | 株式会社東芝 | コントローラ、記憶装置、およびプログラム |
JP6039699B2 (ja) * | 2012-07-23 | 2016-12-07 | 株式会社日立製作所 | ストレージシステム及びデータ管理方法 |
US9830220B1 (en) * | 2014-09-29 | 2017-11-28 | EMC IP Holding Company LLC | Enhanced error recovery for data storage drives |
US9672106B2 (en) | 2014-12-30 | 2017-06-06 | Nutanix, Inc. | Architecture for implementing erasure coding |
US10567009B2 (en) | 2016-12-06 | 2020-02-18 | Nutanix, Inc. | Dynamic erasure coding |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4419725A (en) * | 1980-11-14 | 1983-12-06 | Sperry Corporation | Cache/disk subsystem with tagalong copy |
US5233618A (en) * | 1990-03-02 | 1993-08-03 | Micro Technology, Inc. | Data correcting applicable to redundant arrays of independent disks |
US5124987A (en) * | 1990-04-16 | 1992-06-23 | Storage Technology Corporation | Logical track write scheduling system for a parallel disk drive array data storage subsystem |
US5375128A (en) * | 1990-10-18 | 1994-12-20 | Ibm Corporation (International Business Machines Corporation) | Fast updating of DASD arrays using selective shadow writing of parity and data blocks, tracks, or cylinders |
US5359611A (en) * | 1990-12-14 | 1994-10-25 | Dell Usa, L.P. | Method and apparatus for reducing partial write latency in redundant disk arrays |
US5274799A (en) * | 1991-01-04 | 1993-12-28 | Array Technology Corporation | Storage device array architecture with copyback cache |
JPH0820964B2 (ja) * | 1991-09-13 | 1996-03-04 | インターナショナル・ビジネス・マシーンズ・コーポレイション | メモリ制御装置および方法 |
US5333305A (en) * | 1991-12-27 | 1994-07-26 | Compaq Computer Corporation | Method for improving partial stripe write performance in disk array subsystems |
US5341381A (en) * | 1992-01-21 | 1994-08-23 | Tandem Computers, Incorporated | Redundant array parity caching system |
US5410667A (en) * | 1992-04-17 | 1995-04-25 | Storage Technology Corporation | Data record copy system for a disk drive array data storage subsystem |
JP2810593B2 (ja) * | 1992-05-13 | 1998-10-15 | 三菱電機株式会社 | 記憶装置 |
US5309451A (en) * | 1992-08-12 | 1994-05-03 | Digital Equipment Corporation | Data and parity prefetching for redundant arrays of disk drives |
US5315602A (en) * | 1992-08-12 | 1994-05-24 | Digital Equipment Corporation | Optimized stripe detection for redundant arrays of disk drives |
JP3183719B2 (ja) * | 1992-08-26 | 2001-07-09 | 三菱電機株式会社 | アレイ型記録装置 |
US5392244A (en) * | 1993-08-19 | 1995-02-21 | Hewlett-Packard Company | Memory systems with data storage redundancy management |
-
1994
- 1994-05-05 US US08/238,769 patent/US5522032A/en not_active Expired - Lifetime
-
1995
- 1995-02-13 JP JP7023667A patent/JP2902970B2/ja not_active Expired - Lifetime
- 1995-04-07 EP EP95105237A patent/EP0681238B1/en not_active Expired - Lifetime
- 1995-04-07 DE DE69512459T patent/DE69512459T2/de not_active Expired - Lifetime
- 1995-04-14 CN CN95103824A patent/CN1097774C/zh not_active Expired - Lifetime
- 1995-05-04 KR KR1019950010951A patent/KR100188485B1/ko not_active IP Right Cessation
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100337209C (zh) * | 2002-11-01 | 2007-09-12 | 国际商业机器公司 | 容忍磁盘阵列中多个相关或任意双盘故障的方法和装置 |
CN100359478C (zh) * | 2003-06-28 | 2008-01-02 | 国际商业机器公司 | 对多倍冗余存储器执行安全写操作的装置和方法 |
CN101566931B (zh) * | 2003-08-14 | 2011-05-18 | 克姆佩棱特科技公司 | 虚拟磁盘驱动系统和方法 |
CN100412806C (zh) * | 2004-12-14 | 2008-08-20 | 富士通株式会社 | 存贮控制器及存贮控制方法 |
CN101084486B (zh) * | 2004-12-23 | 2010-12-29 | 英特尔公司 | 用于校验子生成以及数据恢复的方法和系统 |
CN112119380A (zh) * | 2018-05-18 | 2020-12-22 | 微软技术许可有限责任公司 | 带有旁路的奇偶校验记录 |
CN112119380B (zh) * | 2018-05-18 | 2024-03-22 | 微软技术许可有限责任公司 | 带有旁路的奇偶校验记录 |
CN112947847A (zh) * | 2019-12-11 | 2021-06-11 | 伊姆西Ip控股有限责任公司 | 用于存储数据的方法、设备和计算机程序产品 |
CN112947847B (zh) * | 2019-12-11 | 2023-12-29 | 伊姆西Ip控股有限责任公司 | 用于存储数据的方法、设备和计算机程序产品 |
CN111880963A (zh) * | 2020-07-29 | 2020-11-03 | 北京浪潮数据技术有限公司 | 一种数据重构方法、装置、设备及存储介质 |
CN111880963B (zh) * | 2020-07-29 | 2022-06-10 | 北京浪潮数据技术有限公司 | 一种数据重构方法、装置、设备及存储介质 |
WO2022179377A1 (zh) * | 2021-02-25 | 2022-09-01 | 浪潮电子信息产业股份有限公司 | 一种raid 5校验值的更新方法、装置和介质 |
CN117785026A (zh) * | 2023-11-17 | 2024-03-29 | 青海师范大学 | 一种基于ssd raid-5系统高效写的缓存方法 |
CN117785026B (zh) * | 2023-11-17 | 2024-05-17 | 青海师范大学 | 一种基于ssd raid-5系统高效写的缓存方法 |
Also Published As
Publication number | Publication date |
---|---|
US5522032A (en) | 1996-05-28 |
CN1097774C (zh) | 2003-01-01 |
KR100188485B1 (ko) | 1999-06-01 |
JP2902970B2 (ja) | 1999-06-07 |
DE69512459T2 (de) | 2000-05-04 |
EP0681238A1 (en) | 1995-11-08 |
JPH07306759A (ja) | 1995-11-21 |
DE69512459D1 (de) | 1999-11-04 |
EP0681238B1 (en) | 1999-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1097774C (zh) | 带有空闲块奇偶校验高速缓存的第五级raid | |
US5388013A (en) | Data storage format conversion method and system, data access method and access control apparatus | |
KR100263524B1 (ko) | 알에이아이디 제어기 및 데이터 기록 방법 | |
US5375128A (en) | Fast updating of DASD arrays using selective shadow writing of parity and data blocks, tracks, or cylinders | |
US5551003A (en) | System for managing log structured array (LSA) of DASDS by managing segment space availability and reclaiming regions of segments using garbage collection procedure | |
US5557770A (en) | Disk storage apparatus and method for converting random writes to sequential writes while retaining physical clustering on disk | |
US5463765A (en) | Disk array system, data writing method thereof, and fault recovering method | |
CA1288870C (en) | Method of handling disk sector errors in dasd cache | |
US5764880A (en) | Method and system for rebuilding log-structured arrays | |
US6901479B2 (en) | Disk array apparatus for and method of expanding storage capacity dynamically | |
EP0493984B1 (en) | Storage device array architecture with copyback cache | |
US6742081B2 (en) | Data storage array employing block checksums and dynamic striping | |
US6119209A (en) | Backup directory for a write cache | |
EP0612015A1 (en) | Improved disk array system having special parity groups for data blocks with high update activity | |
JP2004213647A (ja) | データ記憶装置およびシステム用のログ構造の書込みキャッシュ | |
US20020069322A1 (en) | Advanced read cache management | |
US6286080B1 (en) | Advanced read cache emulation | |
WO2002029539A2 (en) | A data storage subsystem including a storage disk array employing dynamic data striping | |
US6349359B1 (en) | Method and apparatus for maintaining data consistency in raid | |
CN1527973A (zh) | 非易失性高速缓存 | |
US6363457B1 (en) | Method and system for non-disruptive addition and deletion of logical devices | |
JP2003196032A (ja) | ストレージ装置のライトキャッシュ制御方法及びストレージ装置 | |
CN116974458A (zh) | 用于处理数据的方法、电子设备和计算机程序产品 | |
CN116627856A (zh) | 一种实现内存地址映射的方法、装置及设备 | |
KR19980047273A (ko) | 레이드 레벨 5 시스템에서 캐쉬 관리 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C06 | Publication | ||
PB01 | Publication | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CX01 | Expiry of patent term |
Expiration termination date: 20150414 Granted publication date: 20030101 |