你好,游客 登录
背景:
阅读新闻

Linux基础教程:独立硬盘冗余阵列-RAID

[日期:2017-09-19] 来源:Linux社区  作者:liubinsh [字体: ]

  独立硬盘冗余阵列(RAID,Redundant Array of Independant Disks),旧称为廉价磁盘冗余阵列(Redundant Array of Inexpensive Disks)。1987年美国加州伯克利分校的一篇名为《A Case for Redundant Arrays of Inexpensive Disk(RAID)》论文诞生,这标志着RAID技术的开始。

  那么什么是RAID呢?简单的来讲就是把多个硬盘组合起来,成为一个硬盘阵列组,操作系统会把它当做是一个硬盘,其性能能够达到甚至超过单个昂贵容量大的硬盘。RAID提供了多种硬盘组合的方式,相比单个硬盘来说,提高了硬盘得I/O能力。多个磁盘之间相互冗余,提高了耐用性。

  RAID的硬盘组合方式有:RAID-0,RAID-1,RAID-2,RAID-3,RAID-4,RAID-5,RAID-6,RAID-7,RAID10,RAID-01,RAID-50,RAID-53,RAID-60,JBOD。

  RAID的实现模式

  Software RAID:

  软件磁盘阵列,由CPU处理和协调一个RAID里面各个硬盘的作业,这样就会给CPU带来较多的运算压力,分为3种:

  1)基于主板的的磁盘阵列:通常上是由主板上的芯片组提供RAID功能。

  2)硬件辅助磁盘阵列:需要RAID卡和相关厂商提供的驱动程序,RAID功能是由驱动程序和CPU运算来提供

  3)操作系统的RAID功能:Linux、windows Server等操作系统内置的RAID功能

  虽然软RAID实现的有多种,但是在生产环境还是不建议使用的。

  Hardware RAID:

  硬件磁盘阵列,在RAID卡上内置了CPU处理器,这样就不占用服务器的CPU了。一般硬件磁盘阵列都会有备份的电源模块和NVRAM(非易失性内存),当系统断掉后,备份电源开始供电,将硬盘读写的日志保存在内存中,当系统恢复,备份电源关闭供电,再在NVRAM读取日志数据,继续完成上次断电前没有完成的作业。

  常用RAID介绍

  常用的RAID有:RAID0,RAID-1,RAID-5,RAID6,RAID-10,RAID50。

  RAID0

  RAID0,也称条带卷(striping)。在RAID0中,数据会被切成片,按一定顺序会被写到所有的磁盘里面,如下图:

  若一片数据被切割成了A1-A8,将存储在一个由2块Disk组成的RAID0,那么第一段数据块A1会被存储在Disk0中,第二段数据块A2会被存储在Disk1中,第三段数据块会被存储在Disk0中,以此类推,这一片数据会被均分到2块磁盘上。

  RAID0的优缺点:

  1)速度快,写和读的能力得到了提高;

  2)RAID0没有冗余的能力,一旦一块磁盘出现了故障,则所有的数据都将不会恢复;

  3)RAID0需要N块磁盘才能实现(N>=2);

  4)能够存储数据的大小为N*min(S1,S2,S3,S4....)

  在RAID0中有两个重要的参数:

  条带宽度:stripe width,它指的是可以被并行写入的数据块的个数,也就是实现RAID0中磁盘的个数;

  条带大小:stripe size,它指的是每次写入磁盘的数据块的大小,大小一般为2KB或者512KB甚至更大,size越小,数据被分割的次数就越多。stripe size对性能是有一定的影响的,在生产环境中,需要调整好。

  RAID1

  RAID1,镜像化,在RAID1中,数据会被复制成多份,存储在多个磁盘上,如下图:

  若一片数据将要被存储,数据会被复制成多份(取决RAID1的磁盘个数),然后存储到每一个磁盘上。

  RAID1的优缺点:

  1)冗余性和数据的可靠性最高,只要不是磁盘同时损坏了,一般都不会带来数据丢失的问题;

  2)RAID1的容量取决容量最小的那个磁盘,写入速度也是取决于最小的那个磁盘,较大的磁盘的剩余空间可 以分区使用,不会造成浪费;

  3)RAID1的读取速度理论上来说是磁盘个数的倍数;

  4)RAID1需要N块磁盘才能实现(N>=2)

  5)能够存储数据的大小为min(S1,S2,S3...)

  RAID3

  RAID3,数据类似于RAID0,被条带化的存储在多个磁盘中,数据以字节为单位,与RAID0不同的是,RAID3单独使用了一块独立的磁盘用来存储数据的奇偶校验值,如下图所示:

  数据被切片存储在Disk0-2上,同时计算处奇偶校验值存储在Disk3上,这样即使Disk0-2中损坏一块磁盘,也能根据奇偶校验值得到损坏磁盘的数据。

  RAID3的优缺点:

  1.较高的容错能力;

  2.不适合写入操作较多的情景,会给校验盘带来一定的负载,适合读取操作较多的应用环境;

  3.RAID3需要N块磁盘(N>=3);

  4.能够存储数据的大小为(N-1)*min(S1,S2,S3,S4....)。

  RAID4

  和RAID3类似,RAID4不是以字节为存取单位,RAID4的数据以块(一般为512字节)为单位,如下图:

  以块为单位带来的好处就是,减少了奇偶检验的次数,比如,如果一段数据的大小为10个字节,在RAID3上可能需要计算2次奇偶检验值了,但是在RAID4上,10个字节都会被放在第一个磁盘上,并不需要计算。

  RAID4的优缺点:

  1.较高的容错能力;

  2.提高了小量数据的I/O能力;

  3.RAID4需要N块磁盘(N>=3);

  4.能够存储数据的大小为(N-1)*min(S1,S2,S3,S4....)。

  RAID5

  RAID5可以理解成是RAID0和RAID1的折中方案,把数据条带化后存储,并且将数据奇偶检验值存储在所有的硬盘上,如下图:

  数据被条带化存储到了磁盘上,并且每个磁盘上都能够存储奇偶检验值,其读写速度和RAID0差不多,可能写的时候要慢一点,比较要计算奇偶检验,这样,即使坏掉一块磁盘,只需要更换上好的磁盘,RAID会利用剩下奇偶检验去重建磁盘上的数据。

  RAID5的优缺点:

  1)较高的容错能力;

  2)读写速度快;

  3)RAID4需要N块磁盘(N>=3);

  4)能够存储数据的大小为(N-1)*min(S1,S2,S3,S4....)。

  RAID6

  与RAID5类似,只是增加了第二个独立的奇偶检验信息块,使用了两种不同的奇偶检验算法,如下图所示:

  数据仍然是被条带化得存储在磁盘上,但是会计算出两个独立的奇偶检验值,相对于RAID5来说有更多的I/O操作和计算量,所以RAID6通常不会以软件来实现,一般会使用硬件实现,RAID6也是最常见的磁盘阵列。

  RAID6的优缺点:

  1)较高的容错能力

  2)同一RAID6中最多运行同时损坏2块磁盘,更换磁盘后,数据将被重新计算写入;

  3)RAID6需要N个磁盘(N>=4);

  4)RAID容量为(N-2)*min(s1,s2,s3,...)

  RAID 01

  RAID 01是一种混合的磁盘阵列,即是RAID0和RAID1的混合,先做条带,再做镜像:

  RAID01中,同组RAID0只要出现一个磁盘损坏,那么这个RAID 0就不能你使用了,值剩下其他组的磁盘运作,可靠性较低。

  RAID01的优缺点:

  1)数据可靠性低

  2)RAID01需要N个磁盘(N>=4)

收藏 推荐 打印 | 录入:Cstor | 阅读:
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数
点评:
       
评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款
热门评论