CN101006431A - 执行容错磁盘阵列的预先重建 - Google Patents

执行容错磁盘阵列的预先重建 Download PDF

Info

Publication number
CN101006431A
CN101006431A CNA2005800258703A CN200580025870A CN101006431A CN 101006431 A CN101006431 A CN 101006431A CN A2005800258703 A CNA2005800258703 A CN A2005800258703A CN 200580025870 A CN200580025870 A CN 200580025870A CN 101006431 A CN101006431 A CN 101006431A
Authority
CN
China
Prior art keywords
disks
data
redundant array
disk
array
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
Application number
CNA2005800258703A
Other languages
English (en)
Other versions
CN100561442C (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.)
Seagate Cloud Systems Corp
Original Assignee
Dot Hill Systems 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 Dot Hill Systems Corp filed Critical Dot Hill Systems Corp
Publication of CN101006431A publication Critical patent/CN101006431A/zh
Application granted granted Critical
Publication of CN100561442C publication Critical patent/CN100561442C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/008Reliability or availability analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/004Error avoidance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/1084Degraded mode, e.g. caused by single or multiple storage removals or disk failures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/1092Rebuilding, e.g. when physically replacing a failing disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • G06F11/1662Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit the resynchronized component or unit being a persistent storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1035Keeping track, i.e. keeping track of data and parity changes

Abstract

本发明公开一种冗余磁盘阵列(RAID)控制器,其在阵列仍容错时执行磁盘的冗余阵列的预先重建。控制器接收代表错误临界值的用户输入,当阵列中的磁盘(关键磁盘)超出该错误临界值时,则控制器复制关键磁盘数据至备用磁盘。在复制完成后,在阵列中控制器以备用磁盘取代关键磁盘,在复制期间,控制器保持关键磁盘作为部分的冗余阵列,即,持续地读取与写入关键磁盘以响应用户I/O请求。故阵列在预先重建期间仍容错,在一实施例中,控制器自动执行重建而无用户介入,若关键磁盘在复制期间失效,控制器自复制停止处开始执行传统的重建至备用磁盘。

Description

执行容错磁盘阵列的预先重建
对相关申请的交叉引用
本申请主张下列美国临时申请的优先权,该美国临时申请的所有内容与目的在此通过参考并入。
本申请与以下的美国申请相关:
     申请号(文档号)   申请日         发明名称
