Chinaunix首页 | 论坛 | 博客
  • 博客访问: 11675169
  • 博文数量: 8065
  • 博客积分: 10002
  • 博客等级: 中将
  • 技术积分: 96708
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-16 17:06
文章分类

全部博文(8065)

文章存档

2008年(8065)

分类: 服务器与存储

2008-12-29 11:06:10

   知识回顾:磁盘阵列是一种把若干硬磁盘驱动器按照一定要求组成一个整体,整个磁盘阵列由阵列控制器管理的系统。

   冗余磁盘阵列RAID(Redundant Array of Independent Disks)技术1987年由加州大学伯克利分校提出,最初的研制目的是为了组合小的廉价磁盘来代替大的昂贵磁盘,以降低大批量数据存储的费用(当时RAID称为Redundant Array of Inexpensive Disks 廉价的磁盘阵列),同时也希望采用冗余信息的方式,使得磁盘失效时不会使对数据的访问受损失,从而开发出一定水平的数据保护技术。

需要RAID-6阵列的理由
看《大话西游》确实是“爱一个人不需要理由”,但一项新的技术,尤其是这种存储技术的应用必须需要一个理由。RAID技术虽然种类众多(RAID后面有多个参数),但一直未能突破两块硬盘同时故障的局限性。一旦存储系统中两块硬盘同时损坏,以往的RAID技术对此也无能为力了。

有人会说,两块磁盘同时掉线,你忽悠人吧?呵呵,确实不是忽悠人,偏偏让我赶上了。“2004年夏天,某政府信息网无法访问,我被从山东紧急召回后,发现磁盘整列中的2块磁盘同时处于报警状态,与IBM的技术支持沟通后建议从另外一个服务器提取备份重建,但备份管理员告诉我他有几天没有成功备份这台Server了……”我花了一天的时间,采用硬上线的方法(反复热插拔,有可能造成所有磁盘损坏),万幸中被我取回了数据。
RAID-6正是为了解决这个问题而诞生的。与其它RAID方式不同,他采用双重校验的方式,也就是说有2份校验数据,从而使得允许两个存储设备出现故障的情况下,仍然能够正常的操作数据。在充分利用存储空间的基础上,大大的提高了RAID的容错能力;相比较于RAID-5,RAID-6无疑是一种有吸引力的技术。

另外,现在的磁盘可靠性已经很高,尤其是高端的光纤通道磁盘,那么还有必要对两块磁盘同时出现故障的情况进行补充技术吗?答案是肯定的,目前的磁盘容量已经很大(单片容量超过200G),如果一块磁盘出现故障,如果在重要系统上对整个RAID阵列中的磁盘进行数据重建(Rebuild),时间上的损失无法估量。需要提醒您,磁盘容量越大,需要的时间越长,如果在数据重建的时间里再发生磁盘故障,那么所有的数据都将丢失。我刚才讲到的案例确实是不可能完成的任务,因此RAID-6技术将数据的可靠性提高到一个可信的架构领域。
增加的校验磁盘
RAID-5磁盘阵列之所以能够兼顾数据存储性能、数据安全性以及应用成本,一是因为它引入了校验位,而不是像RAID-1那样进行百分之百的备份,这在保证安全性的同时也降低了成本,二是因为RAID5将校验位与各数据位混合,进而均匀的分布在磁盘驱动器上,使得在数据的读写过程中各存储器的负载保持平衡。不难看出,既然我们设想RAID-6是需要在RAID5的基础上再引入一个校验位,那么,RAID-5阵列的模型将会对RAID-6磁盘阵列的模型设计具有重要的可借鉴性。

如何才能做到使阵列在两块驱动器不工作的情况下,仍能够进行工作并保证数据的安全呢?最关键也是最直接的要点在于能够重新利用起这两块失效硬盘中的数据。我们借鉴一下RAID-5的算法。在RAID-5磁盘阵列中,巧妙的利用了一个奇偶校验位P(图1),令P=D1⊕D2⊕D3...⊕ ,这样,当其中一块磁盘驱动器失效时,可以由剩下的N-1个数据块重新计算出失效数据块的内容(图2),进而保证了在一块磁盘驱动器失效情况下的数据安全性。
 
图1 RAID5 正常
图2 其中一块磁盘出现故障
我们再联想一下初等代数中最简单的二元方程组,是不是可以将失效的两块磁盘驱动器上的数据块内容看作是方程组中的两个未知数,这样,通过解这个方程组就可以重新生成已经不复存在的数据了。

延伸RAID-5的想法,我们显然可以把P=D1⊕D2⊕D3...⊕ (⊕为抑或运算)看作是这个方程组中的一个方程,显然,要想得到另一个方程,就需要再重新定义一个冗余数据块,作为第二个数据校验位,我们把它称为Q。我们知道,对于一个拥有两个未知数的问题来说,只要由他们组成的方程组中两个方程不重复,那么就一定可以得到有效解。P这个奇偶校验方程的基础上,仍旧采用异或运算,得到一个添加了系数的方程:  。从而,P、Q方程联立便可以组成能够计算出D1与D2的方程组。P+Q的算法应用的磁盘冗余上,可以表示为图3中位置:
图3 Intel P+Q RAID-6
 
提示:除了P+Q校验算法,还有Dual-XOR算法、NetApp RAID-DP算法,另外还有一些X-Code编码、ZZS编码、Park编码等准RAID6算法。

实现RAID-5至少需要三块磁盘,拥有N-1只驱动器的存储容量。 实现RAID-6则至少需要四只驱动器,拥有N-2只驱动器的存储容量,因为相当于两只驱动器的容量专门用于保存奇偶校验数据。例如143G的硬盘一共五块来做RAID-6,那么它的实际可用容量就是143*5-143*2了,为429G。

RAID-6的应用领域
被称作双重奇偶的RAID-6技术出现了很多年,但由于成本限制一直没有受到广泛的接纳,直到最近几年才得到了实际应用。

首先在持续运行方面,实现了不间断访问。如果服务器同时出现了两块磁盘损坏的情况,RAID-6可以借助虚拟技术推迟重建的时间,将数据迁移另外一台服务器上,然后再进行切换,用户几乎感觉不到服务出现问题。
其次在双机热备群集应用方面,提高了数据的安全性。由于双机热备群集更注重数据的保护,我们可以在公用磁盘整列设备上部署RAID-6技术,增加Cluster的数据安全等级。

最后是成本控制方面。虽然最少需要四块磁盘才能使用RAID-6,但是相对而言RAID-10却是性能更高的一种配置。RAID-10实际上是RAID-0+RAID-1,需要至少4块磁盘来构成。它同时采用分块和镜像技术,即同时使用了RAID-0和RAID-1,通过分块镜像集实现。采用分块技术,多个磁盘可并行读写,磁盘I/O性能很高,能够达到RAID-0的水平;采用镜像存储使得可靠性能够达到RAID-1的水平,成为所有磁盘阵列中最高的。由于集中了RAID-0和RAID-1的优点,RAID-10的性能是所有RAID类型中最好的,但冗余代价也是最高的。
同时拥有RAID-5+RAID-0+RAID-1的优势,符合了未来人们对于数据安全性方面的需求,随着技术的改进和成本降低,必将会受到未来这个全信息化世界的青睐。
阅读(1064) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~