双硬盘RAID 0全攻略-阿里云开发者社区

开发者社区> 开发与运维> 正文

双硬盘RAID 0全攻略

简介: <p><strong><span style="color:red;">硬盘RAID</span>技术详解 <br><br><span style="color:blue;">一.Raid</span>定义 <br>  RAID(Redundant Array ofIndependent Disk 独立冗余磁盘阵列)技术是加州大学伯克利分校1987年提出,最初是为了组合小的廉价磁盘来代替大的昂

硬盘RAID技术详解

一Raid定义
  RAID(Redundant Array ofIndependent Disk 独立冗余磁盘阵列)技术是加州大学伯克利分校1987年提出最初是为了组合小的廉价磁盘来代替大的昂贵磁盘同时希望磁盘失效时不会使对数据的访问受损失而开发出一定水平的数据保护技术。RAID就是一种由多块廉价磁盘构成的冗余阵列在操作系统下是作为一个独立的大型存储设备出现。RAID可以充分发挥出多块硬盘的优势可以提升硬盘速度增大容量,提供容错功能够确保数据安全性易于管理的优点在任何一块硬盘出现问题的情况下都可以继续工作不会受到损坏硬盘的影响。  

二、RAID的几种工作模式
1、RAID0
   即Data Stripping数据分条技术。RAID 0可以把多块硬盘连成一个容量更大的硬盘群可以提高磁盘的性能和吞吐量。RAID0没有冗余或错误修复能力成本低要求至少两个磁盘一般只是在那些对数据安全性要求不高的情况下才被使用。

1、RAID 0最简单方式
就是把x块同样的硬盘用硬件的形式通过智能磁盘控制器或用操作系统中的磁盘驱动程序以软件的方式串联在一起形成一个独立的逻辑驱动器容量是单独硬盘的x倍,在电脑数据写时被依次写入到各磁盘中当一块磁盘的空间用尽时数据就会被自动写入到下一块磁盘中它的好处是可以增加磁盘的容量。速度与其中任何一块磁盘的速度相同如果其中的任何一块磁盘出现故障整个系统将会受到破坏可靠性是单独使用一块硬盘的1/n。

2、RAID 0的另一方式
      是用n块硬盘选择合理的带区大小创建带区集最好是为每一块硬盘都配备一个专门的磁盘控制器,在电脑数据读写时同时向n块磁盘读写数据,速度提升n倍。提高系统的性能。

2、RAID 1
RAID 1称为磁盘镜像把一个磁盘的数据镜像到另一个磁盘上在不影响性能情况下最大限度的保证系统的可靠性和可修复性上具有很高的数据冗余能力但磁盘利用率为50%故成本最高多用在保存关键性的重要数据的场合。RAID 1有以下特点 
  1、RAID 1的每一个磁盘都具有一个对应的镜像盘任何时候数据都同步镜像系统可以从一组镜像盘中的任何一个磁盘读取数据。
  2、磁盘所能使用的空间只有磁盘容量总和的一半系统成本高。
  3、只要系统中任何一对镜像盘中至少有一块磁盘可以使用甚至可以在一半数量的硬盘出现问题时系统都可以正常运行。
  4、出现硬盘故障的RAID系统不再可靠应当及时的更换损坏的硬盘否则剩余的镜像盘也出现问题那么整个系统就会崩溃。
  5、更换新盘后原有数据会需要很长时间同步镜像外界对数据的访问不会受到影响只是这时整个系统的性能有所下降。
  6、RAID 1磁盘控制器的负载相当大用多个磁盘控制器可以提高数据的安全性和可用性。

3、RAID01
把RAID0和RAID1技术结合起来数据除分布在多个盘上外每个盘都有其物理镜像盘提供全冗余能力允许一个以下磁盘故障而不影响数据可用性并具有快速读/写能力。RAID0+1要在磁盘镜像中建立带区集至少4个硬盘。

