新闻资讯
看你所看,想你所想

RAID磁碟阵列

RAID磁碟阵列

RAID磁碟阵列

RAID是英文Redundant Array of Independent Disks的缩写,中文简称为独立冗余磁碟阵列。简单的说,RAID是一种把多块独立的硬碟(物理硬碟)按不同的方式组合起来形成一个硬碟组(逻辑硬碟),从而提供比单个硬碟更高的存储性能和提供数据备份技术。

组成磁碟阵列的不同方式称为RAID级别(RAID Levels)。在用户看起来,组成的磁碟组就像是一个硬碟,用户可以对它进行分区,格式化等等。总之,对磁碟阵列的操作与单个硬碟一模一样。不同的是,磁碟阵列的存储速度要比单个硬碟高很多,而且可以提供自动数据备份。数据备份的功能是在用户数据一旦发生损坏后,利用备份信息可以使损坏数据得以恢复,从而保障了用户数据的安全性。

基本介绍

  • 中文名:RAID磁碟阵列
  • 外文名:Redundant Array of Independent Disks
  • 中文简称:独立冗余磁碟阵列
  • 属性:一个硬碟组

主要目的

虽然RAID包含多块硬碟,但是在作业系统下是作为一个独立的大型存储设备出现。利用RAID技术于存储系统的好处主要有以下三种:
通过把多个磁碟组织在一起作为一个逻辑卷提供磁碟跨越功能;
通过把数据分成多个数据块(Block)并行写入/读出多个磁碟以提高访问磁碟的速度;
通过镜像或校验操作提供容错能力;
最初开发RAID的主要目的是节省成本,当时几块小容量硬碟的价格总和要低于大容量的硬碟。目前来看RAID在节省成本方面的作用并不明显,但是 RAID可以充分发挥出多块硬碟的优势,实现远远超出任何一块单独硬碟的速度和吞吐量。除了性能上的提高之外,RAID还可以提供良好的容错能力,在任何一块硬碟出现问题的情况下都可以继续工作,不会受到损坏硬碟的影响。
RAID技术分为几种不同的等级,分别可以提供不同的速度,安全性和性价比。根据实际情况选择适当的RAID级别可以满足用户对存储系统可用性、性能和容量的要求。常用的RAID级别有以下几种:NRAID,JBOD,RAID0,RAID1,RAID1+0,RAID3,RAID5等。目前经常使用的是RAID5和RAID(1+0)。
磁碟阵列(Disk Array)是由一个硬碟控制器来控制多个硬碟的相互连线,使多个硬碟的读写同步,减少错误,增加效率和可靠度的技术。磁碟阵列卡则是实现这一技术的硬体产品,磁碟阵列卡拥有一个专门的处理器,还拥有专门的存贮器,用于高速缓冲数据。使用磁碟阵列卡伺服器对磁碟的操作就直接通过阵列卡来进行处理,因此不需要大量的CPU及系统记忆体资源,不会降低磁碟子系统的性能。阵列卡专用的处理单元来进行操作,它的性能要远远高于常规非阵列硬碟,并且更安全更稳定。
RAID技术的两大特点:一是速度、二是安全,由于这两项优点,RAID技术早期被套用于高级伺服器中的SCSI接口的硬碟系统中,随着近年计算机技术的发展,PC机的CPU的速度已进入GHz 时代。IDE接口的硬碟也不甘落后,相继推出了ATA66和ATA100硬碟。这就使得RAID技术被套用于中低档甚至个人PC机上成为可能。RAID通常是由在硬碟阵列塔中的RAID控制器或电脑中的RAID卡来实现的。

分类

RAID技术经过不断的发展,现在已拥有了从 RAID 0 到 7 八种基本的RAID 级别。另外,还有一些基本RAID级别的组合形式,如RAID 10(RAID 0与RAID 1的组合),RAID 50(RAID 0与RAID 5的组合)等。不同RAID 级别代表着不同的存储性能、数据安全性和存储成本。但我们最为常用的是下面的几种RAID形式。
(1)RAID 0
(2) RAID 1
(3)RAID 0+1
(4) RAID 3
(5) RAID 5
RAID级别的选择有三个主要因素:可用性(数据冗余)、性能和成本。如果不要求可用性,选择RAID0以获得最佳性能。如果可用性和性能是重要的而成本不是一个主要因素,则根据硬碟数量选择RAID 1。如果可用性、成本和性能都同样重要,则根据一般的数据传输和硬碟的数量选择RAID3、RAID5。

发展

