到处都有关于Raid讲解的文章或资料,但是如此生动活泼的RAID水桶演示绝对是奇思妙想的,敬佩作者的丰富想象力!
一个外国描述RAID各个级别的图片,感觉很多地方定义得非常准确,而且通过看图了解RAID效果会更加显著。
这么教你一定能懂!用饮水机和水桶教你什么是RAID
(1)先为大家讲解第一个小图,也就是标记着standalone的饮水机,该图主要是通过矿泉水桶为饮水机提供水源这个现实例子来比喻RAID各个种类的区别。两个饮水机的出水孔相当于读取数据的接口,而矿泉水桶里的水则是宝贵的数据。这些数据正是通过出水孔这个数据接口而被用户读取的,相应的一个矿泉水对应着一块硬盘。
正常情况下我们的计算机(例如家的里计算机而不是服务器)是只有一个硬盘的,这时我们要喝水(读取硬盘数据)都是由这一个矿泉水桶提供水源的。
(2)接下来看第二个小图,也就是标记着cluster的图。所谓cluster就是集群的意思,集群就是用多台服务器合并为一台,所有服务器提供的服务和数据都是一样的。就像图中显示的有两台饮水机,说明有两台服务器,这两台服务器都可以提供用户数据(水源)。
用户可以到左边的饮水机来取得数据,也可以到右边的饮水机来获得数据,这样无形中就提供了用户获得水(数据)的效率。但是这种cluster集群有一个缺点,那就是需要多台服务器的硬件支持,在一定程度上造成了浪费。一般来说中小企业是不可能让多台服务器提供同样数据和同样服务的。
(3)第三个小图标记着Hot swap,(如图4)他是热交换的意思。概念上有点类似于热备份。即一台饮水机(服务器),和第一个图一样他有一个硬盘,出水量也和standalone 一样。但是当饮水机上的矿泉水桶出现问题时,例如水没了或者桶破了,这时马上采取热交换技术,将旁边的矿泉水桶替代出问题的桶放到饮水机上,从而继续提供服务。但是这种方法也存在一个缺点,那就是需要一个桶做备份,而且仅仅在原来桶出问题的情况下该桶才派上用场。另外换桶过程是需要时间的,无形中影响了服务的提供。
(4)第四个图就是RAID中的老大了,这里说他是老大因为他是最早的RAID。Level 0即RAID 0级,通常称为带区,是利用带区数据映射技巧的特定性能。也就是说,当数据写入磁盘组的时候,被分成带区,交错写入磁盘组的磁盘中。这带来了高I/O性能,低开销,但不提供任何冗余。磁盘组的存储量等于总的各磁盘容量之和。 (如图5)
当饮水机上的两个桶中任何一个出问题时用户都不能通过出水孔获得宝贵的数据(水源),因此他不提供冗余功能。当然在获得水源的过程中用户是通过两个矿泉水桶同时获得的,自然在出水量等多方面比只使用一个桶有优势。提高了数据读写的速度是RAID 0的最大特色。
小提示:
可能有的读者会问在RAID 0图中最上面的那个桶出了问题不是一样可以出水吗?其实这个图仅仅是方便大家记忆和理解RAID,不可能通过简单的图就能100%准确的反映出只有进行理论描述才能说清楚的RAID种类。因此大家在理解图片的过程中也不要太过于拘泥。
(5)第五个图也是RAID中比较常用的,Level 1即RAID 1级,他就是常常提到的镜像RAID,(如图6)相比其他各级别RAID来说,这个级别使用的时间较长。RAID 1通过把同样的数据写到磁盘组的每一个磁盘上,将"镜像"复制到每个磁盘上,来提供数据冗余。镜像由于它的简单实现和数据的高可信度而一直很受欢迎。
1级在读数据操作时,并行处理2个或更多的磁盘,因此数据传输速率高, 但是其他的操作时无法提供高速的I/O传输速率。1级提供了非常好的数据的高可信度,并且改善了读数据操作的性能,但是耗费很大。要求组成磁盘组的各磁盘规格相同,而组成后磁盘组的容量仅仅等于一块磁盘的容量。
正如图中显示的一样,有两个矿泉水桶放在饮水机上,这样当其中一个出了问题,例如破坏或没水时并不会影响用户使用矿泉水,因为另一个桶将会完好的提供水源。当然由于出水口没有出现任何扩大,所以出水量和使用一个矿泉水桶是一样的。因此出水速度没有变化却多加了一个桶使得RAID 1虽然可以提供最大程度的冗余,但是无法提高读取速度。
小提示:
有一个细节需要各位的读者特别注意,在RAID 1的图片中是两个矿泉水桶共用一个供水口,自然出水量没有什么变化。而下面的RAID 5则不同。稍后会详细讲解。
(6)第六个图是服务器最常用的RAID级别,即RAID 5。(如图7)笔者所在公司购买的服务器不管是DELL的还是IBM或者曙光服务器都是使用这个最常用的RAID类型。该级别的RAID是通过把奇偶校验分布到磁盘组中的一些或所有磁盘上,5级常使用缓冲技术来降低性能的不对称性。如果组成磁盘组的各磁盘规格相同,磁盘组容量等于磁盘的总容量,减去一块磁盘的容量。
上面提到了RAID 1只是使用了一个供水口,没有提高出水速度。然而在RAID 5中我们会发现图7中三个矿泉水桶分别安装在了三个进水口中,这样我们就可以同时由三个水桶为用户提供水源了,自然在出水速度上得到了大幅度提高。同样三个矿泉水桶有一个出现问题也没有关系,不会影响到饮用水源。
小提示:
有两点是图中没有表现出来的,这里再说明下方便读者有一个清晰的认识。(1)图7中只显示了三个水桶,实际上在现实工作中只要我们有三个以上的硬盘(水桶)就都可以配置RAID5了。四个,五个甚至更多的硬盘来配置RAID 5也是没有问题的。(2)在我们配置RAID 5后如果出现两个以上硬盘出现问题时,数据是不能得到有效的保护的。也就是说RAID 5只能在其中一块硬盘出问题时保证数据完好。
(7)最后一个图实际上是前面介绍的RAID 0和RAID 1的组合,只要大家对RAID 0和RAID 1有了清晰的认识,这个图理解起来就简单得多了,他实际上就是先配置为RAID 0然后在配置RAID 1,相应的发挥了RAID 0和1的所有优点,避免了他们的所有缺点。鉴于篇幅关系这里就不详细介绍了,毕竟RAID 0+1在实际工作中使用的机会没有前面介绍的RAID 5多。
磁盘阵列可以在安装系统之前或之后产生,系统会视之为一个(大型)硬盘,而它具有容错及冗余的功能。磁盘阵列不单只可以加入一个现成的系统,它更可以支持容量扩展,方法也很简单,只需要加入一个新的硬盘并执行一些简单的指令,系统便可以实时利用这新加的容量。