免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1095 | 回复: 0
打印 上一主题 下一主题

[RAID与磁盘阵列] 磁盘阵列技术详解(2)(转抄) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-04-24 14:57 |只看该作者 |倒序浏览
硬盘数据跨盘(Spanning)
  数据跨盘技术使多个硬盘像一个硬盘那样工作,这使用户通过组合已有的资源或增加一些资源来廉价地突破现有的硬盘空间限制。 4个300兆字节的硬盘驱动器连结在一起,构成一个SCSI系统。用户只看到一个有1200兆字节的C盘,而不是看到C, D, E, F, 4个300兆字节的硬盘。在这样的环境中,系统管理员不必担心某个硬盘上会发生硬盘安全检空间不够的情况。因为现在1200兆字节的容量全在一个卷(Volume)上(例如硬盘C上)。系统管理员可以安全地建立所需要的任何层次的文件系统,而不需要在多个单独硬盘环境的限制下,计划他的文件系统。硬盘数据跨盘本身并不是RAID,它不能改善硬盘的可靠性和速度。但是它有这样的好处,即多个小型廉价硬盘可以根据需要增加到硬盘子系统上。
硬盘分段(Disk Striping, RAID 0)
  硬盘分段的方法把数据写到多个硬盘,而不是只写到一个盘上,这也叫作RAID O,在磁盘阵列子系统中,数据按系统规定的“段”(Segment)为单位依次写入多个硬盘,例如数据段1写入硬盘0,段2写入硬盘1,段3写入硬盘2等等。当数据写完最后一个硬盘时,它就重新从盘0的下一可用段开始写入,写数据的全过程按此重复直至数据写完。段由块组成,而块又由字节组成。因此,当段的大小为4个块,而块又由256个字节组成时,依字节大小计算,段的大小等于1024个字节。第1~1024字节写入盘0,第1025~2048字节写盘1等。假如我们的硬盘子系统有5个硬盘,我们要写20,000个字节,则数据将采用硬盘分段方式存储。 总之,由于硬盘分段的方法,是把数据立即写入(读出)多个硬盘,因此它的速度比较快。实际上,数据的传输是顺序的,但多个读(或写)操作则可以相互重迭进行。这就是说,正当段1在写入驱动器0时,段2写入驱动器1的操作也开始了;而当段2尚在写盘驱动器1时,段3数据已送驱动器2;如此类推,在同一时刻有几个盘(即使不是所有的盘)在同时写数据。因为数据送入盘驱动器的速度要远大于写入物理盘的速度。因此只要根据这个特点编制出控制软件,就能实现上述数据同时写盘的操作。遗憾的是RAID 0不是提供冗余的数据,这是非常危险的。因为必须保证整个硬盘子系统都正常工作,计算器才能正常工作,例如,假使一个文件的段1(在驱动器0),段2(在驱动器1),段3(在驱动器2),则只要驱动器0, 1, 2中有一个产生故障,就会引起问题;如果驱动器1故障,则我们只能从驱动器物理地取得段1和段3的数据。幸运的是可以找到一个解决办法,这就是硬盘分段和数据冗余。下面一小节将讨论这个问题。
硬盘镜像(RAID 1)
  硬盘镜像(RAID 1)是容错磁盘阵列技术最传统的一种形式,在工业界中相对地最被了解,它最重要的优点是百分之百的数据冗余。RAID 0通过简单地将一个盘上的所有数据拷贝到第二个盘上(或等价的存储设备上)来实现数据冗余,这种方法虽然简单且实现起来相对较容易,但它的缺点是要比单个无冗余硬盘贵一倍,因为必须购买另一个硬盘用作第一个硬盘的镜像。 硬盘镜像最简单的形式,是通过把二个硬盘连结在一个控制器上来实现的。数据写在某一硬盘上时,它同时被写在相应的镜像盘上。当一个盘驱动器发生故障,计算器系统仍能正常工作,因为它可以在剩下的那块好盘上操作数据。因为二个盘互为镜像,哪个盘出故障都无关紧要,二是盘在任何时间都包含相同的数据,任何一个都可以当作工作盘。在硬盘镜像这个简单的RAID方式中,仍能采用一些优化速度的方法,例如平衡读请求负荷。当多个用户同时请求得到数据时,可以将读数据的请示分散到二个硬盘中去,使读负荷平均地分布在二个硬盘上。这种方法可观地提高了读数据的性能,因为二个硬盘在同一时刻读取不同的数据片。但是硬盘镜像不能改善写数据的性能。被“镜像”的硬盘也可被镜像到其它存储设备上,例如可擦写光盘驱动器,虽然以光盘作镜像盘没有用硬盘的速度快,但这种方法比没有使用镜像盘毕竟减少了丢失数据的危险性。总之,镜像系统容错性能非常好,并可以提高读数据的速度;它的缺点是需要双份硬盘,因此价格较高。