在计算机发展的初期,“大容量”硬碟的价格还相当高,解决数据存储安全性问题的主要方法是使用磁带机等设备进行备份,这种方法虽然可以保证数据的安全,但查阅和备份工作都相当繁琐。
1987年, Patterson、Gibson和Katz这三位工程师在加州大学伯克利分校发表了题为《A Case of Redundant Array of Inexpensive Disks(廉价磁碟冗余阵列方案)》的论文,其基本思想就是将多只容量较小的、相对廉价的硬碟驱动器进行有机组合,使其性能超过一只昂贵的大硬碟。
这一设计思想很快被接受,从此RAID技术得到了广泛套用,数据存储进入了更快速、更安全、更廉价的新时代。
磁碟阵列对于个人电脑用户,还是比较陌生和神秘的。印象中的磁碟阵列似乎还停留在这样的场景中:在宽阔的大厅里,林立的磁碟柜,数名表情阴郁、早早谢顶的工程师徘徊在其中,不断从中抽出一块块沉重的硬碟,再插入一块块似乎更加沉重的硬碟……终于,随着大容量硬碟的价格不断降低,个人电脑的性能不断提升,IDE-RAID作为磁碟性能改善的最廉价解决方案,开始走入一般用户的计算机系统。

规範

RAID技术主要包含RAID 0~RAID 7等数个规範,它们的侧重点各不相同,常见的规範有如下几种:
RAID 0:连续以位或位元组为单位分割数据,并行读/写于多个磁碟上,因此具有很高的数据传输率,但它没有数据冗余,因此并不能算是真正的RAID结构。RAID 0只是单纯地提高性能,并没有为数据的可靠性提供保证,而且其中的一个磁碟失效将影响到所有数据。因此,RAID 0不能套用于数据安全性要求高的场合。
RAID 1:它是通过磁碟数据镜像实现数据冗余,在成对的独立磁碟上产生互 为备份的数据。当原始数据繁忙时,可直接从镜像拷贝中读取数据,因此RAID 1可以提高读取性能。RAID 1是磁碟阵列中单位成本最高的,但提供了很高的数据安全性和可用性。当一个磁碟失效时,系统可以自动切换到镜像磁碟上读写,而不需要重组失效的数据。
RAID 0+1: 也被称为RAID 10标準,实际是将RAID 0和RAID 1标準结合的产物,在连续地以位或位元组为单位分割数据并且并行读/写多个磁碟的同时,为每一块磁碟作磁碟镜像进行冗余。它的优点是同时拥有RAID 0的超凡速度和RAID 1的数据高可靠性,但是CPU占用率同样也更高,而且磁碟的利用率比较低。
RAID 2:将数据条块化地分布于不同的硬碟上,条块单位为位或位元组,并使用称为“加重平均纠错码(海明码)”的编码技术来提供错误检查及恢复。这种编码技术需要多个磁碟存放检查及恢覆信息,使得RAID 2技术实施更複杂,因此在商业环境中很少使用。
RAID 3:它同RAID 2非常类似,都是将数据条块化分布于不同的硬碟上,区别在于RAID 3使用简单的奇偶校验,并用单块磁碟存放奇偶校验信息。如果一块磁碟失效,奇偶盘及其他数据盘可以重新产生数据;如果奇偶盘失效则不影响数据使用。RAID 3对于大量的连续数据可提供很好的传输率,但对于随机数据来说,奇偶盘会成为写操作的瓶颈。
RAID 4:RAID 4同样也将数据条块化并分布于不同的磁碟上,但条块单位为块或记录。RAID 4使用一块磁碟作为奇偶校验盘,每次写操作都需要访问奇偶盘,这时奇偶校验盘会成为写操作的瓶颈,因此RAID 4在商业环境中也很少使用。
RAID 5:RAID 5不单独指定的奇偶盘,而是在所有磁碟上交叉地存取数据及奇偶校验信息。在RAID 5上,读/写指针可同时对阵列设备进行操作,提供了更高的数据流量。RAID 5更适合于小数据块和随机读写的数据。
RAID 3与RAID 5相比,最主要的区别在于RAID 3每进行一次数据传输就需涉及到所有的阵列盘;而对于RAID 5来说,大部分数据传输只对一块磁碟操作,并可进行并行操作。在RAID 5中有“写损失”,即每一次写操作将产生四个实际的读/写操作,其中两次读旧的数据及奇偶信息,两次写新的数据及奇偶信息。
RAID 6:与RAID 5相比,RAID 6增加了第二个独立的奇偶校验信息块。两个独立的奇偶系统使用不同的算法,数据的可靠性非常高,即使两块磁碟同时失效也不会影响数据的使用。但RAID 6需要分配给奇偶校验信息更大的磁碟空间,相对于RAID 5有更大的“写损失”,因此“写性能”非常差。较差的性能和複杂的实施方式使得RAID 6很少得到实际套用。
RAID 7:这是一种新的RAID标準,其自身带有智慧型化实时作业系统和用于存储管理的软体工具,可完全独立于主机运行,不占用主机CPU资源。RAID 7可以看作是一种存储计算机(Storage Computer),它与其他RAID标準有明显区别。除了以上的各种标準,我们可以如RAID 0+1那样结合多种RAID规範来构筑所需的RAID阵列,例如RAID 5+3(RAID 53)就是一种套用较为广泛的阵列形式。用户一般可以通过灵活配置磁碟阵列来获得更加符合其要求的磁碟存储系统。
开始时RAID方案主要针对SCSI硬碟系统,系统成本比较昂贵。1993年,HighPoint公司推出了第一款IDE-RAID控制晶片,能够利用相对廉价的IDE硬碟来组建RAID系统,从而大大降低了RAID的“门槛”。
从此,个人用户也开始关注这项技术,因为硬碟是现代个人计算机中发展最为“缓慢”和最缺少安全性的设备,而用户存储在其中的数据却常常远超计算机的本身价格。在花费相对较少的情况下,RAID技术可以使个人用户也享受到成倍的磁碟速度提升和更高的数据安全性,现在个人电脑市场上的IDE-RAID控制晶片主要出自HighPoint和Promise公司,此外还有一部分来自AMI公司。
面向个人用户的IDE-RAID晶片一般只提供了RAID 0、RAID 1和RAID 0+1(RAID 10)等RAID规範的支持,虽然它们在技术上无法与商用系统相提并论,但是对普通用户来说其提供的速度提升和安全保证已经足够了。
随着硬碟接口传输率的不断提高,IDE-RAID晶片也不断地更新换代,晶片市场上的主流晶片已经全部支持ATA 100标準,而HighPoint公司新推出的HPT 372晶片和Promise最新的PDC20276晶片,甚至已经可以支持ATA 133标準的IDE硬碟。在主机板厂商竞争加剧、个人电脑用户要求逐渐提高的今天,在主机板上板载RAID晶片的厂商已经不在少数,用户完全可以不用购置RAID卡,直接组建自己的磁碟阵列,感受磁碟狂飙的速度。