4、RAID2
 电脑在写入数据时在一个磁盘上保存数据的各个位同时把一个数据不同的位运算得到的海明校验码保存另一组磁盘上由于海明码可以在数据发生错误的情况下将错误校正以保证输出的正确。但海明码使用数据冗余技术使得输出数据的速率取决于驱动器组中速度最慢的磁盘。RAID2控制器的设计简单。

5、RAID3
     带奇偶校验码的并行传送
      RAID 3使用一个专门的磁盘存放所有的校验数据而在剩余的磁盘中创建带区集分散数据的读写操作。当一个完好的RAID 3系统中读取数据只需要在数据存储盘中找到相应的数据块进行读取操作即可。但当向RAID3写入数据时必须计算与该数据块同处一个带区的所有数据块的校验值并将新值重新写入到校验块中这样无形虽增加系统开销。当一块磁盘失效时该磁盘上的所有数据块必须使用校验信息重新建立如果所要读取的数据块正好位于已经损坏的磁盘则必须同时读取同一带区中的所有其它数据块并根据校验值重建丢失的数据这使系统减慢。当更换了损坏的磁盘后系统必须一个数据块一个数据块的重建坏盘中的数据整个系统的性能会受到严重的影响。RAID 3最大不足是校验盘很容易成为整个系统的瓶颈对于经常大量写入操作的应用会导致整个RAID系统性能的下降。RAID 3适合用于数据库和WEB服务器等。

6、 RAID4
RAID4即带奇偶校验码的独立磁盘结构RAID4和RAID3很象它对数据的访问是按数据块进行的也就是按磁盘进行的每次是一个盘RAID4的特点和RAID3也挺象不过在失败恢复时它的难度可要比RAID3大得多了控制器的设计难度也要大许多而且访问数据的效率不怎么好。

7、 RAID5
RAID 5把校验块分散到所有的数据盘中。RAID 5使用了一种特殊的算法可以计算出任何一个带区校验块的存放位置。这样就可以确保任何对校验块进行的读写操作都会在所有的RAID磁盘中进行均衡从而消除了产生瓶颈的可能。RAID5的读出效率很高写入效率一般块式的集体访问效率不错。RAID 5提高了系统可靠性但对数据传输的并行性解决不好而且控制器的设计也相当困难。

8、 RAID6
RAID6即带有两种分布存储的奇偶校验码的独立磁盘结构它是对RAID5的扩展主要是用于要求数据绝对不能出错的场合使用了二种奇偶校验值所以需要N+2个磁盘同时对控制器的设计变得十分复杂写入速度也不好用于计算奇偶校验值和验证数据正确性所花费的时间比较多造成了不必须的负载很少人用。

9、 RAID7
  RAID7即优化的高速数据传送磁盘结构它所有的I/O传送均是同步进行的可以分别控制这样提高了系统的并行性和系统访问数据的速度每个磁盘都带有高速缓冲存储器实时操作系统可以使用任何实时操作芯片达到不同实时系统的需要。允许使用SNMP协议进行管理和监视可以对校验区指定独立的传送信道以提高效率。可以连接多台主机当多用户访问系统时访问时间几乎接近于0。但如果系统断电在高速缓冲存储器内的数据就会全部丢失因此需要和UPS一起工作RAID7系统成本很高。

10、 RAID10
  RAID10即高可靠性与高效磁盘结构它是一个带区结构加一个镜象结构可以达到既高效又高速的目的。这种新结构的价格高可扩充性不好。

11、 RAID53
  RAID7即高效数据传送磁盘结构是RAID3和带区结构的统一因此它速度比较快也有容错功能。但价格十分高不易于实现。

