在部署存储器时,我们还会经常碰到一个需要选择RAID保护级别的问题,那么RAID是个什么东东呢,RAID是“Redundant Array of Independent Disk”的缩写,中文意思是独立冗余磁盘阵列。冗余磁盘阵列技术诞生于1987年,由美国加州大学伯克利分校提出。简单来讲就是将N个硬盘通过RAID Controller(分Hardware,Software)结合成虚拟单台大容量的硬盘使用。
以上解释可能有点文绉绉的,那么通俗的解释一下,可以把每个磁盘想象成汽车上的轮胎,普通的汽车一般是四个轮胎就可以行使了,但是为了以防万一,一般在后备箱还会再备一个轮胎,这五个轮胎组合在一起(4+1),其目的是为了保证车子在坏了一个轮胎的倒霉情景下仍然能够继续行使,这种组合的机制这就是我们所说的RAID 5保护机制,而那个备胎的概念相当于磁盘组里面的spare磁盘。! ~8 \: P% S& }* m7 R5 g
那么有人会问,如果你运气差到家了,再坏一个轮胎,这辆车不还是不能运行了么,ok,那么我们可以准备两个备胎来保护这四个车子里面的轮胎,这种六个轮胎组合在一起的保护机制我们称作RAID 6。
Q. a7 s! w2 Z) y
那么还有人要问,如果我有一个车队,虽然不是每个车都会发生轮胎问题,但是为了提高安全性,可不可以把这些备胎统一管理起来,哪一台坏了我就从备胎库里面拿一个顶上去呢,当然是可以的,这种把备胎组成一个池统一管理分配给需要的车子的做法我们就叫作全局热备,在RAID保护里面也经常碰到这样的情况,一个有数十块磁盘的存储器里面额外配置几块磁盘做为全局热备盘(global spare���。! q' O% D3 Q# V. O; Z
) l* K+ z0 b }$ X8 v
最后又有人举手问问题了(哪里来的这么多问题啊,真是十万个为什么),说如果我把备胎换好了,车子能够正常运行了,等到了4S店,我想重新买一个新的轮胎,要把原来的备胎换回去呢,还是说不换了而把新买的轮胎直接作为备胎处理呢。车子是你的,当然主意你来定。但是这种在存储器里面换下坏盘插入新盘后,是否把已经写入到hot spare盘的数据回拷回新插入磁盘里面去的功能我们称之为存储器hot spare盘自动回拷设置,全局漫游功能。是否回拷回去各有优缺点:回拷回去则存储器还是按照存储管理员第一次的部署来分配磁盘数据的,便与管理,但是回拷动作会带来一定的磁盘内部IO的开销。4 J2 q3 w! `/ P9 v
下面的文章中笔者将和大家探讨一下各种RAID保护的底层技术原理,并谈到各种应用相结合时该怎么选择合适的RAID保护机制。
RAID保护技术综述( \7 W1 \( Z7 p3 A; t
RAID-5是在存储系统中广泛采用的数据保护技术。该技术是通过把应用数据分成数段,连同这些数据段的校验信息写入一组磁盘来实现的。如果其中有个磁盘出现了故障,就会利用其余的磁盘中的数据和检验信息把故障盘中的数据恢复到热备盘中以保证数据不会丢失。这样RAID-5就存在一种风险,如果在数据重建的过程中,RAID组中的第二块硬盘出现故障,就会出现数据。
而RAID 1(准确来讲应该是RAID 10)技术是另外一种相对成本较高的数据保护技术,通过把一份数据写到两个磁盘中做到镜像保护,这样即使一块磁盘坏了,另外一块磁盘上也存有同样的数据从而实现了数据的可靠性保护。如果其中有个磁盘出现了故障,其重构机制也要比RAID 5快很多(避免了相对复杂的XOR计算,只需要重新复制一次),而且从概率上来讲数据可靠性比RAID 5要更高。
从上面的分析我们可以发现,不管是RAID 10还是RAID5,都无法逃避同一个RAID组中两块磁盘同时损坏这个“点背”到家的情况,事实上以前,两块盘同时坏的情况是超级小概率事件,几乎不可能发生。但是近来随着光纤通道磁盘和SATA磁盘的容量和密度不断增加(出现了450GB/600GB的光纤盘和1TB/2TB的SATA盘),使得RAID-5的重建时间也不断增加。这样两块盘同时坏的概率也增加了,在企业级存储上,这种风险必须得到重视。
为了应对这种情况,存储厂商推出了全新的RAID技术。RAID-6技术就是可以保证两块盘同时出故障而不会丢失数据的技术。存储器技术发展到今天,各种存储系统除了支持RAID5,RAID1技术以外都增加了对于RAID6保护���术的支持,提供给用户多种保护方式的选择。
CRAID 技术总览
URAID技术是为了防止存储系统因为磁盘故障而丢失数据而研发出来的。该技术把数据和校验信息分布到一组盘中(RAID组),当有盘坏的时候,丢失的那部分数据可以通过其他盘上的数据和校验信息计算恢复。这样就增强了存储系统的可靠性。/ E e, N1 ^1 l' P* ^0 I
一个好的存储系统应当可以同时支持RAID0,RAID-1,RAID-5和RAID-6技术,这样该存储器不但可以提供更好的可靠性,而且也可以比以往的存储系统有更出色的性能。
比如说高端存储器一般以4个磁盘为一个组,称为磁盘组Array Group,而一个RAID组则包含一个或者多个Array Group。例如:RAID-1(镜像)可以是2D + 2P或者4D + 4P的配置,也就是说2块数据盘,2块镜像盘,或者4块数据盘和4块镜像盘的配置。RAID-5(带校验的条带化)可以是3D + 1P的配置,其中3块数据盘,1块检验盘,或者是7D + 1P的配置,其中7块数据盘,1块检验盘的配置。实际上,RAID-5的数据和校验都是条带化后分散在RAID组中的各个磁盘中的。6 O4 S- Y/ H' U) y
RAID-1提供了最高的可靠性,一块盘上的数据都镜像到RAID组中的另外一块磁盘上。但是这种方式对磁盘的率用率不高,只有一半的磁盘空间能够存放数据,存放同样的数据要多买一倍的磁盘。RAID-5改善了率用率的问题,但是因为要计算校验信息而使得写性能有所下降。有些存储器也能支持RAID-0技术(没有校验的条带化),RAID-0技术有很好的性能表现,但是RAID-0没有冗余保护功能,RAID组中任何一块磁盘的损坏都会造成数据的丢失。在SATA盘上绝对不���倡采用RAID-0,同时建议用户不要在关键数据上采用RAID-0技术。0 v, { Q8 B) G0 d7 k
当采用RAID-1或者RAID-5技术的时候,如果其中有个磁盘出现了故障,就会利用RAID组中其余的磁盘中的数据和检验信息把故障盘中的数据恢复到热备盘中以保证数据不会丢失。工程师用新盘替换坏掉的磁盘,这时候存储系统会把热备盘中的数据拷贝回新换上的盘中(也有一些存储器支持RAID保护环境下的磁盘漫游技术,可以不回拷以减轻存储器的负担)。当回拷完成后,系统又回到了正常工作状态,可以再次抵御磁盘故障。
如今磁盘的容量和密度一再变大,出现了450GB/600GB的光纤盘和1TB/2TB的SATA盘,每个盘中存放的数据比以往大了很多,磁盘故障影响的数据量也跟着增加。这样从磁盘故障,到磁盘系统恢复正常状态的时间也会比以往长很多,这个过程中同一个RAID组里面第二块磁盘出现故障而导致数据丢失的可能性也变大。
为了防止两块磁盘故障而引起的数据丢失,存储器提供了RAID-6解决方案。和RAID-5相似的是,RAID-6采用了校验数据,和RAID-5不同的是RAID-6有两份检验数据,可以保证同一RAID组中两块磁盘同时故障而不丢失数据。