技巧

从技术的角度来看,RAID恢复服务提供商不仅需要具备包括原先的5种(或者6种,如果包括RAID 0或者无RAID保护)基本的RAID阵列级别或者技术的能力,而且需要具备RAID 5E、RAID 5EE、RAID 6、RAID 10、RAID 50、RAID 51、RAID 60以及RAID ADG等其它级别的能力。这些RAID级别可以利用多个连线和磁碟驱动器的类型以及各种各样的乙太网连线。技术挑战之外就是由伺服器和存储系统厂商以及有些介质製造商带来的RAID技术的变化。
1、找一家支持您的硬体的RAID恢复服务。底线是你需要详述受损的RAID集的特性:部件的型号和生产商、RAID软体的固件版本、驱动器的大小和型号、连线的类型、使用的作业系统、甚至把数据写入存储的可能的业务应用程式。然后你需要找一家对你现有的配置有经验的服务提供商。
2、了解RAID故障的原因。不要接受厂商有时会做出的有关“RAID故障的四个基本原因”的简单的保证。儘管由于硬体RAID故障、软体RAID故障、人为错误以及应用程式错误,的确出现RAID系统中断,但是对根本原因的分类的了解并不代表把数据从受损的RAID集进行恢复的能力。
3、寻求认证的RAID恢复服务提供商。如果服务提供商具备恢复服务的基本实践方面的认证,例如国际标準ISO 4级、美国联邦标準10级的洁净室认证(Cleanroom Certification)(管控执行工作的设施中悬浮粒子污染等级,如果工作是在服务提供商的公司执行)、遵从敏感数据资产安全处理的SSAE 16 Type II审计準则以及可能适用你的数据的性质以及法律/监管规定的数据保存和保护要求的其它认证,这通常是一个好兆头。你也应该从硬体厂商寻求你的RAID系统基于的设备或者软体的认证。
4、条款清晰的契约是关键。寻找详述提供服务的内容以及预期结果的时间跨度的简洁易懂的契约。您可能喜欢在开始时有一个诊断的步骤,以查明你的数据是否完全可恢复。这最好是一项免费的服务,因为实际的恢复可能价格高昂,尤其对于SAN或者对于某些把内容定址(content-addressable)存储算法与RAID进行组合的系统。