60/581556(CHAP0119)   6/21/04  用于冗余磁盘阵列的预先重建
技术领域
本发明通常涉及冗余磁盘阵列(RAID)控制器,更确切地说,涉及提高在其所控制的储存装置的阵列上的数据的可用性。
背景技术
这些年来计算机系统已包括了能够分割(stripe)多重物理磁盘的整个群组或阵列的数据的磁盘控制器,以致该控制器为计算机操作系统提出单逻辑磁盘。为显示分割的符号,假设每个四个物理磁盘的分割阵列具有100GB的容量,且该阵列分割尺寸,或块尺寸为八个扇区,或4KB。在此例中,在该第一物理磁盘上,该控制器分别将该第一、第五、第九等逻辑磁盘的4KB块存储在八个扇区的第一、第二、第三群组等上;在该第二物理磁盘上,该控制器储存分别将该第二、第六、第十等逻辑磁盘的4KB块存储在八个扇区的第一、第二、第三群组等上;在该第三物理磁盘上,该控制器储存分别将该第三、第七、第十一等逻辑磁盘的4KB块存储在八个扇区的第一、第二、第三群组等上;在该第四物理磁盘上,该控制器储存分别将该第四、第八、第十二等逻辑磁盘的4KB块在八个扇区的第一、第二、第三群组等上。
分割的好处为同最大容量的个别物理磁盘相比,其能够提供较大储存容量的逻辑磁盘。在上述例子中,结果为具有400GB的储存容量的逻辑磁盘。
或许分割的一个更重要的好处为分割阵列能提供改善性能。在随机I/O环境中的性能改善-例如多用户文件服务器、数据库或交易处理服务器中-主要通过选择分割尺寸而达成,该分割尺寸使得来自服务器的典型读取I/O请求实质上仅请求将存取的阵列中的一个磁盘。接着,在阵列中的每一磁盘可同时用于每个不同的柱面(cylinder)以满足不同的I/O请求,因此利用了该阵列的多个轴。在增强的数据吞吐量环境中,例如视频点播服务器中,通过选择得到典型读取I/O请求在该阵列中所有磁盘上延伸的分割尺寸,以致该控制器可并行地读取磁盘且保持所有磁盘用于相同柱面,而大致实现该性能改善。在此实施例中,在阵列中各种磁盘的轴通常为同步的。
然而,磁盘的分割阵列的问题是,整个该阵列的可靠性分别地低于每一单磁盘的可靠性。这是由于假使储存在磁盘上的数据因磁盘的失效变得不可用,则自计算机的观点看来,逻辑磁盘的所有数据是不可用的,由于对控制器来说,不接受仅返回部分数据,故磁盘的可靠性通常根据平均故障间隔时间(MTBF)测量。当于RAID0阵列中的磁盘数目增加时,MTBF减少,可能减少至许多应用无法接受的程度。
为解决此问题,所以向磁盘阵列中引入冗余的概念。在磁盘的冗余阵列中,额外的、或冗余的磁盘被加入至该阵列,该阵列不增加该逻辑磁盘的储存容量,而是反而允许冗余数据储存在阵列的一个或多个磁盘上,使得即使阵列中的这些磁盘的一个失效,控制器可仍提供逻辑磁盘的请求数据至计算机。因此,当阵列处于冗余状态中时,即,当阵列的这些磁盘无一失效时,由于可容许磁盘失效且仍提供用户数据的原因,该阵列为容错的。冗余数据的主要形式为镜像数据与奇偶校验数据,在许多情况中,磁盘的冗余阵列的MTBF可大于单一且非冗余磁盘的MTBF。
RAID为冗余磁盘阵列(Redundant Array of Inexpensive Disk)的缩写,此名称于1987年由加州大学柏克莱分校的Patterson、Gibson与Katz发表于他们标题为“冗余磁盘阵列(RAID)的情形”的论文中。1980年代晚期见证RAID系统的大量应用,RAID俨然已变成用于服务器级的运算环境的大量储存的主要形式,最初的RAID论文定义磁盘的冗余阵列的五种不同形式,分别称为RAID级别1到5。在其后也发展出其它形式,且出现称为RAID级别0的分割阵列。在此技术中,各种RAID级别与其相关的性能与可靠性特征为大众所熟知,但还将简短地于此讨论以便于了解通过本发明所解决的问题。
RAID级别1采用磁盘镜像,RAID1阵列包括一对磁盘,在每一该计算机发出写入指令至RAID1逻辑磁盘的RAID控制器时刻,该RAID控制器写入该数据至该对两个磁盘以维持该对磁盘上的数据的镜像复制。在每一该计算机发出读取指令至RAID1逻辑磁盘的RAID控制器的时刻,该RAID控制器仅读取这些磁盘之一。假使RAID1阵列中的一个磁盘失效的话,数据可自阵列中的另一个磁盘读取。RAID1的延伸为RAID10,其包括分割镜像磁盘对的阵列,RAID10提供RAID1的可靠性的优势以及RAID0的性能的优势。
RAID级别4采用奇偶校验分割,RAID4阵列需要至少三个物理磁盘,举例来说,假设具有4KB分割尺寸的四个磁盘RAID4,这些磁盘中的三个为数据磁盘且第四个磁盘为奇偶校验磁盘。在此例中,在该第一数据磁盘上,该控制器分别将八个扇区的该第一、第四、第七等逻辑磁盘的4KB块存储在第一、第二、第三群组等上;在该第二数据磁盘上,该控制器分别将该第二、第五、第八等逻辑磁盘的4KB块存储八个扇区的在第一、第二、第三群组等上;在该第三数据磁盘上,该控制器分别将该第三、第六、第九等逻辑磁盘的4KB块存储在八个扇区的第一、第二、第三群组等上。该控制器将三个数据磁盘的第一4KB块的奇偶校验(二进制XOR,或异或)存储于奇偶校验磁盘的第一4KB块上,三个数据磁盘的第二4KB块的二进制XOR存储于奇偶校验磁盘的第二4KB块上,三个数据磁盘的第三4KB块的二进制XOR存储于奇偶校验磁盘的第三4KB块上,等等。因此,控制器写入一个或多个数据磁盘的同时,控制器必须在所有数据磁盘的相关块中计算所有数据的奇偶校验,并且写入该奇偶校验至该奇偶校验磁盘的相关块。当该控制器读取数据时,其仅自该数据磁盘读取,而非自奇偶校验磁盘读取。
假使在RAID4阵列中这些数据磁盘之一失效,在失效的数据磁盘上的数据可通过从该剩余数据磁盘以及该奇偶校验磁盘读取重建,且同时二进制异或该数据。此为用以利用磁盘的奇偶校验冗余阵列的二进制XOR的特性,此使得即便当数据磁盘已失效时,RAID控制器能返回用户数据至计算机。
除了不具有专用奇偶校验磁盘外,RAID级别5相似于RAID级别4,相反地,对每一分割来说,在阵列中奇偶校验磁盘位不同磁盘,以致奇偶校验分布于所有磁盘。特别地,对每一沿阵列的分割,旋转该奇偶校验磁盘,RAID级别5于随机I/O环境中通过限制奇偶校验驱动的写入瓶颈而改善写入性能。
如上所述,当在冗余阵列中的磁盘失效时,该阵列不再为容错的,即,该阵列不再容许第二磁盘的失效。此规则的例外为提供多重冗余的RAID级别,如相似于RAID5的RAID级别6提供二维奇偶校验,以致RAID6阵列可容许两个磁盘失效且持续提供用户数据。即,具有一个失效磁盘的RAID6阵列虽不为全冗余但仍为容错,一旦在RAID6阵列中的两磁盘已失效,则该阵列即不再容错。
为将磁盘的冗余阵列从非容错(或非全冗余)状态修复至容错(或全冗余)状态,必须重建该阵列。特别是,需重建失效磁盘上的数据且将其写入新磁盘,以包括在该阵列中。对奇偶校验冗余阵列来说,重建失效磁盘的该数据包括,自剩余磁盘读取数据且同时二进制异或化该数据。对镜像冗余阵列来说,重建失效磁盘的数据包括仅自该失效磁盘的镜像磁盘读取数据。一旦RAID控制器重建该数据,写入其至该新磁盘,且逻辑地以该新磁盘置换该失效磁盘至该阵列,修复该阵列为容错(或全冗余),即重建该阵列。
当发生磁盘失效时,大部分的RAID控制器以某些方式通知系统管理员,使该管理员可重建该冗余阵列,这需要管理员物理地以新磁盘换出失效磁盘,且指示RAID控制器执行该重建。某些RAID控制器用来降低时间量,该时间量为通过自动地执行阵列的重建以响应磁盘失效,使得磁盘的冗余阵列为非容错(或非全冗余)所需的时间。一般来说,当该管理员刚设定系统的冗余阵列时,该管理员设定连接至该RAID控制器的一个或多个备用磁盘,使得当发生磁盘失效时,RAID控制器可自动地当成新磁盘使用于阵列。
其它RAID控制器可通过检测磁盘所发生的非严重错误而预测在阵列中的磁盘将失效,也就是,不造成磁盘失效。该RAID控制器通知该系统管理员系统正发生错误,使得管理员可开始阵列的重建。然而,由于重建从该阵列移除了错误发生磁盘而执行该重建,在重建期间该阵列为非容错(或非全冗余的),若在重建期间发生阵列的另一磁盘的失效,则情况将更为严重。
因此,需要一种RAID控制器,其通过执行磁盘的重建,而防止具有预期将失效的磁盘的阵列进入非容错状态。而不是在该重建期间,使阵列停留在容错(或全冗余)状态的方式。
发明内容
本发明的一个目的在于提供一种在冗余阵列仍容错时执行磁盘的冗余阵列的预先重建的方法。该方法包括依据冗余阵列中的这些磁盘之一判断错误的数目是否已超出错误临界值。该方法还包括从这些磁盘之一复制数据到备用磁盘,以作为判断结果为该错误临界值已超过的响应。该方法还包括在复制完成后,以备用磁盘置换在冗余阵列中的这些磁盘之一。
本发明的另一目的为提供一种RAID控制器,其用以在该阵列仍为容错时,执行连接该RAID控制器的磁盘的冗余阵列的预先重建。该RAID控制器包括用以储存错误临界值的存储器,以及连接该存储器的微处理器。该微处理器通过冗余阵列中的这些磁盘之一判断错误的数目是否超出错误临界值,该微处理器也从这些磁盘之一复制数据到备用磁盘,以作为通过冗余阵列中的这些磁盘之一判断错误的数目已超出错误临界值的响应。在完成数据复制之后,该微处理器还以该备用磁盘置换冗余阵列的这些磁盘之一。
本发明的再一目的为提供一种方法,其在该冗余阵列仍为容错时,执行磁盘的冗余阵列的预先重建。该方法包括通过冗余阵列中的这些磁盘之一判断错误的数目是否已超出错误临界值。该方法还包括自冗余阵列中的这些磁盘的第二磁盘读取数据,且写入数据至备用磁盘,以作为判断结果为该错误临界值已超出的响应。冗余阵列中的这些磁盘的第二磁盘的数据为这些磁盘之一的数据的镜像复制,该方法还包括在完成读取与写入之后,以备用磁盘置换冗余阵列中的这些磁盘之一。该方法还包括写入第二数据至冗余阵列的这些磁盘之一,以在执行读取与写入的同时,响应包括该第二数据的用户写入请求,因此维持了冗余阵列的容错。
本发明的又一个目的为提供一种方法,其当冗余阵列仍为容错时,用以执行磁盘的冗余阵列的预先重建。该方法包括通过冗余阵列中的这些磁盘之一判断错误的数目是否已超出错误临界值。该方法还包括自从冗余阵列中的其他磁盘的两个或多个读取的第二数据而产生这些磁盘之一的数据,并且写入该已产生的数据至备用磁盘,以作为判断结果为该错误临界值已超过的响应。该方法还包括在完成该产生与写入之后,以该备用磁盘置换冗余阵列中的这些磁盘之一。该方法还包括写入第三数据至冗余阵列中的这些磁盘之一,以在执行该产生与写入的同时,响应包括该第三数据的用户写入请求,因此维持该冗余阵列的容错。
本发明的再一个目的为提供一种方法,其当冗余阵列仍为容错时,用以执行磁盘的冗余阵列的预先重建。该方法包括接收指定在冗余阵列中的这些阵列之一的用户输入,该方法还包括从这些磁盘之一复制数据至备用磁盘,以作为接收用户输入的响应,该方法还包括在完成复制后,以备用磁盘置换冗余阵列中的这些磁盘之一。
本发明的一个优点为在执行该重建的同时,通过不将该阵列置于非容错状态,而降低磁盘的冗余阵列的数据损失的寿命,即在预先重建期间保持阵列的非容错状态。另一方面来说,在预先重建期间,冗余阵列可容许无数据损失的磁盘失效,而在公知重建期间阵列无法容许无数据损失的磁盘失效。此外,相对于奇偶校验冗余阵列来说,和公知的从阵列中的其它磁盘失效磁盘的重建相比,从关键磁盘复制数据至备用磁盘通常花费较少时间,由于该复制涉及仅一个磁盘的读取而非多重磁盘以及异或操作的读取。最后,在一个实施例中,通过自动地执行该预先重建以响应错误临界值的达成,因为对于用户而言接收到通知、决定如何进行,及初始预先重建的时间受限的原因,关键磁盘为部份阵列的时间降低。此外,也降低了用户错误的机会。
附图说明
图1为依据本发明包括RAID控制器的计算机网络。
图2A与图2B为依据本发明示出图1的RAID控制器的操作以执行冗余阵列的预先重建的流程图。
图3A与图3B为依据本发明的替代实施例示出图1的RAID控制器的操作以执行冗余阵列的预先重建的流程图。
图4A与图4B为依据本发明的替代实施例示出图1的RAID控制器的操作以执行冗余阵列的预先重建的流程图。
图5为根据本发明的替代实施例包括RAID控制器的计算机系统。
图6为根据本发明的替代实施例软件RAID控制器。
具体实施方式
现参考图1,显示根据本发明包括RAID控制器102的计算机网络100。网络100包括连接RAID控制器102与连接RAID控制器102的多个磁盘142,或磁盘驱动142的一个或多个主计算机104。
在一个实施例中,磁盘142可包括但不限于硬盘驱动器。然而,磁盘142可包括但不限于任何永久储存装置,例如磁带机或光学驱动装置。磁盘142提供储存装置传输介质112而连接RAID控制器,该储存装置传输介质112与执行于其上的协议可包括但不限于光纤通道(FibreChannel,FC)、先进技术附件(ATA)、串行先进技术附件(SATA)、小型计算机系统接口(SCSI)、串行连接SCSI(SAS)、HIPPI、企业系统连接(ESCON)、光纤通道连接(FICON)、以太网络(Ethernet)、无线宽频(Infiniband)或上述相关的组合。磁盘142与RAID控制器102可使用堆叠协议通信,例如光纤通道或内部网络SCSI(iSCSI)上的SCSI。
磁盘142分组为冗余阵列114,图1示出三个冗余阵列114,其中一个包括四个磁盘142、另一个包括三个磁盘142,且一个包括六个磁盘142。冗余阵列114根据公知的RAID级别的任一而设定,例如RAID级别1、2、3、4、5、6、10或50。更进一步来说,本发明并非仅限于目前公知的RAID级别,同时根据接下来公开的RAID级别,也可采用磁盘的冗余阵列114。同样地,本发明也可采用非冗余阵列,例如RAID0阵列。最后,本发明还采用冗余阵列,不论是单冗余(即,仅能容许单一磁盘失效的阵列),或是多重冗余(即,能容许多重磁盘失效的阵列),例如RAID6阵列。
对于主计算机104来说,RAID控制器所呈现的磁盘142的冗余阵列114的多个磁盘142被视为单逻辑磁盘。当主计算机114请求RAID控制器102写入用户数据至该逻辑磁盘时,该RAID控制器102写入用户数据至逻辑磁盘,该RAID控制器102写入该用户数据至该冗余阵列的这些磁盘142的一个或多个,且一个写入冗余数据至冗余阵列114中的一个或多个其它磁盘。该冗余数据通常为用户数据的镜像复制,或根据各种RAID级别依某些方式自该用户数据计算出的奇偶校验数据。在用户数据与冗余数据已写入至冗余阵列114后,即使冗余阵列114中的这些磁盘142之一已失效,除了用户数据外尚写入冗余数据使得当主计算机114请求用户数据时,RAID控制器102接着为用户提供数据。在基于镜像的冗余阵列114的情况中,该RAID控制器102仅从该失效磁盘142的镜像磁盘142读取该失效磁盘142的数据。在基于奇偶校验的冗余阵列114的情况中,该RAID控制器102读取储存在非失效磁盘142上的数据,且计算数据的奇偶校验以获得该失效磁盘142的数据。
除此之外,某些磁盘142设定为备用磁盘116,图1出示连接该RAID控制器102的两个备用磁盘116。不论是在用以响应冗余阵列114中的磁盘142的失效的公知重建的情况中,或是在用以响应非严重磁盘142错误的预先重建的情况中,备用磁盘116不是部份的冗余阵列114的一个磁盘,而是对于RAID控制器102来说可用以自动地取代冗余阵列中114的一个磁盘142。
该主计算机104可包括但不限于工作站、个人计算机、笔记本计算机或个人数字助理(PDA)、文件服务器、打印服务器、企业服务器、邮件服务器、网络服务器、数据库服务器、部门服务器等等。在图1的实施例中,主计算机104提供主传输介质108连接该RAID控制器。该主传输介质108以及连接于其上的协议可包括但不限于光纤通道、以太网络、无线宽频、TCP/IP、小型计算机系统接口、HIPPI、令牌环(Token Ring)、Arcnet、FDDI、LocalTalk、企业系统连接、光纤通道连接、ATM、SAS、SATA与其它等,以及上述相关的组合。RAID控制器102自主计算机104经由主传输介质108接收I/O请求,以在主计算机104与磁盘142的该冗余阵列114间经由主传输介质108转换用户数据。该主传输介质108可为包括链接、开关、路由器、集线器、指示器等的部分网络。
RAID控制器102包括存储器124、微处理器126、管理控制器128、缓冲存储器132、总线桥接器134、主接口适配器136以及储存装置接口适配器138。如图所示,在一实施例中,该主接口适配器136、储存装置接口适配器138与微处理器126的每一个通过相关局域总线而连接该总线桥接器。在一实施例中,该局域总线包括高速局域总线,其包括但不限于PCI、PCI-X、CompactPCI、或PCI高速总线。在一实施例中,总线桥接器134还包括用以控制缓冲存储器132的存储器控制器。在一实施例中,该缓冲器132与该总线桥接器134通过双倍数据速率(DDR)存储总线而连接。该总线桥接器使得微处理器126、主接口适配器136与储存装置接口适配器138的每一个能相互通信且能传输数据至且从缓冲器132。在一实施例中,该微处理器126包括Pentium III处理器,且该处理器通过第二总线桥接器连接该局域总线,此种总线桥接器通常是指北桥。
该微处理器126还连接存储器124,该存储器124用以储存程序指令或通过微处理器126执行的数据。特别地,该存储器124储关键盘错误临界值122,或错误临界值122,用以执行在此所述的冗余阵列114的预先重建。在一实施例中,该存储器124储存特定用于连接该RAID控制器102的这些磁盘142的每一个的错误临界值122。在一实施例中,用户指定该错误临界值122。在另一实施例中,该错误临界值122是预定的。即使图1显示储存在直接连接该微处理器126的存储器124中的错误临界122,该错误临界值122可储存在可通过RAID控制器102存取的任何存储器中,例如缓冲器132、连接管理控制器128或在这些磁盘142上的存储器。
在一实施例中,管理控制器128包括Advanced Micro DevicesElanTM微控制器,且其通过第三总线桥接器连接局域总线,此种总线桥接器通常是指南桥。在一实施例中,该管理控制器128还连接用以储存程序指令与通过管理控制器128执行的数据的存储器。该管理控制器128连接用于执行相关于用户的输入与输出的管理传输介质106。该管理传输介质106可包括但不限于RS-232、以太网络、光纤通道与无限宽频等。
该管理控制器128接收用于设定与管理该RAID控制器102的用户输入,且特别可接收该错误临界值122。在另一实施例中,通过用户经由该主计算机104提供该错误临界值122。在一实施例中,该管理控制器128经由例如RS-232接口的串行接口接收来自用户的输入。在一实施例中,该管理控制器128经由以太网络接口接收用户输入,且提供网络的设定与管理程序。管理控制器除了其设定与管理功能外,管理控制器128还执行监控功能,例如监控温度、状态以及RAID控制器102的关键元件的情形,例如这些磁盘142的风扇或电源。
该储存装置接口适配器138连接该储存装置传输介质112。在一实施例中,该储存装置接口适配器138包括用以作为两个储存装置传输介质112的接口的两个端口。主接口适配器136连接主传输介质108。在一实施例中,该主接口适配器136包括用以与两个主传输介质108接口的两个端口。该储存装置接口适配器138以该储存装置传输介质112与该RAID控制器102接口,该储存装置接口适配器138执行需启动冗余阵列114的协议,且特别地包含该冗余阵列114的这些磁盘,能与该RAID控制器102通信。举例来说,在一实施例中,该储存装置接口适配器138包括JNIC-1560Milano双重通道光纤通道到由JNI股份有限公司所开发的PCI-X控制器,以执行用以于这些磁盘142与RAID控制器102间传输光纤通道分组的光纤通道协议。在另一实施例中,该储存装置接口适配器138包括ISP2312双重通道光纤通道到QLogic股份有限公司所生产的PCI-X控制器。该储存装置接口适配器138包括用以在该储存装置传输介质112与该缓冲器132间经由总线桥接器134直接地传输数据的直接存储存取控制器(DMAC)。
主接口适配器136用该主传输介质108与该RAID控制器102的接口,该主接口适配器136执行需启动主计算机104以与RAID控制器102通信的该协议。举例来说,在一实施例中,该主接口适配器136包括JNIC-1560Milano双重通道光纤通道PCI-X控制器,该控制器执行用来于主计算机104与RAID控制器102间传输光纤通道分组的光纤通道协议,且在另一实施例中,该主接口适配器136包括QLogic ISP2312。该主接口适配器136包括于主传输介质108与该缓冲器132间经由总线桥接器134用以直接地传输数据的直接存储器存取控制器(DMAC)。
该微处理器126接收来自主接口适配器136的主计算机104I/O请求且处理这些请求。处理这些请求可包括许多功能,举例来说,该逻辑块数目与将被传输的数据块的数目并不符合适当的物理块数目以及包含该冗余阵列114的磁盘142上的块数目,其中这些数据块在将写入数据的冗余阵列114的I/O请求中指定。因此,在主I/O请求中指定的该逻辑块数目需转换为适当的物理块数目、块数目以及在RAID控制器102与包含冗余阵列的磁盘142间执行一个或多个数据传输中使用的磁盘142。此种转换功能通过微处理器126执行。在一实施例中,该微处理器126依据公知的RAID技术而执行该转换。在执行该转换后,该微处理器126编程该储存装置接口适配器138以执行磁盘142与缓冲器132间的该数据传输。此外,该微处理器126编程该主接口适配器136以执行主计算机104与缓冲器132间的该数据传输。因此,当处理主I/O请求以从计算机104写入数据至冗余阵列114时,该微处理器126编程该主接口转换器136以从该主计算机104传输数据至该缓冲器132;在数据接收至该缓冲器132后,该微处理器编程该储存装置接口适配器138以从该缓冲器132传输数据至转换的适当的磁盘142的物理块数目,该磁盘142包括冗余阵列114。相反地,当处理主I/O请求而从冗余阵列114读取数据至主计算机104时,该微处理器126编程该储存装置接口适配器138以从转换的适当的磁盘142的物理块数目而传输数据至缓冲器132,该磁盘142包括冗余阵列114。在数据接收至该缓冲器132后,该微处理器126编程该主接口适配器136以自该缓冲器132传输数据至主计算机104。该微处理器126还执行管理部份的缓冲器132的配置的功能,该缓冲器用以执行数据传输。在一实施例中,处理器126还如同高速缓冲存储器般管理该缓冲器132,该高速缓冲存储器用以高速缓冲存储缓冲器132中缓冲的部分数据,以在冗余阵列114与主计算机104间根据公知高速缓冲技术而改善I/O性能。在一实施例中,在如同冗余数据采用的奇偶校验数据的特定RAID级别中,举RAID级别5为例,该微处理器126执行所需数据的异或操作。在一实施例中,该微处理器126编程给定的异或电路以在用户数据上执行异或操作,而产生冗余奇偶校验数据。
在一实施例中,该微处理器、缓冲器132、总线桥接器134,以及管理控制器128包括在第一电路板中,该电路板提供局域总线背板而连接包括主接口适配器136与储存装置接口缓冲器138的第二电路板。在另一实施例中,该管理控制器128包括在分离的电路板上,而不是包括RAID控制器102的其它元件的电路板。在一实施例中,该局域总线背板是无源且可热插拔的。
显示于图1的该RAID控制器102可例如为连接于该主计算机104的独立的RAID控制器,以提供网络附属储存(NAS)或作为部分的储存区域网络(SAN)。然而,本发明并不限于独立的RAID控制器。相反地,该RAID控制器102可使用其它方式连接于该主计算机104,这些方式包括但不限于图5与图6示出的替代实施例。
较佳地,该RAID控制器配置以执行具有可能即将失效的磁盘142的冗余阵列114的预先重建,而在冗余阵列114仍为容错时执行该重建,即,当在冗余阵列114中仍包括且操作即将失效的磁盘时。根据一实施例,一般说来,预先重建包括RAID控制器102,该控制器102判断冗余阵列114(该“关键磁盘”)中的磁盘142之一具有失效的可能性,此可能性超出基于错误临界值的用户定义的临界值,以响应从关键磁盘142复制数据至备用磁盘116,且在完成复制后,在冗余阵列114中以该备用磁盘116置换该关键磁盘142。在RAID控制器102从该关键磁盘142复制数据至该备用磁盘116时,RAID控制器102持续写入用户数据至该关键磁盘以响应用户I/O请求。假使用户数据写入至备用磁盘116的位址,该位址已经复制为来自该关键磁盘142(例如,低于高水位标志(water mark)),该RAID控制器102也写入用户数据至该备用磁盘116。
以下参考图2,其显示根据本发明示出图1的RAID控制器102的操作以执行冗余阵列114的预先重建的流程图,流程开始于方块202。
在方块202中,用户配置磁盘142的冗余阵列114以及图1的至少一个备用磁盘116。在一实施例中,配置该冗余阵列114包括指定该冗余阵列114的RAID级别以及磁盘142的数目及/或冗余阵列114的储存容量。在一实施例中,配置至少一个备用磁盘116包括对RAID控制器指定备用磁盘116的数目,使其从可用磁盘142来重建冗余阵列114。在一实施例中,每一备用磁盘116为特别的冗余阵列114而特定地配置,同时在另一实施例中,该备用磁盘116约略地配置以用于任何需要备用磁盘116的冗余阵列114中,流程进行到方块204。
在方块204中,用户指定图1的错误临界值122,且该RAID控制器102储存该错误临界值122。在一实施例中,关键错误为由于介质错误引起的可更正错误或不可更正错误。可更正为当企图读取或写入其介质时,该磁盘所遭受的错误,但此错误是该磁盘142可更正的,例如通过重试该操作或重新映射导致错误致的扇区到另一扇区,例如磁盘142的介质上的备用扇区。在一实施例中,该磁盘142通过返回定义于SCSI规范中的确认情况CHECK CONDITION状态与恢复错误RECOVERRED ERROR(0x01)的SCSI感测钥(sense key),而报告可更正错误。由于介质错误的不可更正错误是当企图读取或写入数据至其介质时,该磁盘所遭受的且磁盘142无法更正的错误。在一实施例中,该磁盘142通过返回确认情况CHECK CONDITION状态与中型错误MEDIUM ERROR(0x03)的SCSI感测钥,而报告可更正错误。一般说来,该RAID控制器102能够通过重新映射对导致错误的该扇区而更正缘于介质错误的不可更正错误,可通过明确地指示该磁盘142重新映射到该扇区,或是通过RAID控制器102本身于该磁盘142上保留备用扇区,且使用保留的备用扇区而执行该重新映射。通过例如显示磁盘142可报告关键错误的方法的例示,而给定该SCSI错误码,然而,本发明并不限于特定磁盘142协议或报告关键错误的方式,但可被采用于各种协议中。在一实施例中,错误临界值122可包含多个错误临界值的结合,举例来说,用户可指定用于可更正错误的数目的临界值122以及用于由于介质错误的不可更正错误的数目的另外临界值122,下面参考方块212进行描述。流程进行至方块206。
在方块206中,该RAID控制器102发出读取与写入命令至冗余阵列114中的该磁盘142,以响应来自主计算机104的I/O请求。也就是说,该RAID控制器102对冗余阵列114执行正常操作。流程进行至方块208。
在方块208中,在RAID控制器102正对冗余阵列114执行正常操作时,该RAID控制器102还维持响应发出至该磁盘142的该读取与写入命令所产生的关键错误的数目的计数。在一实施例中,RAID控制器102维持可更正错误,以及缘于介质错误通过该磁盘142报告的不可更正错误的另外计数。除此之外,在非活动周期期间,例如当冗余阵列114的磁盘142没有正在读取或写入,以响应用户I/O请求时,考虑关键错误计数,该RAID控制器102轮询每一磁盘142关于关键错误数目的信息。大多数磁盘维持工业标准的自我检测、分析与报告技术(SMART)数据,该数据包括关键错误计数。在一实施例中,轮询这些磁盘的错误数据包括轮询磁盘的SMART数据。流程进行至方块212。
在方块212中,在冗余阵列114中该RAID控制器102判断称为关键磁盘142的磁盘142的关键错误的数目已达到其关键错误临界值122,以根据方块208而响应正常读取或写入命令,或响应对于关键错误信息的轮询。在一实施例中,当缘于介质错误的可更正错误与不可更正错误的数目总和达到错误临界值122时,该RAID控制器102可判断关键磁盘142是否已达到其关键错误临界值,因此触发预先重建。在一实施例中,当该关键磁盘142产生达到可更正错误临界值的可更正错误的数目时,或是当该关键磁盘142产生缘于介质错误的不可更正错误的数目已达到缘于介质错误临界值122的不可更正错误时,或上述两种情况皆达到时,RAID控制器102可判断该关键磁盘142是否已达到其关键错误临界值122,因而触发预先重建。流程进行至方块214。
在方块214中,RAID控制器102选择备用磁盘116之一为后台复制的目标,该后台复制为部份的自动预先重建。流程进行至方块216。
在方块216中,RAID控制器102执行关键磁盘142上的数据的后台复制到选定于块214中的备用磁盘116。在冗余阵列114仍为容错时,且关键磁盘142仍为执行正常功能的冗余阵列114之一部分时,该RAID控制器102执行复制,即,当该RAID控制器102仍正在读取与写入该关键磁盘142以响应用户I/O请求时。在一实施例中,该RAID控制器102自关键磁盘142的起始位址而开始读取数据,并写入数据至备用磁盘116上的相关位址,且依序进行至关键磁盘142与备用磁盘116的末端。在该RAID控制器102依序复制该数据时,该控制器维持复制的高水位标志。也就是说,该高水位标志复制自关键磁盘142到该备用磁盘116的最末数据的位址。流程进行至方块218。
在方块218中,如同方块216中所提及的,在后台复制期间,该RAID控制器102持续发出读取与写入指令至关键磁盘142,以响应正常用户I/O请求。假使写入指令是指到关键磁盘142上的位址,该位址符合备用磁盘116上的已写入成部分后台复制的位址,则该RAID控制器102还写入用户数据至该备用磁盘116。否则的话,该RAID控制器102仅写入用户数据至关键磁盘142,由于依据方块216用户数据最终将经由后台复制而复制到该备用磁盘142。在一实施例中,假使写入指令指到低于高水位标志的位址,则该RAID控制器102还写入该用户数据至备用磁盘116。不然的话,该RAID控制器102仅写入至该关键磁盘142。读取命令仅发出至该关键磁盘142,而不发出至该备用磁盘116。流程进行至决策方块222。
在决策方块222中,该RAID控制器102判断磁盘142是否在方块216的后台复制期间失效。磁盘失效可包括各种情形之一,也就是包括但不限于以下列举的。磁盘142失效可包括永久失效,即处失效状态的磁盘142无法进行读取与写入。磁盘142失效可包括磁盘142所产生的错误即便通过例如重新映射对通过该磁盘142报告的损坏扇区,磁盘142也无法回复,且RAID控制器102也无法回复。磁盘142失效可包括在预定时间后磁盘142不响应命令的情况,即命令超时。磁盘142失效可包括该磁盘142提供指出硬件错误的错误码的情况,例如未预备NOT READY的SCSI感测钥或硬件错误HARDWAREERROR或SATA驱动未预备情况(未设定RDY)、写入错误状况(设定WFT)、未发现数据位址标记的情况(设定NDAM位)、未发现轨道0的情况(设定NTK0位)、未发现ID的情况(设定IDNF位),或由主计算机将扇区标记为损坏的情况(设定BBK位)。磁盘142失效可包括磁盘提供错误码,其指出在重试该命令后中止该命令的情况,例如中止命令ABORTED COMMAND(0x0B)的SCSI感测钥或SATA命令中止情况(设定ABRT位)。磁盘142失效可包括磁盘142提供错误码的情况,该错误码指出预定时序数目的介质错误,例如中型错误MEDIUM ERROR感测钥或SATA不可更正的数据情况(设定UNC位)。磁盘142失效可包括用户物理地或经由软件控制而逻辑地自该冗余阵列114移除该磁盘142。假使磁盘142在后台复制期间已失效,流程进行至方块232,不然流程将进行至方块224。
在方块224中,一旦完成自该关键磁盘142到该备用磁盘116的方块216的后台复制,该RAID控制器102对冗余阵列114中的磁盘142停止I/O操作。也就是说,RAID控制器102完成对冗余阵列114中的磁盘142的所有重要的读取或写入命令,且排序接收自该主计算机104的I/O请求,而不对磁盘142发出读取与写入,以响应I/O请求。在一实施例中,该RAID控制器102可对其它冗余阵列114持续地执行I/O操作,即,不是冗余阵列114的其它包括关键磁盘142的冗余阵列。流程进行至方块226。
在方块226中,RAID控制器102以备用磁盘116取代冗余阵列114中的关键磁盘142,该备用磁盘现具有来自关键磁盘142的数据的复制。也就是说,RAID控制器102逻辑地自冗余阵列114移除关键磁盘142,而在冗余阵列114中包括该备用磁盘116,使得排序的I/O请求与任何接下来的I/O请求将被转换以读取或写入至该备用磁盘116(其不再是备用磁盘116而目前是部份的冗余阵列114)而非至关键磁盘142(其不再是部分的冗余阵列114)。流程进行至方块228。
在方块228中,该RAID控制器102不停止对该冗余阵列114的I/O操作。也就是说,RAID控制器102开始发出读取与写入命令至冗余阵列114的磁盘142,以响应该排序的I/O请求以及任何接下来的I/O请求,且特别地发出读取与写入至该备用磁盘116,该备用磁盘116为后台复制的目标(其不再是备用磁盘116而目前是部份的冗余阵列114),且不发出读取与写入至该关键磁盘142(其不再是部分的冗余阵列114)。流程中止于方块228。
在方块232中,因在决策方块222的RAID控制器102检测到在后台复制期间已发生磁盘142失效,该RAID控制器102停止对于冗余阵列114的I/O操作。流程进行至方块236。
在决策方块234中,RAID控制器102判断是否备用磁盘116失效,如果是的话,流程进行至方块248,否则的话,流程进行至方块236。
在方块236中,因冗余阵列114的这些磁盘142之一已失效,该RAID控制器102自该冗余阵列114移除该已失效磁盘142。接下来,在单一冗余阵列的情况中,例如RAID级别1、2、3、4、5、10或50的阵列,该冗余阵列114不再为容错。在多重冗余阵列的情况中,例如RAID级别6的阵列,该冗余阵列114可仍为容错,但不为全冗余,流程进行至方块238。
在方块238中,该RAD控制器102选择方块216的后台复制的目标的备用磁盘116,以将其用于正常重建,即通过读取冗余阵列114中的一个或多个剩余磁盘142重建失效磁盘142上的数据,该冗余阵列114不再为全冗余,以及在原先的单一冗余阵列114不再为容错的情况。流程进行至决策方块242。
在决策方块242中,该RAID控制器102判断在后台复制中失效的该磁盘142是否为该关键磁盘142,如果是的话,流程进行到方块244;否则流程将进行到方块254。
在方块244中,RAID控制器102自后台复制的高水位标志开始冗余阵列114的正常重建。也就是,该RAID在高水位标志开始读取阵列114中的剩余磁盘142、重建失效磁盘142上的数据,且在该高水位标志写入该重建数据至该备用磁盘116。由于因在后台复制期间关键磁盘142失效而达成方块244,仅高于该高水位标志的数据需要被重建。较佳地,和假使需整个备用磁盘116的正常重建相比,本发明提供了较快的重建。最后,一旦RAID控制器102重建整个备用磁盘116,例如方块246之后,该RAID控制器102将增加备用磁盘116制冗余阵列114。流程进行至方块246。
在方块246中,RAD控制器102不停止对阵列114的I/O操作。在执行正常重建时,I/O写入操作通过写入至重建为阵列114的部份的该备用磁盘116而执行,且通过读取自原先冗余阵列114的一个或多个剩余磁盘142而执行I/O读取操作,并且在奇偶校验冗余阵列114的情况中,重建提供至主计算机104的数据。流程终止于方块246中。
在方块248中,由于该备用磁盘116已失效,该RAID控制器102选择不同的备用磁盘116作为相关于将来预先重建的后台复制的目标。在一实施例中,控制器102自动地从先前通过用户而配置的备用磁盘116所构成的池中选择不同的备用磁盘116。假如没有备用磁盘116可用,将提示用户连接新的备用磁盘116到RAID控制器102。流程进行到方块252。
在方块252中,RAID控制器102不停止对冗余阵列114的I/O操作,流程回到方块216以执行预先重建的另一目的的后台复制。
在方块254中,RAID控制器从备用磁盘116的起始处开始冗余阵列114的正常重建。也就是说,该RAID控制器102在磁盘的起始处开始读取阵列114中的剩余磁盘142、重建失效磁盘142上的数据,且在起始处写入该重建数据至备用磁盘116。由于因在后台复制期间是关键磁盘142失效的缘故而达成方块244,故需重建失效磁盘142的所有数据。最后,一旦RAID控制器102重建整个备用磁盘116,例如在方块246之后,该RAID控制器102将增加该备用磁盘116至冗余阵列114。流程进行到方块246。
现参考图3,此流程图示出图1的RAID控制器的操作,以根据本发明的替代实施例而执行冗余阵列的预先重建。图3相似于图2且其元件符号也相似。然而,图3包括置换了方块202的方块302,以及置换了方块216的方块316。
在方块302中,用户具体地规划磁盘142的镜像冗余阵列114,包括但不限于RAID1或RAID10冗余阵列114,以及图1的至少一个备用磁盘116。
在方块316中,不同于执行该关键磁盘142上的数据的复制到如同图2的方块216的备用磁盘116,该RAID控制器102执行在该关键磁盘142的镜像磁盘142上数据的后台复制至选定于方块214中的备用磁盘116。
另一方面看来,图3相似于图2,如同所观察到的,和图2的实施例相比,图3的实施例的潜在优点为其降低关键磁盘142的存取,其可为因失效而关闭,在预先重建期间,因此有可能降低关键磁盘142的失效的可能性。
现参考图4,此流程图示出图1的RAID控制器的操作,以根据本发明的替代实施例而执行冗余阵列的预先重建。图4相似于图2且其元件符号也相似。然而,图4包括置换了方块202的方块402,以及置换了方块216的方块416。
在方块402中,用户具体地规划磁盘142的奇偶校验冗余阵列114,包括但不限于RAID3、4、5、6或50的冗余阵列114,以及图1的至少一个备用磁盘116。
在方块416中,不同于图2的方块216中,执行将该关键磁盘142上的数据复制到备用磁盘116中,该RAID控制器102自冗余阵列114中的其它磁盘142读取数据,且异或该数据以产生该关键磁盘142上的数据,再将此产生数据写入于方块214中所选定的备用磁盘116。
另一方面看来,图4相似于图2,如同所观察到的,和图2的实施例相比,图4的实施例的潜在优点为其降低关键磁盘142的存取,其可为因失效而关闭,在预先重建期间,因此有可能降低关键磁盘142的失效的可能性。需注意地是,在此实施例中,预先重建花费的时间可能比从关键磁盘142或自镜像磁盘142复制的实施例的时间长。
现参考图5,其显示依据本发明的替代实施例包括RAID控制器102的计算机系统500。图5相似于图1且其元件符号也相似。然而,在图5的实施例中,RAID控制器102包括主总线适配器形式RAID控制器,其包括于主计算机104中,该主计算机104包括每一连接芯片组504的微处理器502与存储器506。该微处理器502执行储存在存储器506中的程序,如同操作系统、应用程序,以及经由RAID控制器102存取于冗余阵列114上的数据的应用程序。该芯片组504提供局域总线508,通过局域总线508连接该RAID控制器102的微处理器502与存储器506,以使得该RAID控制器102能在存储器及其本身之间传输数据,且使得微处理器502能发出I/O请求至RAID控制器102。该局域总线508可包括但不限于PCI、PCI-X、CompactPCI或PCI Express总线。在一实施例中,该RAID控制器102集成到主计算机104的主机板上。在另一实施例中,该RAID控制器102包括插入局域总线508的一个槽中的补充控制器卡,图5的RAID控制器102配置以根据在此所述的本发明而执行预先重置。
在一实施例中,该RAID控制器102执行冗余阵列114的手动预先重建而非自动预先重建。也就是说,不同于自动地执行预先重建以在无用户输入下而响应方块212,该RAID控制器102执行开始于方块214的图2、图3与图4的预先重建,以响应用户输入。该用户提供指出冗余阵列114中的该关键磁盘142,且该RAID控制器102执行响应用户输入的预先重建的剩余步骤。在一实施例中,当RAID控制器102在方块212中判断该关键磁盘142已达到其关键错误临界值122时,该RAID控制器102报告此状况给用户,且用户相应地提供输入以初始化该冗余阵列114的手动预先重建。
现参考图6,其显示根据本发明的替代实施例的软件RAID控制器102,图6相似于图1且其元件符号也相似。然而,在图6的实施例中,RAID控制器102是由主计算机的构件所组成,一般将其称为软件RAID控制器。在图6的RAID控制器102中,主接口适配器136作为计算机的网络的接口而非该主计算机104的接口。在图6的实施例中,该RAID控制器102的微处理器126可包括主计算机104的微处理器,RAID控制器102的存储器124与缓冲器132可包括主计算机104的系统存储器;RAID控制器102的该储存装置接口适配器138可包括主计算机104的一个或多个主总线适配器;该总线桥接器134可包括该主计算机104的一个芯片组;且该主接口适配器136可包括主计算机104的网络接口卡。错误临界值可被储存在主计算机104的主存储器124中。特别是,用以执行RAID控制器102的功能的编程指令可为操作系统及/或系统固件的部分,例如ROM BIOS。该微处理器126执行编程指令以执行RAID控制器102功能,且特别地执行在此所述的已达到其错误临界值122的磁盘124的预先重建。
虽然上述实施例的磁盘的阵列为冗余磁盘,另一实施例考虑执行磁盘的非冗余阵列的预先重建。特别是,预先重建可在磁盘的RAID级别0阵列上执行,RAID级别0的多个磁盘上的数据的消除,由于无冗余阵列写入至该阵列,故其并不为冗余RAID级别。然而,一旦在阵列中的磁盘达到错误临界值,数据可自关键磁盘被复制至备用磁盘,且其后在该消除阵列中可用目前包含关键磁盘的复制的备用磁盘置换关键磁盘。进一步来说,虽然实施例已参照采用镜像冗余与奇偶校验冗余的RAID级别而描述,预先重建也可执行于采用其它数据冗余技术的冗余磁盘阵列,例如使用汉明码(Hamming code)的RAID2,错误更正码(EEC)、或冗余等。
同样地,虽然本发明的目的、特征及优点已详述于上,其它些实施例也包含在本发明中。除了本发明使用的硬件的应用外,本发明可应用于实现于计算机可使用(例如可读取)介质的计算机可读取码中(例如,计算机可读取码、数据等)。该计算机代码造成在此所述本发明的功能的启动或制造或前述两者,举例来说,其可经由使用一般程序语言而达成(例如C、C++、JAVA与其它相似者);GDSII数据库;包括Verilog HDL、VHDL、Altera HDL(AHDL)等的硬件描述语言(HDL);或其它本技术领域中可用的编程及/或电路(即,图式)抓取工具。该计算机代码可存放于任何已知的包括计算机可使用(例如,可读取)介质中,其包括半导体存储器、磁盘、光盘(例如,CD-ROM、DVD-ROM与其它相似者),并且作为实现于计算机可使用(例如,可读取)传输介质(例如,载波或包括数字、光学或以类比为基础的介质的其它介质)的计算机数据信号。如上所述,可经由包括因特网或内部网络的通信网络传输该计算机代码。可了解的是本发明可以计算机代码而实现,且转换至硬件作为集成电路生产的部份,同样地,本发明可实现为硬件与计算机代码的结合。
最后,本领域的技术人员将明白,其可轻易地使用本发明所公开的概念与实施例作为设计或修改其它用以完成相同于本发明目的的结构的基础,而不脱离如权利要求书所涵盖的本发明的精神与范围。

