导购:主流RAID模式,你该如何选择 相信对RAID感兴趣的朋友,都不是刚接触电脑的新手。为什么对RAID感兴趣呢?除了数据中心的管理员将其作为职业,大部分对RAID感兴趣的朋友,都长期使用电脑,而且可能都遇到过硬盘失效。今天,每个人拥有的电脑数量越来越多,硬盘失效已经非常常见。其实,硬盘坏道一直都是很常见的现象,虽然硬盘厂商的技术也在不断提升,可是这些基于磁盘技术的硬盘在短期内还难以完成性的提升。也许固态硬盘技术未来能达到无坏道的境界,但那毕竟还不是主流产品。
基础而有效的数据保护
个人计算机的发展速度在过去20年里非常惊人,一美金能买到的硬盘存储容量也一直呈指数增长。其间,MTBF(Mean Time Before Failure 平均无故障工作小时)也从八十年代的8000小时(MiniScribe M2006)增长到了当前的75000小时(Seagate 7200.11 系列驱动)。当然,MTBF只是一个计算出来的指标,并不等于真正的硬盘平均寿命,只供我们参考。但即便如此,我们还得承认硬盘的制造工艺20年间的确有了很大的飞跃。
与此同时,我们存储数据的价值也随着硬盘的发展而增加。正是在这种背景下,各种备份、保护数据的技术都应运而生。RAID(Redundant Array of Inexpensive Disks 磁盘冗余阵列,或者也称为廉价磁盘冗余阵列)就是诸多保护技术之一。
早在70年代,RAID概念就已经出现在里。RAID名词正式出现,是在1987年,由一群加利福尼亚州伯克利大学的研究者们创造。他们专注于研究多块硬盘配合时的性能和冗余情况。但是他们的研究最初还是比较理论化,跟实际需要稍有差距,不过很快存储工业就将一些改进加入其中。RAID技术一直发展到今天,成为现在我们熟知的一些
RAID:
RAID 0 – 条带化数据
RAID 1 – 镜像数据
RAID 5 – 条带化奇偶校验
RAID 6 – 条带化双奇偶校验
RAID 0+1 - RAID 0和RAID 1混合,镜像拷贝条带化数据
每一种RAID配置都有自己的利弊;各种RAID,适合于各种不同的应用,我们将对不同的RAID做简要讨论,本文我们先重点讨论目前应用最为广泛的三种RAID模式,RAID0、RAID1和RAID5,下篇我们将一起讨论一些组合RAID模式,比如RAID0+1与RAID1+0,以及较为新兴的RAID6。
极端的无冗余:RAID 0
RAID 0要求有两块或更多磁盘,将数据写在跨越每个磁盘的条带上。数据也从这些条带上被访问和存取,这样也就允许多个磁盘并行读写。RAID 0的整体容量等同于RAID 0中所有硬盘容量的简单加总。使用率方面,这些RAID硬盘的使用可以比较平均的分布。
采用RAID 0的另一个结果,是逻辑磁盘的读写速度比以往的单一磁盘要快。只有文件存取时间access time不会随着RAID 0设置而有所改良。但是,如果操作上需要存取容量很小的,非连续的数据,那么RAID 0将不会对这样的操作有太大的性能提升。
对于侧重大块数据读写的应用,相信RAID 0是非常合适的,比如说影音文件的编辑。因为这些大块数据可以被RAID 0的多块磁盘同时连续读写。
RAID 0看起来不错,但是也有缺点。最大的缺点就是RAID 0配置的磁盘阵列当中,任意一块磁盘失效的时候,整个磁盘阵列就失效了。RAID 0似乎不应该称作RAID ,因为RAID 0不包括任何冗余特性。所以,你的RAID 0每添加一块磁盘,这个阵列失效的风险也就相应增加。所以除非你的阵列可以被频繁备份,或者这个阵列存储的内容并不那么关键,你才可以去小心的部署RAID 0。
RAID 0优点:
最好的连续数据读写性能表现
最大的磁盘可用容量
RAID 0缺点:
没有数据的冗余
非连续小容量数据处理的性能提升有限
极端的全冗余:RAID1
RAID 0是极端的一个无冗余RAID 配置,而RAID 1则在另一个极端,RAID 1意味着全冗余。RAID 1从一个磁盘拷贝了所有的内容到另一块磁盘。一旦一块磁盘失效,控制器将从另一块磁盘失效备援(fails over),所有的数据都将完好可用。
尽管RAID 1并没有提供任何性能提升,甚至在某些情况下,RAID 1跟一块磁盘对比,可能还会有轻微的性能降低,但是RAID 1还是被广泛的采用,毕竟即便一整块磁盘失效了,整个阵列还是正常运行,RAID 1大大提高了可用性。其实很多的企业级别的系统都使用RAID 1,现在的硬盘非常便宜,500GB大概只要1000块钱左右,特别是中小企业,如果没有大量的数据存储需求,RAID 1将非常合适。正是因为拥有这样的特点,RAID 1的流行也在情理之中。
高级别的RAID 1控制器组建的RAID 1,性能可以胜过单一驱动器,因为控制器使两块磁盘随时为读操作待命。理论上,这可以减少文件的存取时间(数据请求被发送到逻辑上更近的磁盘),而且数据读操作输出也是原来的一倍(不同的磁盘可以同时读不同的数据)。但是多数普通的RAID 1控制器现在并不提供这种高级功能,因此普通的RAID 1磁盘阵列的性能可能要比单一磁盘来的差。而软件RAID 1解决方案也缺乏RAID 1从两块磁盘同时读的支持。
RAID 1优点:
充分的数据冗余
配置简单,如果不用RAID控制器,也可以用软件简单配置。
RAID 1缺点:
较低的磁盘容量使用率,购买的总容量中,只有50%容量可用。
普通的RAID 1性能可能稍稍低于单一磁盘,而高级的RAID 1控制器则十分昂贵。
性能与冗余的折衷:RAID5
RAID 5实际上就是一个硬盘性能和数据冗余的折衷阵列。RAID 5不仅仅将数据条带化分布在多个磁盘上,还写进了奇偶校验,还可以在某个磁盘失效的时候进行失效备援。RAID 5的奇偶校验块一般分散在磁盘阵列的各个磁盘中,也就是说,每个磁盘都有一部分数据,还有一些奇偶校验数据,这些奇偶校验数据可以使分散的数据重建成一个完整的逻辑磁盘。采用RAID 5可以得到跨磁盘数据条带化的阵列,性能也将提升,同时可以在单
一磁盘失效之后,保持系统不会宕机。
RAID 3和RAID 4通常将奇偶校验数据存放在一个特定硬盘中。而RAID 5和RAID 3、RAID 4不同,RAID 5将奇偶校验数据分散在各个磁盘中,这也就提升了写性能。同时,跟RAID1或单一磁盘相比,RAID 5提供更加快速读性能,虽然也会提升写性能,但是由于需要写奇偶校验,提升的幅度较为有限。所以总的来说,配置RAID 5的磁盘阵列的读性能优于写性能。
在以往我们配置的实践中,发现RAID 5磁盘阵列随着其中的磁盘数量增加,性能将越来越好。这一点很容易理解,和RAID 0一样,磁盘数量增加,一项任务可以被更多的磁盘共同执行。但是磁盘阵列中磁盘数量增加,同样也带来了磁盘失效的可能性。而有的RAID 5阵列中磁盘的数量比基本的3块可能多很多,所以只要其中一块硬盘失效,我们的重置操作都要耗费更多的时间。RAID 5还有一个弊端,就是只允许其中一块硬盘失效,一旦第二块硬盘同时也失效,整个阵列恢复起来就异常困难了。
如上面的示意图表示,图例中的阵列中还包括一个热备援(hot spare)磁盘。其实RAID 5的磁盘如果有6、7块或者更多,那么通常都会配置hot spare磁盘,热备援磁盘于
阵列,其作用是当阵列中一块磁盘失效的时候,及时的替代坏盘工作。但是即便有了一块hot spare磁盘,RAID 5阵列还只能允许其中一块磁盘失效。公平的说,如果两块磁盘同时失效,也是有补救办法的,不过这就得求助专业数据恢复商了,IT管理员自己恐怕是为力的。
RAID 5比较适用于偏重于读操作,写操作不频繁的应用。比如说Web服务器、文件/打印服务器,或者数据库服务器。RAID 5性能表现也比较依赖RAID控制器。高级的RAID 控制器本身包括了大量的内存以减轻写操作对性能的影响,但是简单的RAID 控制器不仅内存少,还需要许多CPU资源来帮助其完成奇偶计算的任务,采用低端控制器的结果是,RAID 5写性能有时会低于单一磁盘。
RAID 5优点:
较高的磁盘使用率。
冗余程度允许有一块磁盘损坏。
读操作的优势较大。
RAID 5缺点:
如果不采用昂贵的RAID 控制器的话,写操作较差。
奇偶计算的资源耗费较大。(包括CPU等资源)
本文上篇我们为大家介绍了三种主流的RAID模式,包括RAID0,RAID1以及RAID5,
本文接续上篇,我们将介绍三种更为复杂一些的RAID模式,RAID6,RAID10与RAID01,并在最后会综合进行对比。
RAID 6:昂贵的安全性
跟RAID 5一样,RAID 6的奇偶校验信息也分布在各个磁盘中,与RAID 5最大的不同,在于RAID 6可以为每个条带化的数据写两个奇偶校验,也就是说,磁盘阵列中有两个磁盘同时失效,用户也可以访问阵列。我们可以比较一下RAID 5+热援备和RAID 6,RAID 6在磁盘失效后不能自动重置。在某块磁盘失效之后,RAID 6的性能会有所下降,而RAID 5的情况还要差一些,RAID 5的性能将在重置时候下降很多。
RAID 6的双奇偶校验并不是简单的奇偶校验备份,而是采用另一种算法来计算同一数据的奇偶信息。RAID 6的算法很复杂,因此需要大量的资源来支持RAID 6计算,这些计算任务就都落到了RAID 控制器或者CPU上了。RAID 6的双奇偶校验也一定程度上影响了RAID 6的写操作性能。
RAID 6对于关键任务应用还是很好的选择。RAID 6内通常都拥有大量的磁盘,因此也可以提供良好的读性能,对于读性能要求较高的应用也可以在RAID 6上运行。不过,
RAID 6的复杂计算特点,使得RAID 6大多使用高端昂贵的控制器,所以在高端应用中比较普遍,我们的家用PC则基本没有使用。
RAID 6优点:
合理的磁盘使用比例。
可以容纳多达8个以上的磁盘。
读性能十分强大。
RAID 6缺点:
昂贵:计算机的能耗、控制器等等相关费用都十分高昂。
写性能非常差,几乎是所有RAID 中写性能最差的配置。
RAID 1+0 / 0+1分析
RAID 1+0 / 0+1 的配置的均衡性是相当理想的。RAID 1+0 / 0+1提供了较好的读、写性能,而且也提供了一定程度的冗余。
RAID 1+0 / 0+1都属于嵌套解决方案,也就是说RAID 1+0 / 0+1采用RAID 0的条带化数据,和RAID 1的镜像能力。RAID 1+0 和RAID 0+1二者的区别在于RAID 1+0 (RAID 10)从一系列镜像驱动器建立条带化,而RAID 0+1则是将主条带设置镜像。
在操作上,管理员选择RAID 1+0 / 0+1大多是因为需要运行I/O要求较高的应用,I/O刚好是RAID 5和RAID 6的瓶颈。RAID 1+0 / 0+1的整体费用可能也比较贵,在预算不吃紧的前提下才可以考虑。比起RAID 0+1,RAID 1+0提供了更好的容错和重置能力。
在RAID 1+0磁盘阵列之中,在镜像数据完好的前提下,RAID 1之中的某个磁盘失效,阵列还是可以正常运行,但是如果失效的磁盘没有被及时的替换,那么单点运行的驱动器,一旦再次失效,整个磁盘阵列就不能正常运行了。
在RAID 0+1之中,则允许其中一个镜像中的磁盘全部失效,可是如果两个互为镜像的两块磁盘不幸同时失效,那么整个阵列就失效了。还有,如果重置一个失效磁盘,那么整个阵列中的磁盘都必须参与其中,因为被重置的磁盘无法与互为镜像的RAID 0中的相应磁盘直接通信。而在RAID 1+0中,可以简单重置失效的磁盘,因为可以与RAID 1内
的另外一块磁盘镜像直接通信,因此RAID 1+0重置过程迅速许多。
RAID 1+0 / 0+1优点:
最好的性能表现,简单来说,就是一个复杂的RAID 0。
RAID 1+0 / 0+1缺点:
磁盘使用率较低(50%)。
容错程度只有一块磁盘。
总结:构筑性能与安全性的基石
到今天为止,硬盘的制造工艺还是有限,如果长期使用计算机,不管是服务器SCSI、SAS硬盘还是家用的SATA和IDE硬盘,硬盘的失效可能性仍然是所有计算机原件中最高的。因此RAID就显得非常必要了,不论对家庭还是对企业,RAID 都可以减少磁盘失效带来的不便。RAID当然也带来了性能提升,不过这都是比较次要的因素。我们先前比较过RAID 0和单一磁盘的性能,我们发现RAID 0对于性能的提升非常有限,远没有达到100%,实际上,RIAD 0只能提升5%~30%。因此如果部署RAID的出发点是硬盘性能提升,最好选用更好的CPU,而不是硬盘RAID。
RAID对用户的吸引力,还在于逻辑磁盘容量可以很大,现在的单一磁盘容量都还是比较有限。正如前文所说,我们很多用户都经历过硬盘失效,而且我们的日常工作都越来越依赖PC,数据存储的价值越来越高。所以现在很多PC主板都包括了RAID 1功能,此时我们也有了新的疑问:保护数据存储,我们到底应该将数据备份到别的移动媒介,还是一
直运行我们的磁盘阵列直到其失效?
我想这个答案,每个人都会有不一样的回答,这也取决于不同的数据特点。比如家庭用户,使用Windows Home Server的备份功能可以很好的保护数据,这对于普通用户而言,可能是比RAID更加简单更容易的选择。
而对于一些企业而言,RAID 提供的冗余并不足够。离线的存储也是非常必要的。RAID仅仅能够保持在磁盘损坏的时候,系统正常运行,但是我们遇到的情况可能更加棘手——洪水、火灾、盗窃等等因素都可以瞬间摧毁我们的系统——如果数据非常重要,我们应该将其存储在不同的地域、并且多做备份。