磁碟阵列

随着RAID磁碟阵列技术的发展,存储的性能和安全性都有了很好的保障。对于中小项目常用的RAID磁碟阵列5(包括RAID磁碟阵列5e,RAID磁碟阵列5ee和RAID磁碟阵列6)这种级别的RAID磁碟阵列,都能保证在1-2块磁碟/FLASH出现故障的情况下,RAID磁碟阵列保证数据的完整性,但RAID磁碟阵列5的保护机制是否能完整的保护数据,答案却是否定的。
RAID磁碟阵列5和RAID磁碟阵列6对于普通的磁碟故障有很好的纠错能力,但RAID磁碟阵列对于储存的底层故障,RAID磁碟阵列5和RAID磁碟阵列6都无法进行纠错恢复。
硬体RAID磁碟阵列的缺点:可以检测并尝试恢复Noisy Error,我们常见的磁碟损坏包括Bit Rot就是代表性的显性错误,但是RAID磁碟阵列无法检测到隐性错误。常见的RAID磁碟阵列储存底层隐性错误有以下几种:
Phantom writes “幻影写入”。RAID磁碟阵列磁碟已经发出指令写入磁轨,由于RAID磁碟阵列内部故障,并未写入成功,但在RAID磁碟阵列储存表象为写入完成的状态。
Misdirected reads or writes 误读写。举例:RAID磁碟阵列数据要在01扇区进行读写,却在02扇区做了这个操作,导致数据混乱。
DMA parity errors DMA传输过程中发生的error。
Accidental overwrites 在频繁的Swapping(档案交换)中数据误读写。
随着RAID磁碟阵列储存设备技术的进化,上面这四种只是常见的Silent Error,当然会有其他更多的RAID磁碟阵列种类,涉及到很多RAID磁碟阵列底层的技术。
我们遇到的RAID磁碟阵列VDD Error就是属于可以检测并尝试恢复RAID磁碟阵列Noisy Error,但是无法检测到RAID磁碟阵列Silent Error,所以故障层面只显示统一的RAID磁碟阵列VDD错误,但RAID磁碟阵列底层的故障却不一定是相同的。
对于硬体RAID磁碟阵列来说,RAID磁碟阵列在阵列卡和光纤卡的级别,RAID磁碟阵列并不会去确认故障是哪一种error,这是硬体RAID磁碟阵列先天的硬体特性限制。
我们可以看看下面这个例子,做了RAID磁碟阵列6,并划分了LUN。RAID磁碟阵列在故障的表现层面,RAID磁碟阵列柜的硬体并未出现故障告警,RAID磁碟阵列出现VDD错误告警,RAID磁碟阵列在告警之后又进行了修复:
RAID磁碟阵列VDD Repair start开始修复的动作。当VDD Repair到一定程度,完全无法repair的时候,才会表现为伺服器告警(故障灯亮)。
但由于RAID磁碟阵列底层故障是Silent Error,不可避免的会有几率出现hantom writes 或Misdirected reads or writes 读写误载 这些Silent Error,这些错误导致的结果就是错误的RAID磁碟阵列数据被相互校检到RAID磁碟阵列5的其他盘了,这在硬体RAID磁碟阵列属于不可勘测的部分(当然在超高端的储存设备还是有这些检测的机制)。
在更换了故障的RAID磁碟阵列磁碟之后。我们回到Storage Manager的日常event,
像上面这种例子的RAID磁碟阵列故障,在近几年的RAID磁碟阵列储存故障发生得越来越频繁,一方面由于RAID磁碟阵列储存容量的翻倍提升带来的磁碟/FLASH密度高速增减,另一方面不断下降的成本也导致RAID磁碟阵列感觉不如原来的稳定了。
所以RAID磁碟阵列5(e、ee、raid6)级别的这种RAID磁碟阵列技术,并非在单盘双盘损坏的情况下都能保持良好的重构工作。在一些RAID磁碟阵列数据安全需求高、成本又受限的地方,我们不能只依靠RAID磁碟阵列5的技术来规避数据丢失。
ZFS档案系统,在系统层面能补充硬体RAID磁碟阵列的这种不可规避的数据丢失情况,所以在每个RAID磁碟阵列项目的规划初期,应该要规划好相应的RAID磁碟阵列系统和档案格式。

转载请注明出处海之美文 » RAID磁碟阵列

相关推荐

    声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:ailianmeng11@163.com