Claims (44)

1.一种用以在该冗余阵列仍为容错时执行磁盘的冗余阵列的预先重建的方法,该方法包括:
判断该冗余阵列中这些磁盘之一所发出错误的数目是否已超出错误临界值;
从这些磁盘之一复制数据至备用磁盘,以响应该判断;以及
在完成该复制后,以该备用磁盘取代该冗余阵列的这些磁盘之一。
2.如权利要求1所述的方法,还包括:
在该复制的步骤中,写入第二数据至这些磁盘之一,以响应包括该第二数据的用户写入请求,而维持该冗余阵列的容错。
3.如权利要求2所述的方法,还包括:
如果该第二数据的目的地为先前在该复制中而写入该备用磁盘的位置,还写入该第二数据到备用磁盘。
4.如权利要求3所述的方法,还包括:
自该备用磁盘的起始端至末端,依序地复制这些磁盘之一的数据至该备用磁盘。
5.如权利要求4所述的方法,还包括:
保持依序地复制至该备用磁盘的数据的最后位置。
6.如权利要求5所述的方法,其中该假使该第二数据的目的地为先前在该复制中而写入该备用磁盘的一个位置,写入该第二数据到备用磁盘的步骤中,包括:
假使该第二数据的该目的地指到介于依序复制到该备用磁盘的该开始位置与该最后位置之间的位置,则还写入该第二数据至该备用磁盘。
7.如权利要求1所述的方法,还包括:
判断该冗余阵列中这些磁盘之一所发出错误的数目是否已超出错误临界值的步骤之前,接收指定该错误临界值的用户输入。
8.如权利要求1所述的方法,其中该备用磁盘包括不是在该复制之前磁盘阵列中的一部份的磁盘。
9.如权利要求1所述的方法,其中该复制的步骤包括:
自这些磁盘之一读取该数据;以及
写入该数据至该备用磁盘。
10.如权利要求1所述的方法,其中该复制的步骤无须由用户在该判断与该复制的步骤之间请求插入的情况下,通过磁盘阵列(RAID)控制器而自动执行,以响应该判断的步骤。
11.如权利要求1所述的方法,还包括:
通过该冗余阵列中的这些磁盘之一维持该错误的数目,以响应自这些磁盘之一接收的错误,其中执行该判断的步骤是为了响应该维持。
12.如权利要求11所述的方法,其中该接收来自这些磁盘之一的错误是响应发出至这些磁盘之一的命令,以自这些磁盘之一读取第二数据。
13.如权利要求11所述的方法,其中该接收来自这些磁盘之一的错误是响应发出至这些磁盘之一的命令,以写入第二数据至这些磁盘之一。
14.如权利要求1所述的方法,还包括:
自这些磁盘之一请求该冗余阵列中的这些磁盘之一的该错误的数目,其中执行该判断的步骤以响应该请求。
15.如权利要求14所述的方法,其中该请求包括请求自我检测、分析与报告技术(SMART)数据。
16.如权利要求14所述的方法,还包括:
判断这些磁盘之一的预定不活动周期是否已逾期;
其中该请求的步骤被执行以响应判断这些磁盘之一的预定不活动周期是否已逾期。
17.如权利要求1所述的方法,其中判断该冗余阵列中这些磁盘之一所发出错误的数目是否已超出错误临界值包括:
判断这些磁盘之一的可回复错误的数目是否已超出该错误临界值。
18.如权利要求1所述的方法,其中判断该冗余阵列中这些磁盘之一所发出错误的数目是否已超出错误临界值包括:
判断这些磁盘之一的不可更正错误的数目是否已超出该错误临界值。
19.如权利要求1所述的方法,其中判断该冗余阵列中这些磁盘之一所发出错误的数目是否已超出错误临界值包括:
判断这些磁盘之一由介质导致的可回复错误的数目与不可更正错误的数目的总和是否已超过该错误临界值。
20.如权利要求1所述的方法,其中这些错误包括不使得这些磁盘之一不可操作的错误。
21.如权利要求1所述的方法,还包括:
在完成复制后及在该取代前,暂停存取磁盘的该冗余阵列。
22.如权利要求21所述的方法,还包括:
在该取代后,不暂停对磁盘的该冗余阵列的存取。
23.如权利要求1所述的方法,还包括:
判断在该复制期间冗余阵列中的这些磁盘之一是否已失效;
自该冗余阵列移除失效的这些磁盘之一,且以该备用磁盘取代,以响应判断冗余阵列中的这些磁盘之一是否已失效;以及
重建失效的这些磁盘之一的数据,且在该移除与该取代后,将该重建数据写入至该备用磁盘。
24.如权利要求23所述的方法,其中判断在该复制期间冗余阵列中的这些磁盘之一是否已失效包括:
判断在该复制期间失效的这些磁盘之一是否为超出该错误临界值的这些磁盘之一;
其中该重建与该写入包括仅重建与写入在该复制期间尚未写入至该备用磁盘的部分的数据。
25.如权利要求23所述的方法,其中判断在该复制期间冗余阵列中的这些磁盘之一是否已失效包括:
判断是否不同于该冗余阵列中的这些磁盘之一的另一个在该复制期间失效。
26.如权利要求1所述的方法,还包括:
判断该备用磁盘是否在该复制期间失效。
27.如权利要求26所述的方法,还包括:
选定第二备用磁盘,以响应在该复制期间判断该备用磁盘已失效;以及
重复执行该复制以及该取代。
28.一种用以在该冗余阵列仍为容错时执行磁盘的冗余阵列的预先重建的磁盘阵列(RAID)控制器,这些磁盘连接至该磁盘阵列(RAID)控制器,其包括:
存储器,用以储存错误临界值;以及
微处理器,连接该存储器,配置为:
判断该冗余阵列中的这些磁盘之一所发出错误的数目是否已超出该错误临界值;
自这些磁盘之一复制数据至备用磁盘,以响应判断该冗余阵列中的这些磁盘之一所发出错误的数目是否已超出该错误临界值;以及
在复制该数据完成后,以该备用磁盘取代冗余阵列中的这些磁盘之一。
29.如权利要求28所述的RAID控制器,其中该错误临界值为用户定义的。
30.如权利要求28所述的RAID控制器,还包括:
程序指令,储存在该存储器中,以由该微处理器执行,以指示该微处理器执行该判断、该复制与该取代。
31.如权利要求28所述的RAID控制器,其中该RAID控制器包括软件RAID控制器。
32.如权利要求31所述的RAID控制器,其中该微处理器相同于计算机系统的微处理器,其还发出I/O请求至RAID控制器以传输一部分该数据至该冗余阵列的磁盘。
33.如权利要求28所述的RAID控制器,还包括:
一网络接口适配器,连接该微处理器,以作为该RAID控制器至一计算机网络的接口,其中该RAID控制器经由该网络自这些计算机接收请求,以在该冗余阵列的磁盘与这些计算机间经由该网络传输一部份该数据。
34.如权利要求28所述的RAID控制器,还包括:
局域总线接口,连接该微处理器,以接合该RAID控制器至计算机的局域总线,其中该RAID控制器经由该局域总线自该计算机接收请求,以自该冗余阵列的磁盘经由该局域总线传送数据至该计算机。
35.如权利要求28所述的RAID控制器,其中该微处理器还配置为:
写入第二数据至这些磁盘之一,以响应包括该第二数据的用户写入请求,在自这些磁盘之一复制该数据至该备用磁盘,因此维持该冗余阵列的容错。
36.如权利要求35所述的RAID控制器,其中该微处理器还配置为:
还写入该第二数据到备用磁盘,假使该第二数据的目的地为先前在该复制中而写入该备用磁盘的位置。
37.一种用以在该冗余阵列仍为容错时执行磁盘的冗余阵列的预先重建的方法,该方法包括:
判断该冗余阵列中这些磁盘之一所发出错误的数目是否已超出错误临界值;
从该冗余阵列中的第二磁盘读取数据,且写入该数据至备用磁盘,以响应该判断,其中该冗余阵列中的该第二磁盘的数据为这些磁盘之一的数据的镜像复制;
在完成该读取与该写入之后,以该备用磁盘取代该冗余阵列中的这些磁盘之一;以及
当该读取与该写入时,写入第二数据至这些磁盘之一,以响应包括该第二数据的用户写入请求,因此维持该冗余阵列的容错。
38.如权利要求37所述的方法,还包括:
还写入该第二数据至该备用磁盘,假使该第二数据的目的地为先前在该读取与该写入中而写入该备用磁盘的位置。
39.一种用以在该冗余阵列仍为容错时执行磁盘的冗余阵列的预先重建的方法,该方法包括:
判断该冗余阵列中这些磁盘之一所发出错误的数目是否已超出错误临界值;
自冗余阵列中的其它些磁盘的两个或多个而读取的第二数据,产生这些磁盘之一的数据,且将该产生数据写入至备用磁盘,以响应该判断;
在完成该产生与该写入之后,以该备用磁盘取代该冗余阵列中的这些磁盘之一;以及
当该产生与写入时,写入第三数据至该备用阵列中的这些磁盘之一,以响应包括该第三数据的用户写入请求,因此维持该冗余阵列的容错。
40.如权利要求39所述的方法,其中产生该数据的步骤包括:
自该冗余阵列中的其它磁盘的该两个或多个而读取该第二数据;以及
执行该第二数据的二进制异或运算,而产生这些磁盘之一的该数据。
41.如权利要求39所述的方法,还包括:
还写入该第三数据至该备用磁盘,假使该第三数据的目的地为先前在该产生与该写入中而写入该备用磁盘的位置。
42.一种用以在该冗余阵列仍为容错时执行磁盘的冗余阵列的预先重建的方法,该方法包括:
接收用户输入,该用户输入指定该冗余阵列中的这些磁盘之一;
自这些磁盘之一复制数据至备用磁盘,以响应该接收的用户输入;以及
在完成该复制之后,以该备用磁盘取代该冗余阵列中的这些磁盘之一。
43.如权利要求42所述的方法,还包括:
在进行该复制时,写入第二数据至这些磁盘之一,以响应包括该第二数据的用户写入请求,因此维持该冗余阵列的容错。
44.如权利要求42所述的方法,还包括:
在该接收用户输入之前,通知该用户该冗余阵列中的这些磁盘之一已超过错误临界值。
CNB2005800258703A 2004-08-04 2005-07-11 执行容错磁盘阵列的预先重建 Expired - Fee Related CN100561442C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/911,110 US7313721B2 (en) 2004-06-21 2004-08-04 Apparatus and method for performing a preemptive reconstruct of a fault-tolerant RAID array
US10/911,110 2004-08-04

