磁盘阵列RAID0到RAID60、RAIDJBOD-RAID家族全解析-配详细图文介绍

RAID0、RAID1、RAID2、RAID3、RAID4、RAID5、RAID6、RAID7、RAID0+1、RAID10、RAID50、RAID53、RAID60、RAIDJBOD-RAID磁盘阵列详细图文介绍

1.什么是RAID?

RAID (Redundant Array of Independent/InexpensiveDisks),独立磁盘冗余阵列,简称为「磁盘阵列」,是一种将多块独立的硬盘(物理硬盘)按不同的组合方式形成一个硬盘组(逻辑硬盘),从而提供比单块硬盘更大的存储容量、更高的可靠性和 更快的读写性能等。该概念最早由加州大学伯克利分校的几名教授于1987年提出。早期主要通过RAID控制器等硬件来实现RAID磁盘阵列,后来出现了基 于软件实现的RAID,比如mdadm等。按照磁盘阵列的不同组合方式,可以将RAID分为不同级别,包括RAID0到RAID6等7个基本级别,以及 RAID0+1和RAID10等扩展级别。不同RAID级别代表着不同的存储性能、数据安全性和存储成本等。下面我们将分别介绍这几种RAID级别。

 

标准RAID

RAID 0

RAID 0: 简单地说,RAID0主要通过将多块硬盘“串联”起来,从而形成一个更大容量的逻辑硬盘。RAID0通过“条带化(striping)”将数据分成不同的 数据块,并依次将这些数据块写到不同的硬盘上。因为数据分布在不同的硬盘上,所以数据吞吐量得到大大提升。但是,很容易看出RAID0没有任何数据冗余, 因此其可靠性不高。

Raid0示意图

 

RAID 1

RAID 1:如果说RAID 0是RAID中一种只注重存储容量而没有任何容错的极端形式,那么RAID1则是有充分容错而不关心存储利用率的另一种极端表现。RAID1通过“镜像 (mirroring)”,将每一份数据都同时写到多块硬盘(一般是两块)上去,从而实现了数据的完全备份。因此,RAID1 支持―“热替换”,在不断电的情况下对故障磁盘进行更换。一般情况下,RAID1 控制器在读取数据时支持负载平衡,允许数据从不同磁盘上同时读取,从而提高数据的读取速度;但是,RAID1在写数据的性能没有改善。

raid1示意图

 

RADI 2

RADI 2:RAID 2以比特(bit)为单位,将数据―“条带化(striping)”分布存储在不同硬盘上;同时,将不同硬盘上同一位置的数据位用海明码进行编码,并将这些 编码数据保存在另外一些硬盘的相同位置上,从而实现错误检查和恢复。因为技术实施上的复杂性,商业环境中很少采用RAID2。

raid2示意图

 

RAID 3

RAID 3:与RAID 2类似,不同的是:1)以字节(byte)为单位进行―条带化‖处理;2)以奇偶校验码取代海明码。RAID3的读写性能都还不错,而且存储利用率也相当高,可达到(n-1)/n。但是对于随机读写操作,奇偶盘会成为写操作的瓶颈。

raid3示意图

 

RAID 4

RAID 4:与RAID 3的分布结构类似,不同的是RAID 4以数据块(block)为单位进行奇偶校验码的计算。另外,与RAID2和RAID3不同的是,RAID4中各个磁盘是独立操作的,并不要求各个磁盘的磁头同步转动。因此,RAID4允许多个I/O请求并行处理。

raid4示意图

 

RAID 5

RAID 5: RAID 3和RAID 4都存在同一个问题,就是奇偶校验码放在同一个硬盘上,容易造成写操作的瓶颈。RAID5与RAID4基本相同,但是其将奇偶校验码分开存放到不同的硬盘上去,从而减少了写奇偶校验码带来瓶颈的可能性。

raid5示意图

 

RAID 6

RAID 6:在RAID 5的基础上,RAID 6又另外增加了一组奇偶校验码,从而获得更高的容错性,最多允许同时有两块硬盘出现故障。但是,新增加的奇偶校验计算同时也带来了写操作性能上的损耗。

raid6示意图

 

混合RAID

RAID JBOD

