几种常见的RAID形式

在几年前,RAID这个名字对广大DIYer还是很陌生的词汇,随着时间的跃迁,附带RAID功能的主板在市场里渐渐的多了起来,市面上比较常见的提供RAID功能的主板一般都能提供RAID 0,1,0+1几种方式,并且专门提供RAID功能的多功能卡也很容易找到了。现在很多人都想做一个RAID来玩玩(真有钱阿),那么下面就把常见的RAID模式给大家介绍一下吧。

  提起RAID,这里面包括两个含义:A代表array,也就是阵列;I代表independent,也

 
就是说要有一块以上的 硬盘才能够实现RAID功能,总体说来,RAID的意思就是磁盘阵列,根据磁盘和RAID卡之间不同的组合方式来实现不同的磁盘性能。

  RAID 0

  最基本的RAID方式就是RAID 0模式,这个模式的目的是提供最快的存储速度,并没有考虑到安全性问题,RAID 0模式的工作原理如下:

几种常见的RAID形式_第1张图片

  RAID 0利用一定的运算法则将一个文件按照用户自定义的大小分割成若干小部分,当文件被分割之后,RAID 0模式当中的每一块一盘都会存储一定数目的文件碎块。举例来说,如果RAID 0模式当中有两块硬盘,用户自定义的切割文件大小为64K,此时如果RAID控制器接收到一个指令来存储一个大小为128K的文件,这样的话这个文件就会被分割成两个64K大小的文件碎块,然后这两个碎块被同时分别存储在硬盘1和硬盘2当中,存储过程到此完成。在RAID 0模式下读取一个文件的操作也是如此,还是用上面的那个例子来说,由于文件被分割存储在各个硬盘上,读取的时候只需要从两个硬盘当中各读取64K大小的文件碎块便可以完成读取,所以,在这个RAID 0模式当中读取128K大小的文件所需要的时间和在普通硬盘上读取64K大小的文件所需要的时间相同。在这个RAID 0模式当中,由于存储数据的时候动用的是不仅仅是一个硬盘,所以大大减少了存储和读取数据所需要的时间,理论上来讲,RAID 0能够实现写入和读取文件的速度加倍。

  另外还有一种情况就是当所要存储的文件大小小于用户自定义的分割文件大小的时候,此时这个文件就不会被分割开来,当然也就不会被存储在RAID 0模式当中的每个硬盘之上,此时,存储(或者读取)这个文件所需要的时间比使用单个硬盘存储和读取这个文件所需要的时间并没有减少。

  同样,如果用户将分割文件的大小设置的很小的话,将会使RAID 0工作效率变得十分低下,举个非常简单的例子来说,如果用户定义这个分割大小为1K的话,在存储(或者读取)一个大小为128K的文件的时候,那么每个硬盘都需要写入64次并且每次所写入的文件大小为1K,这就会造成一定的瓶颈效应。如果真的有人将分割文件大小设置的如此之小的话,还不如用一块硬盘存储数据好了。

  在前面已经提到,RAID 0所能够提供的是快速的存储和读取的速度,并没有处于安全性考虑,实际上,如果RAID 0当中的一块硬盘损坏了,整体数据都会损坏,并且没有办法恢复数据。这使得RAID 0的安全性能非常的差,所以很多用户出于安全性能的考虑没有使用RAID 0模式。虽然如此,RAID 0毕竟是所有RAID方式当中速度最快的一种组合方式,如果RAID 0模式当中有两块硬盘的话,那么RAID 0的存储读取数据的速度会是单个硬盘的双倍,如果使用6快硬盘的话,那么理论速率就是单个硬盘的6倍。

  如果在RAID 0模式当中使用不同的硬盘会造成两方面的问题,首先,RAID 0的有效硬盘容量会是最小的硬盘的容量乘上硬盘的个数,这是因为如果容量的最小的硬盘存满了之后,RAID 0依然会将文件平均分配到各个硬盘当中,此时便不能完成存储任务了;其次,如果RAID 0当中的硬盘速度不同,那么整体的速度会是速度最慢的硬盘的速度乘上硬盘的个数,这是因为RAID 0模式是需要将上一部的存储任务完成之后才能进行下一步的进程,这样,其它的速度快的硬盘会停下来等待速度慢的硬盘完成存储或者读取任务,使得整体性能有所下降。所以,在这里建议使用RAID 0模式的用户最好选择容量和速度相同的硬盘,最好是同一品牌的同种产品。

  RAID 0面对的是那些需要快速存储和读取速度的用户,并没有为系统安全性考虑。

  RAID 1

  尽管速度对于某些用户来讲是十分重要的,但是有些用户会对安全性能考虑的多一些,RAID 1就是出于安全性能考虑的RAID方式。RAID 1模式的工作原理如下:

