CN101047010B - 用于最大化raid系统中受保护数据量的方法和系统 - Google Patents

用于最大化raid系统中受保护数据量的方法和系统 Download PDF

Info

Publication number
CN101047010B
CN101047010B CN2007101359100A CN200710135910A CN101047010B CN 101047010 B CN101047010 B CN 101047010B CN 2007101359100 A CN2007101359100 A CN 2007101359100A CN 200710135910 A CN200710135910 A CN 200710135910A CN 101047010 B CN101047010 B CN 101047010B
Authority
CN
China
Prior art keywords
raid
data
redundant array
independent disks
driver
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.)
Expired - Fee Related
Application number
CN2007101359100A
Other languages
English (en)
Other versions
CN101047010A (zh
Inventor
D·A·哈特
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN101047010A publication Critical patent/CN101047010A/zh
Application granted granted Critical
Publication of CN101047010B publication Critical patent/CN101047010B/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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • 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/1004Adaptive RAID, i.e. RAID system adapts to changing circumstances, e.g. RAID1 becomes RAID5 as disks fill up

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

一种用于最大化独立磁盘冗余阵列(RAID)存储系统中受保护数据量的计算机实现的方法、数据处理系统以及计算机程序产品。当接收到将多个物理磁盘驱动器配置到独立磁盘冗余阵列中的请求时,基于最小公分母而将多个物理磁盘驱动器中的每一个划分为数据块。然后将该数据块设置为形成有效的独立磁盘冗余阵列奇偶校验集合,从而最大化独立磁盘冗余阵列中受保护数据量。

Description

用于最大化RAID系统中受保护数据量的方法和系统
技术领域
本发明一般涉及计算机系统中的数据恢复,更具体来说,涉及用于最大化独立磁盘冗余阵列(RAID)存储系统中受保护数据量的计算机实现的方法、数据处理系统以及计算机程序产品。
背景技术
硬盘驱动器(“硬驱动器”)是用于大多数计算机或处理器的主要数据存储设备。典型的硬驱动器包含由多种磁性材料涂覆的硬盘盘片,用于以磁化形式来存储数据。该磁盘附于以恒定速率一致地旋转它们的主轴。磁头驱动臂放射状地移动一个或多个读/写磁头穿过磁盘以提取或存储该磁化的数据。硬驱动器的部件(磁盘、主轴、磁头驱动臂、读/写磁头、相关的马达和电路等)包含在头盘组件(HDA)中。
HDA保护硬驱动器部件免受灰尘、水汽以及其他源的污染。硬驱动器的磁盘或读/写磁头的污染会导致磁盘故障、磁头失效和/或不可恢复性的数据丢失。而且,其他硬驱动器问题也会引起数据丢失,例如故障电路、物理震动、磨损的部件、不正确加工的磁盘等。
解决硬驱动器中增加的硬错误问题的一种硬件方法是采用直接存取存储设备(DASD)。DASD的一个例子是独立磁盘冗余阵列(RAID)。该RAID方法将多个硬驱动器连接在一起并将它们看作是单个的逻辑单元。因此,计算机将多个驱动器视为能够类似于较小的单一驱动器那样被格式化和划分的一个大的硬驱动器。RAID实现通过跨越RAID集合中给定数量的物理磁盘来写入数据“条带(stripe)”,并通过适当存储该条带化数据的冗余信息,从而提高数据存储的可靠性/完整性。冗余信息支持当存储设备发生故障时对于丢失数据的恢复。
因此,由RAID方法的多个硬驱动器提供的冗余增进了由于硬错误所导致的丢失数据的恢复,并且还增进了所涉及的计算机系统的性能。然而,目前,在RAID中可配置的每个磁盘的存储空间受限于阵列中最小磁盘的存储空间大小。例如,如果两个35GB的磁盘被用于与70GB的磁盘一起构建RAID,则每个磁盘将向RAID的共计105GB的存储空间的阵列贡献35GB,而较大磁盘剩余的35GB将保持不受保护。因此,在现存RAID系统中可保护的数据量受到该RAID集合中最小驱动器的容量的限制。
因此,有益的是具有一种用于提高RAID存储系统中受保护数据量的方法和系统。
发明内容
本发明的实施方式提供一种用于最大化独立磁盘冗余阵列(RAID)存储系统中受保护数据量的计算机实现方法、数据处理系统以及计算机程序产品。当接收到将多个物理磁盘配置到独立磁盘冗余阵列中的请求时,基于最小公分母将该多个物理磁盘驱动器中的每一个驱动器划分成数据块。然后设置数据块以形成有效的独立磁盘冗余阵列奇偶校验集合,从而最大化独立磁盘冗余阵列中受保护数据量。
附图说明
在所附权利要求书中描述被认为是本发明特性的新颖性特征。但是,当结合附图阅读时,本发明自身及其优选的使用模式、另外的目的和优点将通过参考以下说明性实施方式的详细描述得到最佳的理解,其中:
图1是其中可以实现本发明的数据处理系统的示例性网络的示图;
图2描述了可以根据本发明示意性实施方式实现的数据处理系统的示例性框图;
图3是示出了根据本发明示意性实施方式的RAID存储子系统的示例性框图;
图4是示出了在配置RAID之前的直接存取存储设备(DASD)的示意性框图;
图5是示出了使用图4中DASD上的现有RAID配置技术所得到的受保护和不受保护的驱动器空间的框图;
图6是根据本发明示意性实施方式示出的在使用图4中DASD上的无定形(amorphous)RAID配置得到的受保护和不受保护的驱动器空间的示例性框图;
图7是示出了在配置RAID之前的直接存储存储设备(DASD)的示例性框图;
图8是示出了根据本发明示意性实施方式的依据最小公分母进行驱动器空间划分的示例性框图;
图9是示出了根据本发明示意性实施方式的将图8中创建的驱动器空间块组织成有效的奇偶校验集合以最大化受保护数据量的示例性框图;以及
图10是根据本发明示意性实施方式的用于最大化RAID存储系统中受保护数据量的处理流程图。
具体实施方式
现在参考附图,特别是参考图1-图2,提供了可以在其中实现本发明多个实施方式的数据处理环境的示意图。应当理解的是,图1-图2仅为示例性的,并不旨在声明或暗示对于可以在其中实现本发明多个方面或实施方式的环境的任何限制。在不偏离本发明的精神和范围的情况下,可以对所描述的环境做出多种修改。
现在参考附图,图1描述了其中可以实现本发明的多个方面的数据处理系统的网络的示图。网络数据处理系统100是其中可以实现本发明的多个实施方式的计算机网络。网络数据处理系统100包含网络102,其是一种介质,用于提供一起连接在网络数据处理系统100内的各种设备和计算机之间的通信链路。网络102可以包括诸如有线、无线通信链路或光缆之类的连接。
在所示出的例子中,服务器104和服务器106随磁盘阵列108一起连接至网络102。此外,客户端110、112和114连接至网络102。这些客户端110、112和114例如可以是个人计算机或网络计算机。在所示出的例子中,服务器104向客户端110、112和114提供诸如引导文件、操作系统映像以及应用的数据。在此例中,客户端110、112和114是服务器104的客户端。网络数据处理系统100可以包括未示出的另外的服务器、客户端以及其他设备。
在所示出的例子中,网络数据处理系统100是互联网,其中网络102表示利用传输控制协议/互联网协议(TCP/IP)的协议族进行彼此通信的全世界范围的网络和网关的集合。在互联网的核心处是主要节点和主计算机之间的高速数据通信链路的骨干,包括路由数据和消息的数以千计的商业、政府、教育和其他计算机系统。当然,网络数据处理系统100还可以实现为多种不同类型的网络,例如内联网、局域网(LAN)或广域网(WAN)。图1旨在进行示例,而不旨在对本发明的不同实施方式进行体系结构限制。
现在参考图2,示出了可以在其中实现本发明多个方面的数据处理系统的框图。数据处理系统200是计算机的例子,例如图1中的服务器104或客户端110,实现针对本发明实施方式的处理的计算机可用代码或指令可以位于该数据处理系统200中。
在所示出的例子中,数据处理系统200采用集线器体系结构,该集线器体系结构包括北桥和存储器控制器集线器(NB/MCH)202,以及南桥和输入/输出(I/O)控制器集线器(SB/ICH)204。处理单元206、主存储器208以及图形处理器210连接至NB/MCH202。图形处理器210可以通过加速图形端口(AGP)连接至NB/MCH202。
在所示出的例子中,局域网(LAN)适配器212连接至SB/ICH204。音频适配器216、键盘和鼠标适配器220、调制解调器222、只读存储器(ROM)224、硬盘驱动器(HDD)226、CD-ROM驱动器230、通用串行总线(USB)端口和其他通信端口232以及PCI/PCIe驱动器234通过总线238和总线240连接至SB/ICH204。PCI/PCIe驱动器可以包括例如以太网适配器、附加卡以及用于笔记本电脑的PC卡。PCI使用卡总线控制器,而PCIe不使用。ROM224例如可以是闪存二进制输入/输出系统(BIOS)。
HDD226和CD-ROM驱动器230通过总线240连接至SB/ICH204。HDD226和CD-ROM驱动器230可以使用例如电子集成驱动器(IDE)接口或串行高级技术附配(SATA)接口。超级I/O(SIO)设备236可以连接至SB/ICH204。
操作系统在处理单元206上运行,并协调和提供对图2中的数据处理系统200内的各个组件的控制。作为客户端,操作系统可以是商业可用的操作系统,例如Microsoft
Figure 071D59100_0
WindowsXP(Microsoft和Windows是Microsoft公司在美国、其他国家或二者中的商标)。面向对象的编程系统,例如JavaTM编程系统,可以结合该操作系统运行,并且提供从在数据处理系统200上执行的应用或JavaTM程序到操作系统的调用(Java是Sun Microsystems公司在美国、其他国家或二者中的商标)。
作为服务器,数据处理系统200可以例如是IBM
Figure 071D59100_2
eServerTMPSeries
Figure 071D59100_3
计算机系统,其运行高级交互执行(AIX
Figure 071D59100_4
)操作系统或LINUX
Figure 071D59100_5
操作系统(eServer、pSeries和AIX是国际商业机器公司在美国、其他国家或二者中的商标,而LINUX是Linus Torvalds在美国、其他国家或二者中的商标)。数据处理系统200可以是对称多处理器(SMP)系统,其在处理单元206中包括多个处理器。可选地,可以采用单处理器系统。
用于操作系统、面向对象的编程系统和应用的指令或程序位于诸如HDD226的存储设备中,也可以被加载进主存储器208中以便由处理单元206来执行。处理单元206利用计算机可用程序代码来执行本发明实施方式的处理,其中所述计算机可用程序代码可位于诸如主存储器208、ROM224的存储器中,或位于一个或多个外围设备226和230中。
本领域技术人员将可以理解的是,图1-图2中的硬件可以根据实现的不同而改变。其他内部硬件或外围设备,例如闪存、等同的非易失性存储器或光盘驱动器等,可以在图1-2中示出的硬件之外使用或替代图1-2中示出的硬件使用。而且,本发明的处理可以应用到多处理器数据处理系统中。
在某些说明性例子中,数据处理系统200可以是个人数字助理(PDA),其配置有闪存以提供用于存储操作系统文件和/或用户生成的数据的非易失性存储器。
总线系统可以包括一个或多个总线,例如如图2所示的总线238或总线240。当然,可以利用任何类型的通信构造或体系结构来实现该总线系统,其中所述通信构造或体系结构在附属于该构造或体系结构的不同组件或设备之间提供数据传送。通信单元可以包括用于发送和接收数据的一个或多个设备,例如图2的调制解调器222或网络适配器212。存储器例如可以是图2中的主存储器208、ROM224或诸如可在NB/MCH202中找到的高速缓存器。图1-图2中所示出的例子和上述例子不旨在暗示任何体系结构的限制。例如,数据处理系统200还可以是除采取PDA形式之外的平板计算机、膝上型计算机或者电话设备。
图3描述了RAID存储子系统。RAID系统300是图1中磁盘阵列108的例子。RAID系统300是数据冗余系统,其中数据的多个副本存储在多个不同的存储设备上以提高数据完整性。原始数据和冗余数据(可以结合原始数据一起使用以恢复缺陷数据的复制数据或奇偶校验数据)二者都存储在多个磁盘驱动器上。待保存数据或待备份数据通常由直接存取存储设备(DASD)控制器302从主机数据处理系统接收,该控制器302管理如何存储跨越多个磁盘驱动器(例如磁盘驱动器304、306、308和310)的原始数据和冗余数据。
有若干不同类型的RAID体系结构或技术,每一种均提供各种成本收益和性能折中。例如,RAID1使用数据镜像的概念,其从跨越两个物理驱动器(例如驱动器304和306)的单个逻辑驱动器来复制数据。这就创建了包含相同数据的一对驱动器。如果这些物理设备的其中之一发生故障,则来自剩余磁盘驱动器的数据仍然是可用的。RAID3跨越所有数据驱动器来对数据进行条带化。奇偶校验数据存储在单独的奇偶校验驱动器上。如果单个的磁盘驱动器发生故障,则该奇偶校验数据可用于对数据进行重构。除了RAID4跨越驱动器使用数据的块水平条带化而RAID3使用数据的字节水平条带化之外,RAID4与RAID3相似。针对数据条带化使用较大的分块提高了性能。RAID5使用块水平的条带化和分布式奇偶校验。数据和校验信息二者均跨越所有的磁盘进行扩展,从而消除可能在RAID3和RAID中出现的特定的奇偶校验磁盘瓶颈,并消除额外的专用奇偶校验磁盘。RAID6与RAID5相似,但RAID6使用第二校验方案,该方案跨越所有磁盘进行扩展;从而提供极高的错误和驱动故障容限。为了完整起见,还应当提及RAID0,尽管其并不提供数据冗余。替代地,其允许多个物理驱动器连接在一起从而形成大的逻辑驱动器,并且数据条带化被用于跨越这些驱动器来对数据块进行交织。从而,该布局对性能的提高之处在于,对于逻辑驱动器上数据的顺次读取得到对物理驱动器中的每一个进行并行读取。
RAID集合(或磁盘集合)是以单一特征群集在一起的特定数量的驱动器,并且可以包括整个阵列或可以是该阵列的子集。当构建RAID系统时,用户可以选择数据保护水平或“RAID风格”以实现上述图3提及的RAID体系结构中的其中一个。例如,如果有三个或更多驱动器可用于RAID,那么用户可以选择RAID5体系结构,该RAID体系结构在一个驱动器发生故障时保护所存储的数据。如果一个驱动器发生故障,那么所有的数据仍将完全可用,因为遗失数据从仍然可用的数据以及奇偶校验信息中计算出来。然而,如果两个驱动器发生故障,则数据将丢失。因此,如果用户期望提高的故障容限并且有四个或更多的驱动器可用于RAID,那么用户可以选择RAID6体系结构,该RAID6体系结构在上至两个驱动器发生故障的情况下保护所存储的数据。
不管所使用的RAID实现,每种RAID配置仍然受到RAID集合中最小驱动器的容量的限制,因为最小驱动器的容量决定RAID可以保护多少数据。本发明的一些方面通过提供缓和或消除该限制的无定形(amorphous)RAID算法来解决该限制,从而最大化了给定RAID集合中任意大小的驱动器的受保护数据量。因此,尽管现有的RAID配置技术允许用户通过选择期望的RAID体系结构来最大化数据保护水平,但本发明的无定形RAID算法通过允许用户最大化RAID集合中的受保护数据量来扩充了现有技术。
本发明的无定形RAID算法通过首先将基本单元定义为其大小由“最小公分母”概念确定的数据块来对受保护数据量的最大化。最小公分母概念用于将所述驱动器划分为多个相同大小容量的数据块。基本单元大小通过以下确定,即将驱动器的容量划分为多个块,其中该多个块可以被设置为最大化奇偶校验集合中三个或更多块的集合。此外,每个奇偶校验集合可以仅具有来自该集合中任何硬驱动器的一个基本单元。而且,每个块的大小应当使得通过奇偶校验集合设置所达到的、所有驱动器所涵盖的容量被最大化。尽管为了示例以下的例子将驱动器集合中最小驱动器的容量用作基本单元大小,但本发明并不限于这样的实施方式,并且可以使用用于对物理驱动器进行划分以最大化受保护数据量的任何算法。
一旦定义了基本单元大小并且确定了每个数据块,则可以将该块组织成有效的RAID奇偶校验集合。如上所述,有效的RAID奇偶校验集合要求在每个集合中表示最少三个的硬驱动器。额外的限制也将施加到块的组织中,该限制要求在任何给定的奇偶校验集合中对硬驱动器的表示不超过一次。因此,给定的奇偶校验集合在同一个驱动器中将不具有两个块。如果一个硬驱动器将在其上具有两个奇偶校验块,那么该驱动器将表示针对该奇偶校验集合的单个故障点。因为奇偶校验集合的目的在于保护该驱动器免受单个故障的影响,甚至免受RAID6情况下的双重故障的影响。因此,该方法必须最小程度地支持该限制。
相比较于简单地并排放置驱动器的当前RAID配置技术,本发明的机制将驱动块设置为奇偶校验集合以最大化受保护数据量。奇偶校验集合是由奇偶校验条带所保护的一组数据。奇偶校验是一种通过检验在计算机之间被移动或传送的数据是否被丢失或被覆盖来验证所存储的数据的完整性的技术。奇偶校验保护可用于从现存的数据中重新计算丢失的信息。如果存储奇偶校验的磁盘被丢失,那么可从该数据中重新生成奇偶校验。如果数据磁盘的其中一个被丢失,那么可以通过加入存留的数据磁盘的内容,然后从所存储的奇偶校验中减去该结果,而重新生成所述数据。
根据在板上使用的控制器的类型,无定形RAID算法可以作为硬件实施方式、软件实施方式或二者的组合来实现。例如,无定形RAID算法可以通过硬件RAID SCSI控制器的形式来实现,其中该硬件RAID SCSI控制器包括一种芯片组,其处理将硬驱动器划分为块并处理将这些块设置成有效的奇偶校验集合。因此,具有用于实现无定形RAID算法的逻辑的RAID SCSI控制器可用作DASD控制器302,从而提供完全的硬件解决方案。该无定形RAID算法也可以通过软件包的形式来实现,其中该软件包使用系统的CPU来提供处理功率以便划分驱动器并设置块。该实现允许使用DASD控制器,例如电子集成驱动器(IDE)控制器或串行高级技术附配(SATA)控制器,它们各自的板上硬件没有RAID能力。因此,DASD控制器302可以实现为IDE或SATA控制器,其中无定型RAID算法实现为软件解决方案。
此外,无定形RAID算法可以在客户需要或期望使用各种大小的DASD的情况下使用。例如,该情况可以在旧的驱动器仍然发挥功能但已废弃、并且其容量不再可用时发生。客户可以在这些旧的驱动器发生故障时将它们更换而不必更换所有的旧驱动器,并仍然保持了最大的数据保护量。
现在转至图4,示出的是表示在配置RAID集合之前的直接存取存储设备(DASD)的示例性框图。具体来说,直接存取存储设备400是磁盘驱动器被配置成RAID系统(例如图3中的RAID系统300)之前一个点处的一组磁盘驱动器。在该示意性的例子中,直接存取存储设备400包括四个磁盘驱动器:驱动器A402、驱动器B404、驱动器C406以及驱动器D408。驱动A402和驱动B404均包括70GB的可用驱动器空间,而驱动器C406和驱动器D408均包括35GB的可用驱动器空间。
图5是示出了在图4中的DASD上使用的现有RAID配置技术所得到的受保护和不受保护的驱动器空间的框图。利用典型的RAID配置技术,给定RAID集合中每个驱动的可RAID的数据量取决于该集合中最小驱动器的容量。当前的RAID配置限于最小的驱动器容量,因为奇偶校验条带包括来自每个驱动器(例如驱动器A502、驱动器B504、驱动器C506以及驱动器D508)的比特。四个驱动器中的三个包括所存储的数据,而驱动器中的一个存储包括基于其他三个数据比特的数学算法的奇偶校验比特。在此示意性例子中,最小驱动器是驱动器C506和驱动器D508,每个包括35GB。因此,使用典型的RAID配置技术,对于每个驱动器来说最大的可RAID空间将是35GB。典型的RAID技术不能奇偶校验驱动器A502和驱动器B504二者中剩余的35GB驱动器空间,因为这些驱动器的超出容量超过了该集合中的最小驱动器。结果,与该超出容量中的比特相比较,在驱动器C506和驱动器D508中具有不充分的驱动器空间。所得到的RAID配置保护来自每个驱动器A502、驱动器B504、驱动器C506和驱动器D508的35GB。如图所示,驱动器A502的超出容量(35GB)510和驱动器B504的超出容量(35GB)512是不受保护的,即共计70GB没有奇偶校验保护。
图6是示出根据本发明示意性实施方式的在图4中的DASD上使用无定形RAID配置所得到的受保护和不受保护的驱动器空间的示例性框图。利用本发明的无定形RAID方法,处于奇偶校验保护下的数据量可以增长到超过图5中典型RAID配置中的受保护数据量。在此特定的例子中,可以保护图4中驱动器A402、驱动器B404、驱动器C406和驱动器D408中的所有驱动器空间。因此,驱动器A602和驱动器B604中每一个的70GB的驱动空间以及驱动器C606和驱动器D608中每一个的35GB的驱动空间可以被保护,共计210GB。因此,使用无定形RAID方法,驱动器空间均能得到保护,而使用如图5所示的典型RAID配置,则有70GB的驱动器空间不受保护。
应当注意的是,利用无定形RAID方法,RAID体系结构中的相同限制得到继承并且是可应用的。例如,如果四个驱动器可用于如图4所示的RAID,那么用户可以选择具有如图5所示的典型RAID配置(具有并排的四个驱动器单元的奇偶校验条带),或者利用无定形RAID配置(具有三个驱动器单元610、612和614的奇偶校验条带)最大化所保护的数据。换言之,尽管图4中DASD400的典型RAID配置得到如图5所示的具有两个奇偶校验条带的高容限的RAID 6体系结构,无定形RAID配置也可以得到具有较少的数据保护水平(只有一个奇偶校验条带)的RAID5体系结构,但更多的驱动器空间将处于奇偶校验保护之下。因此,使用如图6中所示的无定形算法,用户可以最大化被RAID的驱动器容量,但得到阵列的RAID 5体系结构。相比之下,典型的RAID技术将得到70GB不受奇偶校验保护,但阵列将处于RAID6配置中。因此,两个驱动器可以发生故障而数据仍然得到保持。因此,具有两个35GB驱动器和两个70GB驱动器的用户可以选择利用三个驱动器单元最大化所保护的数据量并对所有的容量进行RAID,而不必利用四个驱动器单元浪费奇偶校验条带中的超出容量。
图7是示出了在配置RAID之前的直接存储存储设备(DASD)的示例性框图。直接存储存储设备700是在磁盘驱动器被配置成RAID系统(例如图3中的RAID系统300)之前的一点处的一组磁盘驱动器。在该示意性例子中,直接存取存储设备700包括五个磁盘驱动器:驱动器A702、驱动器B704、驱动器C706、驱动器E708以及驱动器F710。驱动器A702、驱动器B704以及驱动器E708均包括70GB的驱动器空间,而驱动器C706包括35GB的驱动器空间,而驱动器F710包括140GB的驱动器空间。
图8和图9是根据本发明示意性实施方式的描述了无定形RAID配置方法的框图。具体来说,图8是示出了根据最小公分母的驱动器空间划分的示例性框图。图7的DASD700中的每个驱动器被划分为基本单元,或者划分为A1802、A2804、B1806、B2808、C810、E1812、E2814、F1816、F2818、F3820以及F4822。在此示意性实施方式中使用的基本单元大小是DASD中最小驱动器的容量(在图7中为35GB的驱动器C706)。然而,不要求该基本单元的大小是最小驱动器的容量,也可以使用其它的数据块大小。如上所述,可以通过采用最小公分母概念来获得该基本单元大小,其中该概念以最大化奇偶校验集合中三个或更多块的集合的方式来划分驱动器,其中每个奇偶校验集合仅有来自任何给定硬驱动器的一个数据块,并且该块的大小使得通过奇偶校验集合设置、所有驱动器所涵盖的容量被最大化。
图9是示出了利用本发明的无定形RAID配置将图8中创建的驱动器空间块组织成有效的奇偶校验集合以最大化受保护数据量的示例性框图。一旦在图8中确定了驱动器块,那么接下来就可以将该块组织成有效的RAID奇偶校验集合。由于最少需要三个物理驱动器以形成有效的RAID奇偶校验,所以通过以下列方式堆放块从而将块A1902、A2904、B1906、B2908、C910、E1912、E2914、F1916、F2918、F3920以及F4922进行组织,所述方式使得在任何给定的奇偶校验集合中表示出至少三个物理上不同的驱动器。进一步的限制被应用到分的组织中,该限制要求的是任何给定奇偶校验集合中的物理驱动器(例如驱动器A)在该集合中的表示不超过一次。换言之,奇偶校验集合可以不包括同一驱动器的两个分块(例如A1和A2)。
例如,如图9所示,跨越四个物理驱动器(930、932、934、936)将块设置为三个有效的奇偶校验集合(924、926、928)以最大化受保护数据量。奇偶校验集合1924包括块A1902、C910以及F2918,奇偶校验集合2926包括块B1906、E1912以及F3920,而奇偶校验集合3928包括块A2904、B2908、E2914以及F4922。图9中的无定形RAID配置遵守这样的限制,即在给定奇偶校验集合中物理驱动器不被表示两次,因为在奇偶校验集合924、926和928的每一个中,每个驱动器(A、B、C、E和F)仅被表示一次。
图9中的RAID配置使得在共计385GB的驱动器空间中仅留下35GB(F1916)不受保护。相比之下,典型的RAID配置仅可以保护图7中所示的所有五个驱动器中的35GB部分,或者可选地保护四个驱动器上的70GB并留出RAID集合中小的35GB驱动器。在共计385GB的驱动器空间之中,上述第一典型RAID配置留下210GB不受保护,而第二典型RAID配置留下105GB不受保护。因此,本发明的无定形RAID算法优于现有RAID配置方法之处在于允许提高驱动器上的受保护数据量。    
图10是根据本发明示意性实施方式的用于最大化RAID存储系统中受保护数据量的处理流程图。该处理开始于从用户接收请求以启动DASD的RAID配置(步骤1002)。响应于接收到该请求,向用户呈现包括用于利用本发明的无定形RAID方法来最大化受保护数据量的选项的界面(步骤1004)。该界面可以包括通常RAID体系结构的菜单(例如RAID0、RAID1、RAID2等),以及用于最大化受保护数据的新无定形RAID指示。依据在界面接收到的用户输入,则确定该用户是否选择了无定形RAID配置来最大化驱动器上受保护数据量(步骤1006)。如果用户选择了典型的RAID配置来最大化驱动器上数据的保护水平,则使用典型RAID配置技术来配置该DASD(步骤1008),此后处理结束。
回到步骤1006,如果用户已选择了利用无定形RAID配置来最大化受保护数据量,则将该驱动器划分为其大小基于最小公分母概念的基本单元(数据块)(步骤1010)。最小公分母概念允许以下列方式来划分驱动器,即得到跨越三个或更多个物理驱动器的至少一个有效的奇偶校验条带。然后将该基本单元或数据块组织成奇偶校验集合以最大化受保护数据量(步骤1012)。对组织块以最大化受保护数据量的限制包括以下列方式来设置块,即在任何给定的奇偶校验集合中具有至少三个物理上不同的驱动器被表示,并且对任何给定的奇偶校验集合中的物理驱动器的表示不超过一次。
本发明可以采用完全的硬件实施方式、完全的软件实施方式或包含硬件和软件单元二者的实施方式的形式。另外,本发明可采用可从计算机可用或计算机可读介质访问的计算机程序产品的形式,该计算机可用或计算机可读介质提供用于由计算机或任何指令执行系统使用或结合计算机或任何指令系统使用的程序代码。为了描述,计算机可用或计算机可读介质可以是任何的实际装置,其可包含、存储、通信、传播或传输程序,以便由指令执行系统、装置或设备使用或结合指令执行系统、装置或设备使用。
该介质可以是电子、磁、光学、电磁、红外或半导体系统(或设备或装置)或传播介质。计算机可读介质的例子包括半导体或固态存储器、磁带、可移动计算机磁盘、随机存取存储器(RAM)、只读存储器(ROM)、硬磁盘和光盘。当前的光盘的例子包括高密度盘—只读存储器(CD-ROM)、高密度盘—读/写存储器(CD-R/W)和DVD。
适于存储和/或执行程序代码的数据处理系统将包括通过系统总线直接或间接耦合至存储器元件的至少一个处理器。存储器元件可以包括程序代码实际执行期间采用的本地存储器、大容量存储器以及高速缓冲存储器,其提供至少一些程序代码临时存储,以便减少在执行期间必须从大容量存储器中提取的代码的次数。
输入/输出或I/O设备(包括但不限于键盘、显示器、指向设备等)可以直接或通过介入I/O控制器来耦合至系统。
网络适配器也可以耦合至该系统,以使得数据处理系统能够通过介入的专用或公共网络耦合至其他数据处理系统或远程打印机或存储设备。调制解调器、线缆调制解调器以及以太网卡仅是当前可用的几类网络适配器。
为了说明和描述而提供了对本发明的实施方式的描述,并不旨在以公开的形式来穷举或限制本发明。对于本领域的普通技术人员来说,多种修改和变化都是显而易见的。选择并描述这些实施方式是为了最佳地解释本发明的实施方式的原理、实际应用,并使得本领域的其他普通技术人员能够就具有适于预期的特定用途的各种变化的各种实施方式而理解本发明。

Claims (8)

1.一种用于最大化独立磁盘冗余阵列中受保护数据量的计算机实现的方法,所述计算机实现的方法包括:
响应于接收到将多个物理磁盘驱动器配置为独立磁盘冗余阵列的请求,按照最小公分母而将所述多个物理磁盘驱动器中的每一个划分为相同大小的数据块;以及
设置所述数据块以形成有效的独立磁盘冗余阵列奇偶校验集合,从而最大化所述独立磁盘冗余阵列中的受保护数据量,其中所述有效的独立磁盘冗余阵列奇偶校验集合包括来自至少三个或更多物理磁盘驱动器的数据块,并且所述有效的独立磁盘冗余阵列奇偶校验集合中的每个物理磁盘驱动器只被表示一次。
2.根据权利要求1所述的计算机实现的方法,进一步包括:
响应于接收到所述请求,向用户提供界面,其中所述界面包括用以最大化独立磁盘冗余阵列中受保护数据量的选项。
3.根据权利要求2所述的计算机实现的方法,其中响应于确定所述用户已经选择了用以最大化所述受保护数据量的选项而执行所述划分和设置步骤。
4.根据权利要求2所述的计算机实现的方法,其中所述界面包括独立磁盘冗余阵列体系结构的可选择菜单。
5.一种用于最大化独立磁盘冗余阵列中受保护数据量的设备,所述设备包括:
用于响应于接收到将多个物理磁盘驱动器配置为独立磁盘冗余阵列的请求,按照最小公分母而将所述多个物理磁盘驱动器中的每一个划分为相同大小的数据块的装置;以及
用于设置所述数据块以形成有效的独立磁盘冗余阵列奇偶校验集合,从而最大化所述独立磁盘冗余阵列中的受保护数据量的装置,其中所述有效的独立磁盘冗余阵列奇偶校验集合包括来自至少三个或更多物理磁盘驱动器的数据块,并且其中所述有效的独立磁盘冗余阵列奇偶校验集合中的每个物理磁盘驱动器只被表示一次。
6.根据权利要求5所述的设备,所述设备进一步包括:
用于响应于接收到所述请求,向用户提供界面的装置,其中所述界面包括用以最大化独立磁盘冗余阵列中受保护数据量的选项。
7.根据权利要求6所述的设备,所述设备进一步包括:
用于响应于确定所述用户已经选择了用以最大化所述受保护数据量的选项而执行划分和设置的装置。
8.根据权利要求6所述的设备,其中所述界面包括独立磁盘冗余阵列体系结构的可选择菜单。
CN2007101359100A 2006-03-29 2007-03-09 用于最大化raid系统中受保护数据量的方法和系统 Expired - Fee Related CN101047010B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/277,819 US7617361B2 (en) 2006-03-29 2006-03-29 Configureable redundant array of independent disks
US11/277,819 2006-03-29

Publications (2)

Publication Number Publication Date
CN101047010A CN101047010A (zh) 2007-10-03
CN101047010B true CN101047010B (zh) 2010-11-10

Family

ID=38560799

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007101359100A Expired - Fee Related CN101047010B (zh) 2006-03-29 2007-03-09 用于最大化raid系统中受保护数据量的方法和系统

Country Status (4)

Country Link
US (1) US7617361B2 (zh)
JP (1) JP2007265409A (zh)
CN (1) CN101047010B (zh)
TW (1) TW200817992A (zh)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7783604B1 (en) * 2007-12-31 2010-08-24 Emc Corporation Data de-duplication and offsite SaaS backup and archiving
US8473466B1 (en) * 2007-12-31 2013-06-25 Teradata Us, Inc. Systems and methods for storing data, such as storing data based on storage classes
KR20110050404A (ko) 2008-05-16 2011-05-13 퓨전-아이오, 인크. 결함 있는 데이터 저장소를 검출하고 교체하는 장치, 시스템 및 프로그램 제품
US8234445B2 (en) * 2008-06-09 2012-07-31 Infortrend Technology, Inc. RAID data protection architecture using data protection information
US8307258B2 (en) 2009-05-18 2012-11-06 Fusion-10, Inc Apparatus, system, and method for reconfiguring an array to operate with less storage elements
US8281227B2 (en) 2009-05-18 2012-10-02 Fusion-10, Inc. Apparatus, system, and method to increase data integrity in a redundant storage system
JP2011154547A (ja) * 2010-01-27 2011-08-11 Toshiba Corp メモリ管理装置及びメモリ管理方法
US20140063983A1 (en) * 2012-09-06 2014-03-06 International Business Machines Corporation Error Detection And Correction In A Memory System
US9417822B1 (en) * 2013-03-15 2016-08-16 Western Digital Technologies, Inc. Internal storage manager for RAID devices
US9152328B2 (en) * 2013-07-02 2015-10-06 Avago Technologies General Ip (Singapore) Pte Ltd Redundant array of independent disks volume creation
US20170060421A1 (en) * 2015-08-31 2017-03-02 Dell Products, Lp System and Method to Support Shingled Magnetic Recording Hard Drives in a Storage System
JP6078180B1 (ja) * 2016-01-22 2017-02-08 西日本電信電話株式会社 データ分散装置、データ分散方法及びデータ分散プログラム
CN107766180B (zh) * 2017-09-22 2020-08-14 成都华为技术有限公司 存储介质的管理方法、装置及可读存储介质
US11157356B2 (en) * 2018-03-05 2021-10-26 Samsung Electronics Co., Ltd. System and method for supporting data protection across FPGA SSDs
US10768856B1 (en) * 2018-03-12 2020-09-08 Amazon Technologies, Inc. Memory access for multiple circuit components
US10976947B2 (en) * 2018-10-26 2021-04-13 Pure Storage, Inc. Dynamically selecting segment heights in a heterogeneous RAID group
JP2020095548A (ja) * 2018-12-13 2020-06-18 株式会社日立製作所 不揮発性メモリドライブを備えたシステム
US10732884B1 (en) * 2019-03-28 2020-08-04 International Business Machines Corporation Implementing redundant array of independent disks (RAID) arrays having compressed data stored therein
CN111857536B (zh) * 2019-04-24 2024-06-14 伊姆西Ip控股有限责任公司 管理存储设备的方法、电子设备以及计算机可读介质
CN111857537B (zh) * 2019-04-24 2024-04-12 伊姆西Ip控股有限责任公司 管理存储设备的方法、电子设备以及计算机可读介质
CN112748862A (zh) * 2019-10-31 2021-05-04 伊姆西Ip控股有限责任公司 用于管理盘的方法、电子设备和计算机程序产品
CN114063892B (zh) * 2020-08-07 2024-03-26 华为技术有限公司 独立磁盘冗余阵列卡,处理命令的方法,存储装置和系统
CN114079616B (zh) * 2021-11-02 2023-11-03 中国船舶重工集团公司第七0三研究所 一种非热备磁盘阵列服务器数据库冗余方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5845319A (en) * 1995-08-23 1998-12-01 Fujitsu Limited Disk array device which separates local and physical disks using striping and operation mode selection
CN1551202A (zh) * 2003-05-06 2004-12-01 �Ҵ���˾ 自修复方法和存储系统

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0863298A (ja) * 1994-08-18 1996-03-08 Hitachi Ltd ディスクアレイ装置
JP3358687B2 (ja) * 1995-03-13 2002-12-24 株式会社日立製作所 ディスクアレイ装置
US5875456A (en) 1995-08-17 1999-02-23 Nstor Corporation Storage device array and methods for striping and unstriping data and for adding and removing disks online to/from a raid storage array
JP4044160B2 (ja) * 1995-08-23 2008-02-06 富士通株式会社 ディスクアレイ装置
JP3454183B2 (ja) * 1999-04-13 2003-10-06 日本電気株式会社 ディスクアレイ装置
US6487636B1 (en) * 2000-04-24 2002-11-26 Hewlett-Packard Co. Method and apparatus for mapping data in a heterogeneous disk array storage system
US6795895B2 (en) 2001-03-07 2004-09-21 Canopy Group Dual axis RAID systems for enhanced bandwidth and reliability
US6954824B2 (en) * 2001-10-15 2005-10-11 International Business Machines Corporation Method, system, and program for determining a configuration of a logical array including a plurality of storage devices
US6895467B2 (en) 2001-10-22 2005-05-17 Hewlett-Packard Development Company, L.P. System and method for atomizing storage
WO2004003783A1 (en) * 2002-07-01 2004-01-08 Thomson Licensing S.A. Heterogeneous disk storage management technique
US7076606B2 (en) 2002-09-20 2006-07-11 Quantum Corporation Accelerated RAID with rewind capability
JP2004157637A (ja) * 2002-11-05 2004-06-03 Hitachi Ltd ストレージ管理方法
JP2004213064A (ja) * 2002-12-26 2004-07-29 Fujitsu Ltd Raid装置及びその論理デバイス拡張方法
JP2004272324A (ja) * 2003-03-05 2004-09-30 Nec Corp ディスクアレイ装置
JP4335597B2 (ja) * 2003-06-30 2009-09-30 株式会社日立製作所 ストレージ管理システム
US7328305B2 (en) * 2003-11-03 2008-02-05 Network Appliance, Inc. Dynamic parity distribution technique
US7216200B2 (en) * 2003-11-04 2007-05-08 Dell Products L.P. System and method for remote RAID configuration
US7681007B2 (en) 2004-04-15 2010-03-16 Broadcom Corporation Automatic expansion of hard disk drive capacity in a storage device
CA2590361C (en) * 2004-11-05 2012-01-03 Data Robotics Incorporated Dynamically expandable and contractible fault-tolerant storage system permitting variously sized storage devices and method
US7873782B2 (en) * 2004-11-05 2011-01-18 Data Robotics, Inc. Filesystem-aware block storage system, apparatus, and method

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5845319A (en) * 1995-08-23 1998-12-01 Fujitsu Limited Disk array device which separates local and physical disks using striping and operation mode selection
CN1551202A (zh) * 2003-05-06 2004-12-01 �Ҵ���˾ 自修复方法和存储系统

Also Published As

Publication number Publication date
TW200817992A (en) 2008-04-16
CN101047010A (zh) 2007-10-03
US20070233949A1 (en) 2007-10-04
JP2007265409A (ja) 2007-10-11
US7617361B2 (en) 2009-11-10

Similar Documents

Publication Publication Date Title
CN101047010B (zh) 用于最大化raid系统中受保护数据量的方法和系统
US10191676B2 (en) Scalable storage protection
US8171379B2 (en) Methods, systems and media for data recovery using global parity for multiple independent RAID levels
EP1774437B1 (en) Performing a preemptive reconstruct of a fault-tolerant raid array
JP3742494B2 (ja) 大容量記憶装置
US7464322B2 (en) System and method for detecting write errors in a storage device
US20090271659A1 (en) Raid rebuild using file system and block list
US20090113235A1 (en) Raid with redundant parity
JP2008539474A (ja) パワーセーフディスクストレージ装置、システム及び方法
KR20110086725A (ko) 솔리드-스테이트 저장장치의 고장을 예측하는 장치, 시스템 및 방법
US20150143027A1 (en) Solid state drive with raid functions
CN103534688A (zh) 数据恢复方法、存储设备和存储系统
US20050066230A1 (en) Data reliabilty bit storage qualifier and logical unit metadata
JP2006172320A (ja) データ複製制御装置
US5896493A (en) Raid algorithm using a multimedia functional unit
JP2006139478A (ja) ディスクアレイシステム
US20060215456A1 (en) Disk array data protective system and method
US5574736A (en) Data storage device and method of operation
US20100138603A1 (en) System and method for preventing data corruption after power failure
US20150143024A1 (en) Redundant array of independent modules
JP4469822B2 (ja) ディスクアレイ装置およびディスクアレイ装置のデータ管理方法
US20030163757A1 (en) RAID subsystem and data input/output and recovery method in disk error mode
JP2011141857A (ja) Raidシステム
US7975104B2 (en) Method for preserving data integrity by breaking the redundant array of independent disks level 1(RAID1)
JP2000020248A (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
C14 Grant of patent or utility model
GR01 Patent grant
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: 20101110

Termination date: 20160309