荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: ayangtse (爱上翠柏的下雨天), 信区: Hardware
标  题: RAID技术入门详解1
发信站: 荔园晨风BBS站 (Mon May 27 15:52:47 2002), 转信


RAID技术入门详解

  随着计算机应用的日益普及,人们对计算速度和性能的要求也逐渐提高。在一
个完整的计算机系统中,CPU和内存的作用固然重要,但是数据存储设备性能的好
坏和速度的快慢也直接影响到整个系统的表现。本文所要讲解的RAID技术起初主要
应用于服务器高端市场,但是随着个人用户市场的成熟和发展,正不断向低端市场
靠拢,从而为用户提供了一种既可以提升硬盘速度,又能够确保数据安全性的良好
的解决方案。本文将对RAID技术进行较为详细的介绍,希望能够对广大读者有所帮
助。

入门基础

  RAID是英文Redundant Array of Inexpensive Disks的缩写,中文简称为磁盘
阵列。其实,从RAID的英文原意中,我们已经能够多少知道RAID就是一种由多块廉
价磁盘构成的冗余阵列。虽然RAID包含多块磁盘,但是在操作系统下是作为一个独
立的大型存储设备出现。RAID技术分为几种不同的等级,分别可以提供不同的速度
,安全性和性价比。

  人们在开发RAID时主要是基于以下设想,即几块小容量硬盘的价格总和要低于
一块大容量的硬盘。虽然目前这一设想还没有成为现实,RAID在节省成本方面的作
用还不是很明显,但是RAID可以充分发挥出多块硬盘的优势,实现远远超出任何一
块单独硬盘的速度和吞吐量。除了性能上的提高之外,RAID还可以提供良好的容错
能力,在任何一块硬盘出现问题的情况下都可以继续工作,不会受到损坏硬盘的影
响。

RAID 0

  我们在前文中已经提到RAID分为几种不同的等级,其中,RAID 0是最简单的一
种形式。RAID 0可以把多块硬盘连接在一起形成一个容量更大的存储设备。最简单
的RAID 0技术只是提供更多的磁盘空间,不过我们也可以通过设置,使用RAID 0来
提高磁盘的性能和吞吐量。RAID 0没有冗余或错误修复能力,但是实现成本是最低
的。

  RAID 0最简单的实现方式就是把几块硬盘串联在一起创建一个大的卷集。磁盘
之间的连接既可以使用硬件的形式通过智能磁盘控制器实现,也可以使用操作系统
中的磁盘驱动程序以软件的方式实现。图示如下:




  在上述配置中,我们把4块磁盘组合在一起形成一个独立的逻辑驱动器,容量
相当于任何任何一块单独硬盘的4倍。如图中彩色区域所示,数据被依次写入到各
磁盘中。当一块磁盘的空间用尽时,数据就会被自动写入到下一块磁盘中。

  这种设置方式只有一个好处,那就是可以增加磁盘的容量。至于速度,则与其
中任何一块磁盘的速度相同,这是因为同一时间内只能对一块磁盘进行I/O操作。
如果其中的任何一块磁盘出现故障,整个系统将会受到破坏,无法继续使用。从这
种意义上说,使用纯RAID 0方式的可靠性仅相当于单独使用一块硬盘的1/4(因为
本例中RAID 0使用了4块硬盘)。

  虽然我们无法改变RAID 0的可靠性问题,但是我们可以通过改变配置方式,提
供系统的性能。与前文所述的顺序写入数据不同,我们可以通过创建带区集,在同
一时间内向多块磁盘写入数据。具体如图所示:




  上图中,系统向逻辑设备发出的I/O指令被转化为4项操作,其中的每一项操作
都对应于一块硬盘。我们从图中可以清楚的看到通过建立带区集,原先顺序写入的
数据被分散到所有的四块硬盘中同时进行读写。四块硬盘的并行操作使同一时间内
磁盘读写的速度提升了4倍。

  在创建带区集时,合理的选择带区的大小非常重要。如果带区过大,可能一块
磁盘上的带区空间就可以满足大部分的I/O操作,使数据的读写仍然只局限在少数
的一、两块硬盘上,不能充分的发挥出并行操作的优势。另一方面,如果带区过小
,任何I/O指令都可能引发大量的读写操作,占用过多的控制器总线带宽。因此,
在创建带区集时,我们应当根据实际应用的需要,慎重的选择带区的大小。

  我们已经知道,带区集可以把数据均匀的分配到所有的磁盘上进行读写。如果