为什么需要磁盘阵列

      
如何增加磁盘的存取(access)速度,如何防止数据因磁盘的故障而失落及如何有效的利用磁盘空间,一直是电脑专业人员和用户的困扰;而大容量磁盘的价格非常昂贵,对用户形成很大的负担。磁盘阵列技术的产生一举解决了这些问题。

        过去十年来,CPU的处理速度增加了五十倍有多,内存(memory)的存取速度亦大幅增加,而数据储存装置--主要是磁盘(harddisk)--的存取速度只增加了三、四倍,形成电脑系统的瓶颈,拉低了电脑系统的整体性能(throughput),若不能有效的提升磁盘的存取速度,CPU、内存及磁盘间的不平衡将使CPU及内存的改进形成浪费。

       目前改进磁盘存取速度的的方式主要有两种。一是磁盘快取控制(disk cache controller),它将从磁盘读取的数据存在快取内存(cachememory)中以减少磁盘存取的次数,数据的读写都在快取内存中进行,大幅增加存取的速度,如要读取的数据不在快取内存中,或要写数据到磁盘时,才做磁盘的存取动作。这种方式在单工环境(single-tasking environment)如DOS之下,对大量数据的存取有很好的性能(量小且频繁的存取则不然),但在多工(multi-tasking)环境之下(因为要不停的作数据交换(swapping)的动作)或数据库(database)的存取(因为每一记录都很小)就不能显示其性能。这种方式没有任何安全保障。其二是使用磁盘阵列的技术。磁盘阵列是把多个磁盘组成一个阵列,当作单一磁盘使用,它将数据以分段(striping)的方式储存在不同的磁盘中,存取数据时,阵列中的相关磁盘一起动作,大幅减低数据的存取时间,同时有更佳的空间利用率。磁盘阵列所利用的不同的技术,称为RAID level,不同的level针对不同的系统及应用,以解决数据安全的问题。

       一般高性能的磁盘阵列都是以硬件的形式来达成,进一步的把磁盘快取控制及磁盘阵列结合在一个控制器(RAID controller)或控制卡上,针对不同的用户解决人们对磁盘输出入系统的四大要求:
(1)增加存取速度,
(2)容错(fault tolerance),即安全性
(3)有效的利用磁盘空间;
(4)尽量的平衡CPU,内存及磁盘的性能差异,提高电脑的整体工作性能。


磁盘阵列有两种方法可以实现

软件阵列与硬件阵列。

1、软件阵列是指通过网络操作系统自身提供的磁盘管理功能将连接的普通SCSI卡上的多块硬盘配置成逻辑盘组成阵列。软件阵列可以提供数据冗余功能但是磁盘子系统的性能会有所降低。目前WINDOWS
NT和NET WARE两种操作系统都可以提供软件阵列功能其中WINDOWSNT可以提供RAID 0、RAID 1、RAID 5。NET WARE操作系统可以实现RAID 1功能。

2、硬件阵列是使用专门的磁盘阵列卡来实现的。现在的非入门级服务器几乎都提供磁盘阵列卡不管是集成在主板上或非集成的都能轻松实现阵列功能。硬件阵列能够提供在线扩容、动态修改阵列级别、自动数据恢复、驱动器漫游、超高速缓冲等功能。它能提供性能、数据保护、可靠性、可用性和可管理性的解决方案。磁盘阵列卡拥有一个专门的处理器一般是Intel的I960芯片还拥有专门的存贮器用于高速缓冲数据。这样一来服务器对磁盘的操作就直接通过磁盘阵列卡来进行处理因此不需要大量的CPU及系统内存资源不会降低磁盘子系统的性能。阵列卡专用的处理单元来进行操作它的性能要远远高于常规非阵列硬盘并且更安全更稳定。


       无论是主板板载的IDE RAID控制芯片还是独立的PCI接口IDE RAID控制器它们都有一个用来进行配置和工作的独立BIOS它们的BIOS设置画面会在系统POST完成之后显示我们可以看到这时候HighPoint HPT372 IDE RAID控制芯片的BIOS画面已经出现在屏幕上按Ctrl+H进入控制界面。

  这里我们看到可以选择的依次有CreateArray建立阵列、Delete Array删除阵列、Create/DeleteSpare建立、删除和Select Boot Disk选择启动硬盘这几个选项。而在选项的下方则显示了所识别到的硬盘和它们的工作状态。我们要建立一个阵列所以选择Create Array在出现的画面中我们就可以完成所有的阵列建立设置工作在ArrayMode中我们可以选择建立RAID的种类默认的是RAID 0模式当然我们可以根据需要选择RAID 0、0+1、JBOD等。

  当我们确定了选择的RAID模式之后便需要为这个阵列进行命名你可以选择自己好识别容易记的名字。确定名字之后我们就要来选择驱动器了。因为我们建立的是RAID 0模式所以只需要2个硬盘。我们选定在下面设备栏中的两块硬盘。

  完成以后就能设定块的大小了。所谓块的大小就是指阵列中的最基本数据单位。一般来说块越小越能充分利用空间。但是IDERAID因为没有自己独立的I/O处理器所以块越小也意味着越高的资源消耗。一般来说默认的64K或者32K都是不错的选择。做完这一切之后整个阵列就建立完成了选择Start Creation Process之后就能保存退出了。

  RAID 0的启用
  如果需要从RAID启动我们还需要在BIOS中把启动顺序设置为ATA RAID独立的RAID卡我们则需要设置为SCSI启动。对于Windows 9x的用户到此整个RAID就建立完毕了我们在DOS下按照普通单个硬盘分区格式化安装系统就搞定了而操作系统也只会把它当作一个驱动器。使用Windows NT/2000/XP的朋友就要麻烦一点了需要另外安装一下你的RAID驱动。