Publications (2)

Publication Number Publication Date
CN101006431A true CN101006431A (zh) 2007-07-25
CN100561442C CN100561442C (zh) 2009-11-18

Family

ID=35457400

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005800258703A Expired - Fee Related CN100561442C (zh) 2004-08-04 2005-07-11 执行容错磁盘阵列的预先重建

Country Status (8)

Country Link
US (1) US7313721B2 (zh)
EP (1) EP1774437B1 (zh)
JP (1) JP2008509474A (zh)
CN (1) CN100561442C (zh)
CA (1) CA2579249A1 (zh)
DE (1) DE602005007355D1 (zh)
HK (1) HK1105695A1 (zh)
WO (1) WO2006019643A1 (zh)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101887386A (zh) * 2010-06-02 2010-11-17 深圳市迪菲特科技股份有限公司 一种磁盘阵列控制器故障处理方法及系统
CN101887351A (zh) * 2010-06-22 2010-11-17 杭州华三通信技术有限公司 一种磁盘阵列容错方法及其系统
CN102012847A (zh) * 2010-12-06 2011-04-13 创新科存储技术有限公司 一种改进的磁盘阵列重建方法
CN101557320B (zh) * 2009-05-25 2011-05-04 杭州华三通信技术有限公司 容灾的实现方法及其通信设备
CN102207893A (zh) * 2010-03-29 2011-10-05 北京邦诺存储科技有限公司 廉价磁盘冗余阵列的管理设备和方法
CN103534693A (zh) * 2010-11-22 2014-01-22 马维尔国际贸易有限公司 在客户端之间共享对存储器的访问
CN104699564A (zh) * 2013-12-09 2015-06-10 中国移动通信集团公司 一种采用Raid0磁盘组服务器的自动恢复方法及装置
CN107515731A (zh) * 2017-07-31 2017-12-26 华中科技大学 一种基于固态盘的进化存储系统及其工作方法
CN108733313A (zh) * 2017-04-17 2018-11-02 伊姆西Ip控股有限责任公司 利用预备盘建立多级闪速缓存的方法、设备和计算机可读介质
CN109725822A (zh) * 2017-10-27 2019-05-07 伊姆西Ip控股有限责任公司 用于管理存储系统的方法、设备和计算机程序产品
CN109799953A (zh) * 2018-12-14 2019-05-24 创新科存储技术(深圳)有限公司 一种快速重建raid的方法和装置
CN111133420A (zh) * 2017-12-15 2020-05-08 西部数据技术公司 来自外部阵列副本的raid阵列重建辅助
CN113900593A (zh) * 2021-10-12 2022-01-07 天津津航计算技术研究所 一种s.m.a.r.t.信息自动预警的raid控制卡架构
CN113900594A (zh) * 2021-10-12 2022-01-07 天津津航计算技术研究所 一种raid控制卡s·m·a·r·t·信息的预警方法
CN114079616A (zh) * 2021-11-02 2022-02-22 中国船舶重工集团公司第七0三研究所 一种非热备磁盘阵列服务器数据库冗余方法