使用单独的链接端口如SATA、USB或1394同时控制多个各别独立的硬盘,使用这种模式通常是较高阶的设备,还具备有RAID的功能,不需要依靠JBOD达到合并逻辑扇区的目的。
只是将多个硬盘空间合并成一个大的逻辑硬盘,没有错误备援机制。
资料的存放机制是由第一颗硬盘开始依序往后存放,即操作系统看到的是一个大硬盘(由许多小硬盘组成的)。但如果硬盘损毁,则该颗硬盘上的所有数据将无法救回。若第一颗硬盘损坏,通常无法作救援(因为大部分文件系统将磁盘分割表(partition table)存在磁盘前端,即第一颗),失去磁盘分割表即失去一切数据,若遭遇磁盘阵列资料或硬盘出错的状况,危险程度较RAID 0更剧。它的好处是不会像RAID 0,每次访问都要读写全部硬盘。但在部分的JBOD数据恢复实践中,可以恢复未损毁之硬盘上的数据。同时,因为每次读写操作只作用于单一硬盘,JBOD的传输速率与I/O表现均与单颗硬盘无异。

raidjbod示意图

                      raidjbod示意图

 

RAID 7

RAID 7并非公开的RAID标准,而是Storage Computer Corporation的专利硬件产品名称,RAID 7是以RAID 3及RAID 4为基础所发展,但是经过强化以解决原来的一些限制。另外,在实现中使用大量的缓冲存储器以及用以实现异步数组管理的专用即时处理器,使得RAID 7可以同时处理大量的IO要求,所以性能甚至超越了许多其他RAID标准的实现产品。但也因为如此,在价格方面非常的高昂。

 

RAID 0+1

RAID 0+1: 为了获取更好的I/O吞吐率或者可靠性,将不同的RAID标准级别混合产生的组合方式叫做嵌套式RAID,或者混合RAID。RAID0+1 是先将硬盘分 为若干组,每组以RAID0的方式组成―条带化‖的硬盘阵列,然后将这些组RAID0的硬盘阵列以RAID1的方式组成一个大的硬盘阵列。

raid0+1示意图

RAID0+1

 

RAID 10

RAID 10: 类似于RAID 0+1, RAID 10则是先“镜像”(RAID 1)、后“条带化”(RAID0)。RAID0+1和RAID10性能上并无太大区别,但是RAID10在可靠性上要好于RAID0+1。这是因为在 RAID10中,任何一块硬盘出现故障不会影响到整个磁盘阵列,即整个系统仍将以RAID10的方式运行;而RAID0+1中,一个硬盘出现故障则会导致 其所在的RAID0子阵列全部无法正常工作,从而影响到整个RAID0+1磁盘阵列 – 在只有两组RAID0子阵列的情况下,整个系统将完全降级为RAID0级别。

raid10示意图

RAID10

 

RAID 50

RAID 5与RAID 0的组合,先作RAID 5,再作RAID 0,也就是对多组RAID 5彼此构成Stripe访问。由于RAID 50是以RAID 5为基础,而RAID 5至少需要3颗硬盘,因此要以多组RAID 5构成RAID 50,至少需要6颗硬盘。以RAID 50最小的6颗硬盘配置为例,先把6颗硬盘分为2组,每组3颗构成RAID 5,如此就得到两组RAID 5,然后再把两组RAID 5构成RAID 0。RAID 50在底层的任一组或多组RAID 5中出现1颗硬盘损坏时,仍能维持运作,不过如果任一组RAID 5中出现2颗或2颗以上硬盘损毁,整组RAID 50就会失效。RAID 50由于在上层把多组RAID 5构成Stripe,性能比起单纯的RAID 5高,容量利用率比RAID5要低。比如同样使用9颗硬盘,由各3颗RAID 5再组成RAID 0的RAID 50,每组RAID 5浪费一颗硬盘,利用率为(1-3/9),RAID 5则为(1-1/9)。

RAID50

RAID50

 

RAID 53

它拥有一个镜像条带数组,硬盘里其中一个条带就是一个是由3组以上的RAID 5组成RAID 3硬盘阵列。

 

RAID 60

RAID 6与RAID 0的组合:先作RAID 6,再作RAID 0。换句话说,就是对两组以上的RAID 6作Stripe访问。RAID 6至少需具备4颗硬盘,所以RAID 60的最小需求是8颗硬盘。
由于底层是以RAID 6组成,所以RAID 60可以容许任一组RAID 6中损毁最多2颗硬盘,而系统仍能维持运作;不过只要底层任一组RAID 6中损毁3颗硬盘,整组RAID 60就会失效,当然这种情况的概率相当低。