注意事项
1.如果要做RAID 0必须至少有两个硬盘另外一旦将硬盘组成RAID阵列就会丢失原来的数据。
  2.选择硬盘的时候最好完全一样否则会降低性能此时的理论速度也只是慢硬盘速度的两倍。
  3.如果RAID 0阵列中的一块硬盘损坏硬盘阵列的数据将全部丢失造成损失。


      在多个磁盘驱动器上储存数据磁盘读取的工作可以平均分散在不同的磁盘驱动器上可以提高效能。由于使用多个磁盘驱动器平均失效时间会延长重复备份亦可增加数据的容错度。
  
  RAID 0 磁盘平行储存。这表示要写入到数组的数据会先划分为区块再把数据区块写入到数组中的不同的成员磁盘这个方法以较低的固有开支提供了相当高的 I/O 存取效能不过并没有任何的容错能力。 RAID 0 数组的储存容量等于硬件 RAID 设定中所有成员磁盘的总容量也等于软件 RAID 设定中成员分割区的总容量。
  
  RAID 0 需要至少两个以上的磁盘。
  
  RAID 1 映像储存是把相同的数据写入到数组中的每一个成员磁盘中以提供容错能力。
  
  RAID 1 需要至少两个以上的磁盘。
  
  RAID 3 磁盘平行储存与同位检测数据。要写入到数组的数据会先划分为区块再把数据区块写入到数组中的不同的成员磁盘每一个数据区块会产生一个同位检测数据这个同位检测数据在数据写入时会写到专属磁盘在数据读出时会用来确定数据的正确性。
  
  RAID 3 需要至少三个以上的磁盘。
  
  RAID 5 磁盘平行储存与分布式同位检测数据。要写入到数组的数据会先划分为区块再把数据区块写入到数组中的不同的成员磁盘每一个数据区块会产生一个同位检测数据这个同位检测数据在数据写入时会写到磁盘阵列中某一磁盘内分散同位检测数据的信息到数组中某些或所有的成员磁盘驱动器中。
  
  RAID 5 需要至少三个以上的磁盘。
  
  JBOD 简易地群组磁盘驱动器来建立一个大型的虚拟磁盘。 在此模式设定中空间区块是从一个成员磁盘依序分配下来当第一个磁盘完全填满时再分配到第二个磁盘依此类推。这种群组化并没有提供任何的效能增益因为在成员磁盘驱动器之间不可能会有任何分开的 I/O 操作。 JBOD 模式也没有提供多余性而且说实在的它也降低了可靠性 — 假如任何一个成员磁盘发生错误整个数组便无法存取使用。总磁盘容量是所有成员磁盘驱动器的容量。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章