我们把所有的硬盘都连接到一个控制器上的话,可能会带来潜在的危害。这是因为
当我们频繁进行读写操作时,很容易使控制器或总线的负荷超载。为了避免出现上
述问题,建议用户可以使用多个磁盘控制器。示意图如下:




  这样,我们就可以把原先控制器总线上的数据流量降低一半。当然,最好解决
方法还是为每一块硬盘都配备一个专门的磁盘控制器。

RAID 1

  虽然RAID 0可以提供更多的空间和更好的性能,但是整个系统是非常不可靠的
,如果出现故障,无法进行任何补救。所以,RAID 0一般只是在那些对数据安全性
要求不高的情况下才被人们使用。

  RAID 1和RAID 0截然不同,其技术重点全部放在如何能够在不影响性能的情况
下最大限度的保证系统的可靠性和可修复性上。RAID 1是所有RAID等级中实现成本
最高的一种,尽管如此,人们还是选择RAID 1来保存那些关键性的重要数据。

  RAID 1又被称为磁盘镜像,每一个磁盘都具有一个对应的镜像盘。对任何一个
磁盘的数据写入都会被复制镜像盘中;系统可以从一组镜像盘中的任何一个磁盘读
取数据。显然,磁盘镜像肯定会提高系统成本。因为我们所能使用的空间只是所有
磁盘容量总和的一半。下图显示的是由4块硬盘组成的磁盘镜像,其中可以作为存
储空间使用的仅为两块硬盘(画斜线的为镜像部分)。




  RAID 1下,任何一块硬盘的故障都不会影响到系统的正常运行,而且只要能够
保证任何一对镜像盘中至少有一块磁盘可以使用,RAID 1甚至可以在一半数量的硬
盘出现问题时不间断的工作。当一块硬盘失效时,系统会忽略该硬盘,转而使用剩
余的镜像盘读写数据。

  通常,我们把出现硬盘故障的RAID系统称为在降级模式下运行。虽然这时保存
的数据仍然可以继续使用,但是RAID系统将不再可靠。如果剩余的镜像盘也出现问
题,那么整个系统就会崩溃。因此,我们应当及时的更换损坏的硬盘,避免出现新
的问题。   更换新盘之后,原有好盘中的数据必须被复制到新盘中。这一操作
被称为同步镜像。同步镜像一般都需要很长时间,尤其是当损害的硬盘的容量很大
时更是如此。在同步镜像的进行过程中,外界对数据的访问不会受到影响,但是由
于复制数据需要占用一部分的带宽,所以可能会使整个系统的性能有所下降。

  因为RAID 1主要是通过二次读写实现磁盘镜像,所以磁盘控制器的负载也相当
大,尤其是在需要频繁写入数据的环境中。为了避免出现性能瓶颈,使用多个磁盘
控制器就显得很有必要。下图示意了使用两个控制器的磁盘镜像。




  使用两个磁盘控制器不仅可以改善性能,还可以进一步的提高数据的安全性和
可用性。我们已经知道,RAID 1最多允许一半数量的硬盘出现故障,所以按照我们
上图中的设置方式(原盘和镜像盘分别连接不同的磁盘控制),即使一个磁盘控制
器出现问题,系统仍然可以使用另外一个磁盘控制器继续工作。这样,就可以把一
些由于意外操作所带来的损害降低到最低程度。

RAID 0+1

  单独使用RAID 1也会出现类似单独使用RAID 0那样的问题,即在同一时间内只
能向一块磁盘写入数据,不能充分利用所有的资源。为了解决这一问题,我们可以
在磁盘镜像中建立带区集。因为这种配置方式综合了带区集和镜像的优势,所以被
称为RAID 0+1。

--
☆___☆☆☆☆☆☆☆☆☆☆☆☆☆_☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
 / _ \ _   _  __ _ _ __   __ _| |_ ___  ___ ◆◆◆◆◆◆◆◆◆
| |_| | | | |/ _` | '_ \ / _` | __/ __|/ _ \Welcome to CB 405
|  _  | |_| | (_| | | | | (_| | |_\__ \  __/%%%%%%%%%
|_| |_|\__, |\__,_|_| |_|\__, |\__|___/\___|◇◇◇◇◇◇◇◇◇
 =CB=  |___/ =Ayangtse=  |___/ Oicq=1391995★★★★★★★★★

※ 来源:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.41.147]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店