几种常见的RAID形式_第2张图片

  RAID 1工作的时候会将每份数据都发送到阵列当中的每个硬盘,当控制器接收到存储64K大小的文件的时候,它会将文件原封不动的发送到这个阵列当中的每个硬盘当中,每个硬盘都会存储这64K大小的文件,当从阵列当中读取文件的时候,控制器会从阵列当中的一个硬盘当中进行读取操作。

  RAID 1的特点是当阵列当中的一块硬盘损坏了的时候,数据不会丢失,此时控制器会从另外的一个没有故障的硬盘当中来读取数据,当阵列当中加入了一个新的硬盘来修复错误的时候,控制器会使用一个镜像来将好的硬盘上的数据恢复到新加入的硬盘上,如此,RAID 1便能够从新形成。

  在RAID 1模式当中,所使用的硬盘最好是相同的,否则会出现浪费硬盘空间的情况。由于RAID 1模式是将相同的信息写入到不同的硬盘当中,所以RAID 1模式的有效硬盘容量是阵列当中容量最小的硬盘的容量。举例来说,如果RAID 1模式当中有一块容量为20G的硬盘和一块容量为30G的硬盘,那么总体的RAID 1的有效容量是20G,从此那块30G硬盘上剩下的10G容量就会被浪费。同时,如果两块硬盘的速度不同的话,那么速度较快的那块硬盘依然会停下来等待速度低的那块硬盘完成任务之后再进行下一步行动。

  RAID 1模式比较适合那些考虑安全性能多于速度性能的用户,尽管RAID 1模式并不是所有的RAID模式当中速度最慢的一种组合方式,但是在测试当中RAID 1模式下的速度有些情况下的确会比单个硬盘的速度要慢。RAID 1的好处就是当阵列当中的一块硬盘损坏了之后也不会导致数据丢失。

RAID 5

  下面给大家介绍一个专业一点的RAID方式,说它是专业的RAID模式是因为它需要单独的硬件支持才行。RAID 5模式的工作原理如下:

几种常见的RAID形式_第3张图片

 

  RAID 5使用至少三块硬盘来实现阵列,它既能实现RAID 0的加速功能也能够实现RAID 1的备份数据功能,在阵列当中有三块硬盘的时候,它将会把所需要存储的数据按照用户定义的分割大小分割成文件碎片存储到两块硬盘当中,此时,阵列当中的第三块硬盘不接收文件碎片,它接收到的是用来校验存储在另外两块硬盘当中数据的一部分数据,这部分校验数据是通过一定的算法产生的,可以通过这部分数据来恢复存储在另外两个硬盘上的数据。另外,这三块硬盘的任务并不是一成不变的,也就是说在这次存储当中可能是1号硬盘和2好硬盘用来存储分割后的文件碎片,那么在下次存储的时候可能就是2号硬盘和3号硬盘来完成这个任务了。可以说,在每次存储操作当中,每块硬盘的任务是随机分配的,不过,肯定是两块硬盘用来存储分割后的文件碎片另一块硬盘用来存储校验信息。

  这个校验信息一般是通过RAID控制器运算得出的,通常这些信息是需要一个RAID控制器上有一个单独的芯片来运算并决定将此信息发送到哪块硬盘存储。

  RAID 5同时会实现RAID 0的高速存储读取并且也会实现RAID 1的数据恢复功能,也就是说在上面所说的情况下,RAID 5能够利用三块硬盘同时实现RAID 0的速度加倍功能也会实现RAID 1的数据备份功能,并且当RAID 5当中的一块硬盘损坏之后,加入一块新的硬盘同样可以实现数据的还原。

  下面来分析一下RAID 5如何实现对数据的还原,举个例子来说,使用3块硬盘来构成一个RAID 5阵列,用户定义的分割文件大小为64K,此时需要存储的文件大小为128K。首先,当RAID控制器接收到这部分数据之后利用一定的算法得出校验信息,然后将这128K的文件分割成两个大小为64K大小的文件碎片,然后将这两个文件碎片同时分别放往1号硬盘和2号硬盘,最后校验信息被发往3号硬盘。如果这个阵列当中某个硬盘损坏了,还是可以恢复原来的数据:如果上面用来存储校验信息的3号硬盘损坏了,可以通过1号和2号硬盘来重新生成校验信息;如果损坏的是1号或者2号硬盘,可以利用3号硬盘上存储的校验信息重新生成原来的文件碎片。

  RAID 5模式并不是一些都好,如果阵列当中某块硬盘上的信息发生了改变的话,那么就需要重新计算文件分割碎片,并且,校验信息也需要重新计算,这时,三个硬盘都需要重新调用。

  同样,如果要做RAID 5阵列的话,最好使用相同容量相同速度的硬盘,RAID 5模式的有效容量是阵列中容量最小的硬盘容量乘上阵列中硬盘数目减去一后的数,这里硬盘数目要减去一是因为其中有一块硬盘用来存放校验信息。

  RAID 5既能够实现速度上的加倍,同时也能够保证数据的安全性,所以在很多高端系统当中都使用这种RAID模式。

  从RAID 0到RAID 7都有相对应的组合方式,但是有些并不常用。还有一种方式是RAID 10,这种方式其实就是RAID 0+1,它的性能基本上和RAID 5相同,既有RAID 0在速度上的优势,同时也有RAID 1在数据安全上的优势,不过,想要组建一个RAID 10模式需要至少四块硬盘,这个成本就比较高了。



你可能感兴趣的:(UNIX系统命令)