硬盘子系统可靠性比较
  我们还必须考虑系统的可用性。单一硬盘系统的可用性比没有数据冗余的磁盘阵列要好,而冗余磁盘阵列的可用性比单个硬盘的好得多。这是因为冗余磁盘阵列允许单个硬盘出错,而继续正常工作。此外,一个硬盘故障后的系统恢复时间也大大缩短(与从磁带恢复数据相比)。最后,因为发生故障时,硬盘上的数据是故障当时的数据,替后的硬盘也将包含故障时的数据(举例说,前天晚上的备份数据)。要得到完全的容错性能,计算器硬盘子系统的其它部件也必须有冗余例如提供二个电源,或者配备双份硬盘控制器。没有其它部件的冗余,即使有非常可靠的硬盘子系统,还是不能完全防止计算机系统的失效。
最佳化的容错系统
  如先前所述,直接分段的子系统(RAID 0)可以大大提高读写速度(相对单个硬盘),因为数据分散在多个硬盘,硬盘操作可以同时进行。把二个直接分段的硬盘子系统组成镜像,可以有效地构成全冗余的快速硬盘子系统。这样的子系统,其硬盘操作甚至比直接分段的硬盘子系统还快,因为该系统能同时执行二个读操作(每个硬盘一个读操作),而写操作的速度则与非镜像直接分段子系统几乎一样,因为把数据同时写入二个硬盘只需花费很少的额外开销。通过我们前面所述的概念,例如双工:(双控制器,双电源等),可以进一步改善有关冗余方面的问题。双控制器还使我们得到更高的数据传输速度,因为控制器成为子系统性能瓶颈的可能性更小了。
磁盘阵列技术术语
  硬盘镜像(Disk Mirroring):硬盘镜像最简单的形式是,一个主机控制器带二个互为镜像的硬盘。数据同时写入二个硬盘,二个硬盘上的数据完全相同,因此一个硬盘故障时,另一个硬盘可提供数据。硬盘数据跨盘(Disk Spanning):利用这种技术,几个硬盘看上去像是一个大硬盘;这个虚拟盘可以把数据跨盘存储在不同的物理盘上,用户不需关心哪个盘上存有他需要的数据。硬盘数据分段(Disk Striping):数据分散存储在几个盘上。数据的第一段放在盘0,第2段放在盘1,……直至达到硬盘链中的最后一个盘,然后下一个逻辑段将放在硬盘0,再下一个逻辑段放在盘1,如此循环直至完成写操作。双控(Duplexing):这里指的是用二个控制器来驱动一个硬盘子系统。一个控制器发生故障,另一个控制器马上控制硬盘操作。此外,如果编写恰当的控制器软件,可实现不同的硬盘驱动器同时工作。容错(Fault Tolerant):具有容错功能的机器有抗故障的能力。例如RAID 1镜像系统是容错的,镜像盘中的一个出故障,硬盘子系统仍能正常工作。主机控制器(Host Adapter):这里指的是使主机和外设进行数据交换的控制部件(如SCSI控制器)。热修复(Hot Fix):指用一个硬盘热备份来替换发生的故障的硬盘。要注意故障盘并不是真正地被物理替换了。用作热备份的盘被加载上故障盘原来的数据,然后系统恢复工作。热补(Hot Patch):具有硬盘热备份,可随时替换故障盘的系统。 热备份(Hot Spare):与CPU系统电连接的硬盘,它能替换下系统中的故障盘。与冷备份的区别是,冷备份盘平时与机器不相连接,硬盘故障时才换下故障盘。平均数据丢失时间(MTBDL-Mean Time Between Data Loss):发生数据丢失的事件间的平均时间。 平均无故障工作时间(MTBF-Mean Time Between Failure或MTIF):设备平均无故障运行时间。廉价冗余磁盘阵列(RAID-Redundant Array of Inexpensive Drives):一种将多个廉价硬盘组合成快速,有容错功能的硬盘子系统的技术。系统重建(Reconstruction or Rebuild):一个硬盘发生故障后,从其它正确的硬盘数据和奇偶信息恢复故障盘数据的过程。恢复时间(Reconstruction Time):为故障盘重建数据所需要的时间。单个大容量硬盘(SLED-Singe Expensive Drive)。传输速率(Transfer Rate):指在不同条件下存取数据的速度。虚拟盘(Virtual Disk):与虚拟存储器类似,虚拟盘是一个概念盘,用户不必关心他的数据写在哪个物理盘上。虚拟盘一般跨越几个物理盘,但用户看到的只是一个盘


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/16863/showart_104178.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP