资源描述
RAID就是盘子+乒乓球——主流磁盘阵列技术介绍
很多朋友都清楚,很多知识是不会在学校的教科书里被提及的。即使你是学计算机专业的,也仍然会有很多重要的原理、方法、技巧在书本上没有涉及。本周,我们将继续来学习这些平时在课堂上无法学到的事。
RAID,是今年来听到频率较高的词汇之一。因为硬盘降价,因为SATA硬盘的流行,因为主板厂家在其产品中加入了对RAID的支持。RAID因廉价而迅速进入了普通用户的采购计划中。但什么是RAID?RAID能为我们带来什么好处?今天,我们就要来解释这一问题。所用的道具,就是“盘子+乒乓球”。
“盘子理论”:图解RAID
在“盘子理论”中,我们引入了盘子、乒乓球和水管(图1)。其中盘子代表存储数据的硬盘,水管代表数据传输的总线或通道,而乒乓球则代表传输的数据。我们给每个乒乓球进行了编号,这样,从编号中我们就可以看出乒乓球传输情况。
小知识:组建RAID(Redundant Arrays of Independent Disks,磁盘冗余阵列)的初衷是利用较廉价的多个小容量磁盘进行组合来替代价格昂贵的大容量磁盘,并且还希望单个磁盘损坏后不会影响到其他磁盘的继续使用,使数据的存储更加安全、高速和易于管理。但是随着硬盘存储技术的发展,RAID技术已经不仅仅限于组件大容量硬盘的用途。安全、高速已经成为了RAID技术新的特征。
RAID的种类非常多,目前比较常见的分类主要有RAID 0、RAID 1、RAID 0+1、RAID 5和JBOD等。从表面上看我们可能觉得只是编号上细微差异,但实际上它们的工作原理和实现的目的却是大相径庭。
RAID 0:玩的就是速度
优点:成倍提高读写速度、节省投资
不足:安全性一般
最少需要硬盘数:两个
针对人群:一些对数据安全性要求不高的高端游戏PC、工作站用户
RAID 0的工作原理用“盘子原理”来解释非常简单,把作为数据的乒乓球分别编号。通过管道,把乒乓球分别放到两个盘子中去。
这样做的好处就是可以提高硬盘的存储速度,系统总的硬盘容量也等于每个硬盘的容量之和(采用相同规格、型号的情况下),硬盘利用率高。如图2所示,在数据源部分有六个等待写入磁盘的数据,在控制芯片的控制下,我们看到乒乓球按照编号的奇、偶不同分别通过管道被装到下面的两个盘子里面。因为有两个盘子同时装从管道送过来的乒乓球,这样无疑会成倍地缩短装完来自数据源的乒乓球所用的时间。
不过我们也可以想像得到,当两个盘子中的一个意外摔碎的时候,这也意味着有一半的数据永远无法恢复,从而导致整个数据源数据的丢失和破坏。所以说,RAID 0可以提高数据的读写速度,但是数据丢失的风险却成倍增加,不适合对数据有着较高安全性的应用场合。
你知道吗:组建RAID 0至少需要两块以上的硬盘,从理论上讲,更多的硬盘会极大的提高数据读写的速度,但是受限于数据传输带宽和安全性问题,使用过多的硬盘组件RAID 0的意义也就显得不是太大。
RAID 1:要的就是安全
优点:成倍提高数据的安全性
不足:读写速度没有提升,组建成本较高
最少需要硬盘数:两个
针对人群:对数据安全性有较高要求的用户
RAID 1和RAID 0相比,同样只要两块硬盘就能实现。它的工作原理是把数据同时写入到两块不同的硬盘里,起到备份数据的作用。通过图3,我们看到在RAID控制器的作用下,全部乒乓球(数据)通过管道装到盘子1(磁盘1)的同时,也被RAID控制芯片“复制”了一份“镜像”装到了盘子2(磁盘2)里面。当其中的一个盘子(磁盘)损坏时,只要我们更换掉损坏的盘子,乒乓球(数据)就会在RAID控制的作用下以同样的方式“复制”到更换后的空磁盘上,成倍地提高了数据的安全性。
但是我们也可以看到,由于RAID 1中附加的硬盘只是起到数据备份的作用,所以导致硬盘的利用率降低,在速度和容量上与使用单块硬盘没什么区别。另外需要说明的是,当某一个硬盘出现问题被更换掉后,将不会影响到整个系统的正常运行,RAID控制器会自动比较两个硬盘里面的数据,直到恢复到完全相同为止。
你知道吗:如果使用N个硬盘来组建RAID 1,那么数据的安全性就会增加到原来的N倍,相应的在系统硬盘容量上的利用率也减小到原来的1/N。就是说,如果你用3块容量为160GB的硬盘来组建RAID 1,最后的容量也仍然为160GB。如果用一块80GB和一块160GB容量的硬盘来组建,最后的硬盘容量也只有80GB。
RAID 5:要速度,也要安全
优点:在速度、安全性、成本方面取得了平衡
不足:需要硬盘数过多
最少需要硬盘数:三个
针对人群:对数据速度、安全性有较高要求的用户
RAID 5是目前在服务器领域应用得较多的一种磁盘阵列方案,这种方案兼顾了速度、安全性和成本三个因素,因此也深受用户的喜爱。如果要组建RAID 5至少需要三块或更多的硬盘,可以说RAID 5是综合了RAID 0和RAID 1优点的一种方案,兼顾了速度与安全。
如图4所示,我们看到乒乓球(数据)同样被分成三个部分分别写入到了三个硬盘里面,这个和RAID 0比较类似。但是同时我们也看到在每个盘子里面多出了一个绿色的乒乓球,这些球来自哪里,到底有什么作用呢?
说起来也不复杂,绿色的球在这里起到了一个数据校验位的作用。打个比方,当我们在盘子1中装入乒乓球1的时候(假设它代表的数值等同于自身编号大小),盘子2中装入乒乓球2的时候,这时候RAID控制器会自动的生成一个绿色的球并装入盘子3中,而且绿色球的编号刚好等于1号球和2号球数值大小之和,也就是3。以此类推,球会按照一定的规律装到不同的磁盘里面,并同时生成绿色的校验球分别装入三个磁盘里面。之所以把绿色的校验球装入不同的磁盘,这样可以减小校验磁盘损坏带来的数据丢失的风险。
当某一个磁盘损坏的时候,我们来看看数据是怎样恢复的。如磁盘2损坏,RAID控制器会根据磁盘1和磁盘3中的内容还原磁盘2中的内容。如2号球的值可以根据3号绿球的值减去1号球的值还原,而3号球的值可以根据7号绿色球和4号球的值相减得到……
当然,这里所说的相加、相减校验算法只是为了方便说明问题,RAID 5实际的校验算法可能和例子存在差别,但是不管怎么说,硬盘读写的数据永远脱离不了0和1两个数据。
总结:
RAID作为一种具备多种功能的磁盘存储解决方案,已经在服务器和工作站领域得到广泛的应用,而本文所介绍的三种RAID也是目前使用得较多的。尽管还有很多其他的RAID类型没有被提到,但是“万变不离其宗”,很多RAID技术都是RAID 0、RAID 1或RAID 5的延伸,我们只要了解了基本的RAID工作原理,其他类型的看看资料也就会迎刃而解。
展开阅读全文