比起单纯的RAID 6,RAID 60的上层透过结合多组RAID 6构成Stripe访问,因此性能较高。不过使用门槛高,而且容量利用率低是较大的问题。

raid60示意图

 

实现方式

根据实现模式,分为软件和硬件两种:

软件磁盘阵列(Software RAID):

主要由CPU处理数组存储作业,缺点为耗损较多CPU资源运算RAID,优点则是价格低(若用操作系统的RAID功能,则无需额外花费)。
硬件辅助磁盘阵列(Hardware-Assisted RAID):需要一张基于Fake RAID的RAID卡,以及厂商所提供的驱动程序,但此类RAID卡仍然借助CPU进行运算。此类RAID卡的阵列较易迁移到其他电脑,其RAID功能靠执行于操作系统的厂商驱动程序和CPU运算提供。
操作系统的RAID功能:如Linux、FreeBSD、Windows Server等操作系统内置RAID功能。

 

Windows10内置的磁盘管理有五种模式:

简单卷:独立运作的基本分区。若PC上只有一个物理磁盘,那么只能创建简单卷。

跨距卷(跨区卷):将不同物理磁盘的多个未配置空间合并为一个逻辑扇区。资料的存放机制是由第一颗硬盘开始依序往后存放,操作系统会视为一个硬盘。如果任一个物理硬盘损毁,则该逻辑扇区上的所有资料将无法救回。

等量卷(带区卷):由两个或多个物理磁盘的相同容量空间组成。资料分布在多个物理磁盘中,可以提高性能。

镜像卷:将两个或多个物理磁盘中创建完全相同的资料副本,即使其中一个物理硬盘损坏,资料仍然可以从其他冗余副本中获取,具有容错空间。

若物理磁盘容量大小不同,实际可用空间将等于最小的物理磁盘。

RAID-5卷:最大可支持9.4ZB的硬盘容量,最多可创建128个分区。

硬件磁盘阵列(Hardware RAID)

基于主板的磁盘阵列:只需要主板支持即可(通常是芯片组内置的RAID功能,如Intel Matrix RAID,后来变为Intel Rapid Storage Technology),不需要任何磁盘阵列卡。若主板损坏,可能难以购买同款主板重建RAID。
RAID卡:与Fake Raid卡相比,RAID卡基于片上RAID (ROC, RAID-on-chip),具有独立的CPU资源。优点是读写性能最快,不占用服务器资源,可用于任何操作系统,也能在系统断电后,透过备份电池模块(BBU, Backup Battery Unit)以及非易失性存储器(NVRAM)将硬盘读写日志(Journal)包含的剩余读写作业先记录在存储器中,等待电力供应撤销后,再由NVRAM取回日志资料,接着再完成读写作业,将剩余读写作业安全完成以确保读写完整性。备份电池模块通常会配合数组卡的Write-Back缓存模式,借由此存储器缓存读写作业以得到更高的读写性能;但是没有备份电池模块的硬件磁盘阵列卡若使用Write-Back缓存模式,遭遇断电情形会导致读写资料流失。此外,因为硬件磁盘阵列卡搭载内置处理器,所以可以与操作系统分离出来,对硬盘进行各种作业,还原作业的速度也比软件磁盘阵列快。缺点是其售价较高,且与性能正相关。

RAID的应用

RAID2、3、4较少实际应用,因为RAID0、RAID1、RAID5、RAID6和混合RAID已经涵盖所需的功能,因此RAID2、3、4大多只在研究领域有实现,而实际应用上则以RAID0、RAID1、RAID5、RAID6和混合RAID为主。

RAID4有应用在某些商用机器上,像是NetApp公司设计的NAS系统就是使用RAID4的设计概念。

以下是RAID的一些应用场景:

企业资源项目(ERP)系统。

VPS/VDS/虚拟主机/云主机。
网络附加存储(NAS)系统。
影音多媒体数字内容创作公司、个人影音剪辑数字内容工作室、摄影工作室、摄影公司。
电视台、广播电台及互联网内容提供商等传统媒体及新媒体。
数字监控系统(DVR)、网络监控系统(NVR)等等需要大量存储影片的监控系统业者,军方、赌场因为需要大量监控系统也是常见使用磁盘阵列的客户。
证券、银行等金融行业保管重要客户资料。

THE END