Families Citing this family (125)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005326935A (ja) * 2004-05-12 2005-11-24 Hitachi Ltd 仮想化ストレージを備える計算機システムの管理サーバおよび障害回避復旧方法
US7313712B2 (en) * 2004-05-21 2007-12-25 Intel Corporation Link power saving state
US20050283654A1 (en) * 2004-05-24 2005-12-22 Sun Microsystems, Inc. Method and apparatus for decreasing failed disk reconstruction time in a raid data storage system
US7533292B2 (en) * 2004-07-15 2009-05-12 International Business Machines Corporation Management method for spare disk drives in a raid system
JP4555029B2 (ja) 2004-09-01 2010-09-29 株式会社日立製作所 ディスクアレイ装置
US7346804B2 (en) * 2004-09-23 2008-03-18 International Business Machines Corporation Hard disk drive data scrub methodology
US7565581B1 (en) * 2004-09-23 2009-07-21 Emc Corporation Error handling policy
US7346806B2 (en) * 2004-09-23 2008-03-18 International Business Machines Corporation Hard disk drive background scrub methodology
US7353423B2 (en) * 2004-09-24 2008-04-01 International Business Machines Corporation System and method for improving the performance of operations requiring parity reads in a storage array system
US7631219B2 (en) * 2004-10-22 2009-12-08 Broadcom Corporation Method and computer program product for marking errors in BIOS on a RAID controller
US7428658B2 (en) * 2004-10-26 2008-09-23 International Business Machines Corporation Checking storage reconfiguration
JP2006221510A (ja) * 2005-02-14 2006-08-24 Fujitsu Ltd ディスク装置制御プログラム、ディスク装置制御方法、ディスク装置制御システム
JP2006227856A (ja) * 2005-02-17 2006-08-31 Hitachi Ltd アクセス制御装置及びそれに搭載されるインターフェース
JP4815825B2 (ja) * 2005-03-10 2011-11-16 日本電気株式会社 ディスクアレイ装置及びその再構築方法
US20060236149A1 (en) * 2005-04-14 2006-10-19 Dell Products L.P. System and method for rebuilding a storage disk
US7480780B2 (en) * 2005-04-19 2009-01-20 Hitachi, Ltd. Highly available external storage system
US20060248236A1 (en) * 2005-04-28 2006-11-02 Agere Systems Inc. Method and apparatus for time correlating defects found on hard disks
US7681074B2 (en) * 2005-04-29 2010-03-16 Microsoft Corporation Transport high availability
US7587630B1 (en) * 2005-04-29 2009-09-08 Network Appliance, Inc. Method and system for rapidly recovering data from a “dead” disk in a RAID disk group
US7574623B1 (en) * 2005-04-29 2009-08-11 Network Appliance, Inc. Method and system for rapidly recovering data from a “sick” disk in a RAID disk group
TWI272490B (en) * 2005-05-30 2007-02-01 Promise Technology Inc Data storage system and managing method thereof
US20060282602A1 (en) * 2005-06-09 2006-12-14 Tse-Hsine Liao Data transmission device and method thereof
US20070038749A1 (en) * 2005-07-29 2007-02-15 Broadcom Corporation Combined local and network storage interface
US8433770B2 (en) * 2005-07-29 2013-04-30 Broadcom Corporation Combined local and network storage interface
JP2007087039A (ja) * 2005-09-21 2007-04-05 Hitachi Ltd ディスクアレイシステム及びその制御方法
JP2007094578A (ja) * 2005-09-27 2007-04-12 Fujitsu Ltd ストレージシステム及びその構成部品交換処理方法
JP4817783B2 (ja) * 2005-09-30 2011-11-16 富士通株式会社 Raidシステム及びそのリビルド/コピーバック処理方法
US7386666B1 (en) * 2005-09-30 2008-06-10 Emc Corporation Global sparing of storage capacity across multiple storage arrays
EP1777613B1 (en) 2005-10-11 2021-11-24 Infortrend Technology, Inc. Pool spares for data storage virtualization subsystem
JP4472617B2 (ja) * 2005-10-28 2010-06-02 富士通株式会社 Raidシステム、raidコントローラ及びそのリビルド/コピーバック処理方法
US20070143540A1 (en) * 2005-12-16 2007-06-21 Inventec Corporation RAID setting system having scanning module and related method
US20070180292A1 (en) * 2006-01-31 2007-08-02 Bhugra Kern S Differential rebuild in a storage environment
JP2007233903A (ja) * 2006-03-03 2007-09-13 Hitachi Ltd 記憶制御装置及び記憶制御装置のデータ回復方法
US20070234107A1 (en) * 2006-03-31 2007-10-04 International Business Machines Corporation Dynamic storage data protection
US7836379B1 (en) * 2006-04-03 2010-11-16 Marvell International Ltd. Method for computing buffer ECC
US7840878B1 (en) 2006-04-11 2010-11-23 Marvell International Ltd. Systems and methods for data-path protection
US7500136B2 (en) * 2006-06-05 2009-03-03 International Business Machines Corporation Replacing member disks of disk arrays with spare disks
KR100823734B1 (ko) * 2006-07-07 2008-04-21 한국전자통신연구원 iSCSI를 위한 데이터 가속 장치 및 이를 이용한iSCSI 저장 시스템
TW200807258A (en) * 2006-07-28 2008-02-01 Qnap Systems Inc Data recovery method and system when redundant array of independent disks (RAID) is damaged
US7644304B2 (en) * 2006-08-28 2010-01-05 Dell Products L.P. Using SAS address zoning to add/replace hot spares to RAID set
US7958343B2 (en) * 2006-09-08 2011-06-07 Hewlett-Packard Development Company, L.P. BIOS bootable RAID support
US7890796B2 (en) * 2006-10-04 2011-02-15 Emc Corporation Automatic media error correction in a file server
US7774545B2 (en) * 2006-12-01 2010-08-10 Lsi Corporation System and method of volume group creation based on an automatic drive selection scheme
US7647526B1 (en) * 2006-12-06 2010-01-12 Netapp, Inc. Reducing reconstruct input/output operations in storage systems
US20080172571A1 (en) * 2007-01-11 2008-07-17 International Business Machines Corporation Method and system for providing backup storage capacity in disk array systems
US8713253B1 (en) * 2007-06-18 2014-04-29 Guidance-Tableau, Llc Modular storage system
JP4438010B2 (ja) * 2007-08-30 2010-03-24 富士通株式会社 中継装置、中継方法および中継制御プログラム
US7941628B2 (en) * 2007-09-04 2011-05-10 International Business Machines Corporation Allocation of heterogeneous storage devices to spares and storage arrays
US7975171B2 (en) * 2007-09-12 2011-07-05 International Business Machines Corporation Automated file recovery based on subsystem error detection results
JP5124217B2 (ja) * 2007-09-18 2013-01-23 株式会社日立製作所 ストレージ装置
TWI343001B (en) * 2007-11-13 2011-06-01 Ite Tech Inc Data preserving method and data accessing method for non-volatile memory
JP2009151393A (ja) * 2007-12-18 2009-07-09 Nec Corp 記憶媒体制御装置、記憶媒体管理システム、記憶媒体の制御方法、及び記憶媒体の制御プログラム
US8185784B2 (en) * 2008-04-28 2012-05-22 Lsi Corporation Drive health monitoring with provisions for drive probation state and drive copy rebuild
US8255639B2 (en) * 2008-05-06 2012-08-28 International Business Machines Corporation Partition transparent correctable error handling in a logically partitioned computer system
US8407515B2 (en) * 2008-05-06 2013-03-26 International Business Machines Corporation Partition transparent memory error handling in a logically partitioned computer system with mirrored memory
US8041984B2 (en) * 2008-10-17 2011-10-18 International Business Machines Corporation Redundancy information for adjusting threshold for component failure in a multi-layer system
US8086795B2 (en) * 2009-01-20 2011-12-27 Dataram, Inc. Onboard computer data storage, access, and caching system
US8713060B2 (en) 2009-03-31 2014-04-29 Amazon Technologies, Inc. Control service for relational data management
US8307003B1 (en) 2009-03-31 2012-11-06 Amazon Technologies, Inc. Self-service control environment
US8332365B2 (en) 2009-03-31 2012-12-11 Amazon Technologies, Inc. Cloning and recovery of data volumes
US8060792B2 (en) * 2009-03-31 2011-11-15 Amazon Technologies, Inc. Monitoring and automated recovery of data instances
US9705888B2 (en) 2009-03-31 2017-07-11 Amazon Technologies, Inc. Managing security groups for data instances
US9207984B2 (en) 2009-03-31 2015-12-08 Amazon Technologies, Inc. Monitoring and automatic scaling of data volumes
US9135283B2 (en) * 2009-10-07 2015-09-15 Amazon Technologies, Inc. Self-service configuration for data environment
US8335765B2 (en) 2009-10-26 2012-12-18 Amazon Technologies, Inc. Provisioning and managing replicated data instances
US8676753B2 (en) 2009-10-26 2014-03-18 Amazon Technologies, Inc. Monitoring of replicated data instances
US8074107B2 (en) 2009-10-26 2011-12-06 Amazon Technologies, Inc. Failover and recovery for replicated data instances
US8504884B2 (en) * 2009-10-29 2013-08-06 Freescale Semiconductor, Inc. Threshold voltage techniques for detecting an imminent read failure in a memory array
US8688906B2 (en) * 2009-11-16 2014-04-01 Lenovo (Singapore) Pte. Ltd. Apparatus and method for distributing writes asymmetrically among drives
US8719621B1 (en) 2010-05-05 2014-05-06 Marvell International Ltd. Solid-state disk cache assisted redundant array of independent disks
US8984384B1 (en) * 2010-06-30 2015-03-17 Emc Corporation Distributed storage system with efficient handling of file updates
US9086970B2 (en) 2010-10-07 2015-07-21 International Business Machines Corporation Diagnosing entities associated with software components
US8417989B2 (en) * 2010-10-15 2013-04-09 Lsi Corporation Method and system for extra redundancy in a raid system
EP2674851B1 (en) * 2011-02-10 2018-01-17 Fujitsu Limited Storage control device, storage device, storage system, storage control method, and program for same
CN102158538B (zh) * 2011-02-18 2013-06-12 杭州宏杉科技有限公司 一种存储资源的管理方法及装置
US8954670B1 (en) * 2011-04-18 2015-02-10 American Megatrends, Inc. Systems and methods for improved fault tolerance in RAID configurations
US9268644B1 (en) 2011-04-18 2016-02-23 American Megatrends, Inc. Systems and methods for raid acceleration
WO2013038618A1 (ja) * 2011-09-14 2013-03-21 パナソニック株式会社 情報記憶媒体ライブラリアレイ装置、情報記録方法及び情報記録プログラム
CN102368222A (zh) * 2011-10-25 2012-03-07 曙光信息产业(北京)有限公司 一种多副本存储系统在线修复的方法
CN102385537B (zh) * 2011-10-25 2014-12-03 曙光信息产业(北京)有限公司 一种多副本存储系统的磁盘故障处理方法
CN102419697B (zh) * 2011-11-02 2013-12-18 华中科技大学 垂直raid-6编码中单盘重构的方法
TW201321964A (zh) * 2011-11-25 2013-06-01 Hon Hai Prec Ind Co Ltd 儲存設備及其工作方法
US8782465B1 (en) * 2011-12-22 2014-07-15 Emc Corporation Managing drive problems in data storage systems by tracking overall retry time
CN102708019B (zh) * 2012-04-28 2014-12-03 华为技术有限公司 一种硬盘数据恢复方法、装置及系统
CN102981778B (zh) * 2012-11-15 2016-11-16 浙江宇视科技有限公司 一种raid阵列重建方法及装置
US20140149787A1 (en) * 2012-11-29 2014-05-29 Lsi Corporation Method and system for copyback completion with a failed drive
US9135096B2 (en) * 2012-12-06 2015-09-15 Compellent Technologies RAID surveyor
US9026863B2 (en) * 2013-01-17 2015-05-05 Dell Products, L.P. Replacement of storage responsive to remaining life parameter
US9009526B2 (en) * 2013-01-24 2015-04-14 Hewlett-Packard Development Company, L.P. Rebuilding drive data
US9280431B2 (en) * 2013-04-17 2016-03-08 Globalfoundries Inc. Prioritizing backups on a disk level within enterprise storage
US9697226B1 (en) * 2013-06-28 2017-07-04 Sanmina Corporation Network system to distribute chunks across multiple physical nodes
US20150006846A1 (en) 2013-06-28 2015-01-01 Saratoga Speed, Inc. Network system to distribute chunks across multiple physical nodes with disk support for object storage
EP3022736A1 (en) 2013-07-15 2016-05-25 Hewlett Packard Enterprise Development LP Rebuilding drive data
JP6191346B2 (ja) * 2013-09-09 2017-09-06 富士通株式会社 ストレージ制御装置、ディスクアレイ装置の制御方法及びディスクアレイ装置の制御プログラム
JP6213130B2 (ja) * 2013-10-09 2017-10-18 富士通株式会社 ストレージ制御装置、ストレージ制御プログラム及びストレージ制御方法
US9298549B2 (en) 2013-12-11 2016-03-29 International Business Machines Corporation Read buffer architecture supporting integrated XOR-reconstructed and read-retry for non-volatile random access memory (NVRAM) systems
CN105094684B (zh) * 2014-04-24 2018-03-09 国际商业机器公司 磁盘阵列系统中问题磁盘的重用方法和系统
US9442799B2 (en) * 2014-06-26 2016-09-13 Microsoft Technology Licensing, Llc Extended lifetime memory
US9542296B1 (en) * 2014-12-01 2017-01-10 Amazon Technologies, Inc. Disk replacement using a predictive statistical model
US9563524B2 (en) 2014-12-11 2017-02-07 International Business Machines Corporation Multi level data recovery in storage disk arrays
CN104572372A (zh) * 2014-12-26 2015-04-29 浪潮电子信息产业股份有限公司 一种服务器性能测试环境搭建系统及方法
CN105893282B (zh) 2015-01-04 2019-11-12 伊姆西公司 硬盘移动识别方法和系统
JP6477320B2 (ja) 2015-07-17 2019-03-06 富士通株式会社 記憶装置制御装置、記憶装置制御方法、および記憶装置制御プログラム
CN105138280B (zh) * 2015-07-31 2018-10-19 成都华为技术有限公司 数据写入方法、装置及系统
US10007432B2 (en) * 2015-10-13 2018-06-26 Dell Products, L.P. System and method for replacing storage devices
US9794366B1 (en) * 2016-10-19 2017-10-17 Red Hat, Inc. Persistent-memory management
KR102611571B1 (ko) 2016-11-09 2023-12-07 삼성전자주식회사 비휘발성 메모리를 포함하는 raid 시스템
US10353642B2 (en) * 2017-05-01 2019-07-16 Netapp, Inc. Selectively improving RAID operations latency
US10521269B2 (en) 2017-05-01 2019-12-31 Netapp, Inc. Efficient distributed scheduler for a data partitioned system
US10394673B2 (en) 2017-05-22 2019-08-27 Avago Technologies International Sales Pte. Limited Method and system for hardware accelerated copyback
US10572323B1 (en) * 2017-10-24 2020-02-25 EMC IP Holding Company LLC Predicting physical storage unit health
US10831382B2 (en) * 2017-11-29 2020-11-10 International Business Machines Corporation Prevent disk hardware failure for cloud applications
CN108319427B (zh) * 2017-12-21 2021-02-09 深圳创新科技术有限公司 一种支持快速重建的Raid10实现方法和装置
US10768856B1 (en) * 2018-03-12 2020-09-08 Amazon Technologies, Inc. Memory access for multiple circuit components
US11442642B2 (en) 2019-01-29 2022-09-13 Dell Products L.P. Method and system for inline deduplication using erasure coding to minimize read and write operations
US20200241781A1 (en) 2019-01-29 2020-07-30 Dell Products L.P. Method and system for inline deduplication using erasure coding
US11609820B2 (en) 2019-07-31 2023-03-21 Dell Products L.P. Method and system for redundant distribution and reconstruction of storage metadata
US11372730B2 (en) 2019-07-31 2022-06-28 Dell Products L.P. Method and system for offloading a continuous health-check and reconstruction of data in a non-accelerator pool
US11328071B2 (en) 2019-07-31 2022-05-10 Dell Products L.P. Method and system for identifying actor of a fraudulent action during legal hold and litigation
US11775193B2 (en) 2019-08-01 2023-10-03 Dell Products L.P. System and method for indirect data classification in a storage system operations
US11301327B2 (en) * 2020-03-06 2022-04-12 Dell Products L.P. Method and system for managing a spare persistent storage device and a spare node in a multi-node data cluster
US11416357B2 (en) 2020-03-06 2022-08-16 Dell Products L.P. Method and system for managing a spare fault domain in a multi-fault domain data cluster
US11418326B2 (en) 2020-05-21 2022-08-16 Dell Products L.P. Method and system for performing secure data transactions in a data cluster
CN114253460A (zh) * 2020-09-23 2022-03-29 伊姆西Ip控股有限责任公司 管理存储池的方法、设备和计算机程序产品
KR20230106020A (ko) * 2022-01-05 2023-07-12 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2923702B2 (ja) 1991-04-01 1999-07-26 株式会社日立製作所 記憶装置及びそのデータ修復方法
US5802264A (en) 1991-11-15 1998-09-01 Fujitsu Limited Background data reconstruction in a storage device array system
US5379411A (en) 1991-11-15 1995-01-03 Fujitsu Limited Fault indication in a storage device array
US5566316A (en) 1994-02-10 1996-10-15 Storage Technology Corporation Method and apparatus for hierarchical management of data storage elements in an array storage device
JPH08249133A (ja) * 1994-12-15 1996-09-27 Internatl Business Mach Corp <Ibm> ディスク・ドライブ・アレイの故障対策の方法及びシステム
US5666512A (en) 1995-02-10 1997-09-09 Hewlett-Packard Company Disk array having hot spare resources and methods for using hot spare resources to store user data
US5717850A (en) 1996-03-12 1998-02-10 International Business Machines Corporation Efficient system for predicting and processing storage subsystem failure
GB2312319B (en) 1996-04-15 1998-12-09 Discreet Logic Inc Video storage
US6223252B1 (en) 1998-05-04 2001-04-24 International Business Machines Corporation Hot spare light weight mirror for raid system
US6249887B1 (en) 1998-09-21 2001-06-19 William G. Gray Apparatus and method for predicting failure of a disk drive
US6598174B1 (en) * 2000-04-26 2003-07-22 Dell Products L.P. Method and apparatus for storage unit replacement in non-redundant array
US6886108B2 (en) 2001-04-30 2005-04-26 Sun Microsystems, Inc. Threshold adjustment following forced failure of storage device
US6732233B2 (en) * 2002-05-21 2004-05-04 International Business Machines Corporation Hot spare reliability for storage arrays and storage networks
US6892276B2 (en) * 2002-11-26 2005-05-10 Lsi Logic Corporation Increased data availability in raid arrays using smart drives
JP2005100259A (ja) * 2003-09-26 2005-04-14 Hitachi Ltd ドライブの2重障害を防止するアレイ型ディスク装置、プログラム、及び方法

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101557320B (zh) * 2009-05-25 2011-05-04 杭州华三通信技术有限公司 容灾的实现方法及其通信设备
CN102207893B (zh) * 2010-03-29 2014-07-16 北京邦诺存储科技有限公司 廉价磁盘冗余阵列的管理设备和方法
CN102207893A (zh) * 2010-03-29 2011-10-05 北京邦诺存储科技有限公司 廉价磁盘冗余阵列的管理设备和方法
CN101887386A (zh) * 2010-06-02 2010-11-17 深圳市迪菲特科技股份有限公司 一种磁盘阵列控制器故障处理方法及系统
CN101887351A (zh) * 2010-06-22 2010-11-17 杭州华三通信技术有限公司 一种磁盘阵列容错方法及其系统
CN101887351B (zh) * 2010-06-22 2012-07-11 杭州华三通信技术有限公司 一种磁盘阵列容错方法及其系统
CN103534693B (zh) * 2010-11-22 2016-08-24 马维尔国际贸易有限公司 在客户端之间共享对存储器的访问的方法和设备
CN103534693A (zh) * 2010-11-22 2014-01-22 马维尔国际贸易有限公司 在客户端之间共享对存储器的访问
CN102012847B (zh) * 2010-12-06 2013-05-08 创新科存储技术有限公司 一种磁盘阵列重建方法
CN102012847A (zh) * 2010-12-06 2011-04-13 创新科存储技术有限公司 一种改进的磁盘阵列重建方法
CN104699564A (zh) * 2013-12-09 2015-06-10 中国移动通信集团公司 一种采用Raid0磁盘组服务器的自动恢复方法及装置
CN108733313A (zh) * 2017-04-17 2018-11-02 伊姆西Ip控股有限责任公司 利用预备盘建立多级闪速缓存的方法、设备和计算机可读介质
CN107515731A (zh) * 2017-07-31 2017-12-26 华中科技大学 一种基于固态盘的进化存储系统及其工作方法
CN109725822B (zh) * 2017-10-27 2022-03-11 伊姆西Ip控股有限责任公司 用于管理存储系统的方法、设备和计算机程序产品
CN109725822A (zh) * 2017-10-27 2019-05-07 伊姆西Ip控股有限责任公司 用于管理存储系统的方法、设备和计算机程序产品
CN111133420A (zh) * 2017-12-15 2020-05-08 西部数据技术公司 来自外部阵列副本的raid阵列重建辅助
CN111133420B (zh) * 2017-12-15 2023-09-19 西部数据技术公司 来自外部阵列副本的raid阵列重建辅助
CN109799953A (zh) * 2018-12-14 2019-05-24 创新科存储技术(深圳)有限公司 一种快速重建raid的方法和装置
CN109799953B (zh) * 2018-12-14 2022-10-11 深圳创新科技术有限公司 一种快速重建raid的方法和装置
CN113900593A (zh) * 2021-10-12 2022-01-07 天津津航计算技术研究所 一种s.m.a.r.t.信息自动预警的raid控制卡架构
CN113900594A (zh) * 2021-10-12 2022-01-07 天津津航计算技术研究所 一种raid控制卡s·m·a·r·t·信息的预警方法
CN114079616A (zh) * 2021-11-02 2022-02-22 中国船舶重工集团公司第七0三研究所 一种非热备磁盘阵列服务器数据库冗余方法
CN114079616B (zh) * 2021-11-02 2023-11-03 中国船舶重工集团公司第七0三研究所 一种非热备磁盘阵列服务器数据库冗余方法

Also Published As

Publication number Publication date
HK1105695A1 (en) 2008-02-22
EP1774437A1 (en) 2007-04-18
US20050283655A1 (en) 2005-12-22
CA2579249A1 (en) 2006-02-23
US7313721B2 (en) 2007-12-25
JP2008509474A (ja) 2008-03-27
CN100561442C (zh) 2009-11-18
WO2006019643A1 (en) 2006-02-23
EP1774437B1 (en) 2008-06-04
DE602005007355D1 (de) 2008-07-17

Similar Documents

Publication Publication Date Title
CN100561442C (zh) 执行容错磁盘阵列的预先重建
US9697087B2 (en) Storage controller to perform rebuilding while copying, and storage system, and control method thereof
US7506187B2 (en) Methods, apparatus and controllers for a raid storage system
US7783922B2 (en) Storage controller, and storage device failure detection method
US7975168B2 (en) Storage system executing parallel correction write
US7590884B2 (en) Storage system, storage control device, and storage control method detecting read error response and performing retry read access to determine whether response includes an error or is valid
US7447938B1 (en) System and method for reducing unrecoverable media errors in a disk subsystem
US9037795B1 (en) Managing data storage by provisioning cache as a virtual device
US8065558B2 (en) Data volume rebuilder and methods for arranging data volumes for improved RAID reconstruction performance
US7565573B2 (en) Data-duplication control apparatus
CN102681794B (zh) 基于双控制器实现磁盘冗余阵列保护的方法及系统
US7587631B2 (en) RAID controller, RAID system and control method for RAID controller
CN101047010B (zh) 用于最大化raid系统中受保护数据量的方法和系统
US7310745B2 (en) Efficient media scan operations for storage systems
WO2014016860A1 (en) Raid storage system and rebuild process
US7958432B2 (en) Verification of non volatile storage storing preserved unneeded data
US10896088B2 (en) Metadata recovery mechanism for page storage
JP4491330B2 (ja) ディスクアレイ装置とそのデータのリカバリ方法およびデータリカバリプログラム
US7529776B2 (en) Multiple copy track stage recovery in a data storage system
US8239645B1 (en) Managing mirroring in data storage system having fast write device and slow write device
US7174476B2 (en) Methods and structure for improved fault tolerance during initialization of a RAID logical unit
RU2750645C1 (ru) Способ хранения данных в избыточном массиве независимых дисков с повышенной отказоустойчивостью
JP2000020248A (ja) ディスクの障害回復方法、ディスクドライバおよび記録媒体
KR19990051729A (ko) 이중 어레이 제어기를 갖는 래이드 시스템의 구조
JP6957845B2 (ja) ストレージ制御装置及びストレージ装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1105695

Country of ref document: HK

C14 Grant of patent or utility model
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: GR

Ref document number: 1105695

Country of ref document: HK

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: 20091118

Termination date: 20200711