主流Raid的原理

   1、什么是Raid

    Raid的英文全称是redundant array independent disks,中文意思是“独立硬盘冗余阵列”,有时也简称为硬盘阵列(disk array)。Raid能够把多块独立的硬盘(物理硬盘)按不同的方式组合起来形成一个硬盘组(逻辑硬盘),从而提供比单个硬盘更高的存储性能。组成硬盘阵列的不同方式称为Raid级别(Raid levels),常见的Raid应用模式包括:Raid 0、Raid 1、Raid 5以及Raid 0+1或Raid 1+0。

   部署用Raid可以带来以下优点:

    ・通过把多个物理硬盘组织在一起,作为一个逻辑卷提供硬盘跨越功能。

    ・通过把数据分成多个数据块,并行写入/读出多个硬盘以提高访问硬盘的速度。

    ・通过镜像或校验操作提供容错能力。

    2、Raid 0

    Raid 0通过将2个或更多硬盘上的可用空间区域合并成一个逻辑卷,可以在多个硬盘上分布数据。Raid 0不能被扩展或镜像,不提供容错功能。如果其中一个包含Raid 0的硬盘出现故障,则整个逻辑硬盘将无法工作。建议使用大小、型号和制造商相同的硬盘。利用Raid 0,可以将数据分块,并按一定顺序,在阵列中的所有硬盘上以分布式存储数据。Raid 0可以同时对所有硬盘进行写数据操作,从而可以相同的速率向所有硬盘写数据,提高数据的写入速度,如图所示。

wKiom1ZsVIiz9FBYAACJy5FvEfk229.png

                                raid0对硬盘的写数据操作

    ・硬盘组

    Raid 0模式至少需要2块硬盘,可以使用N块同样的硬盘用硬件的形式通过智能硬盘控制器或用操作系统中的硬盘驱动程序以软件的方式串联在一起,形成一个独立的逻辑驱动器,容量是单独硬盘的N倍,在执行数据写操作时被依次写入到各硬盘中。当一块硬盘的空间用尽时,数据就会被自动写入到下一块硬盘中。硬盘组的优点是可以增加硬盘容量,速度与其中任何一块硬盘的速度相同。

    ・数据处理

    Raid0的工作状态是把连续的数据分散到多个硬盘上存取。系统数据请求被多个硬盘并行执行,每个硬盘执行属于自身的数据请求。这种数据上的并行操作可以充分利用总线的带宽,能够显著提高硬盘的整体存取性能。

    例如:现在有2块硬盘,建立Raid0数据存储模式,数据以64KB为单位进行读写,可以同时对2块硬盘进行读写,所以Raid0对数据写入、读出速度非常快。假设一个文件有4个文件块,第1个文件块写入第一个硬盘,第二个文件块写入第二个硬盘,第三个文件块写入第一个硬盘,第四个文件块写入第二个硬盘,以此类推。数据写入模式如图7-5所示。

wKiom1ZsXZezvpJvAADLKboQrO0198.png

    ・Raid 0的优缺点

    Raid 0支持连续分割数据、并行地读/写于多个硬盘上,因此具有很高的数据传输速率。但Raid0在提高性能的同时,并没有提供数据可靠性,如果一个硬盘失效,部署的整个逻辑卷将被损坏,损坏的数据无法恢复。因此Raid 0不具备数据备份、容错的功能。

    尽管不具备容错能力,Raid 0在所有数据存储模式中的性能最好,同时它通过在多个硬盘上分配I/O请求而提高了I/O性能。Raid 0在以下情况下提高了性能:从(向)大数据库中读(写)数据,以极高的传输速率从外部收集数据。

    ・Raid 0适用环境。

    Raid 0数据存储模式适用于对性能要求较高,而对数据安全要求较低的领域。对于普通用户,Raid 0也是提高硬盘存储性能的绝佳选择。但Raid 0不可应用于需要数据高可用性的关键应用。


    3.Raid 1

    Raid 1即硬盘镜像,把一个硬盘的数据镜像到另一个硬盘上,在不影响性能情况下最大限度地保证系统的可靠性和可修复性,具有很高的数据冗余能力,多用在保存关键性数据的重要场合。如果一个物理磁盘出现故障,虽然该硬盘上的数据将无法使用,但系统能够继续使用尚未损坏而仍继续正常运转的硬盘进行数据的读写操作,从而能够在另一硬盘上保留完全冗余的副本,保护硬盘上的数据免受介质故障的影响。如图所示

wKioL1ZsYhygcxo_AACMF16_05E689.png

    ・硬盘组

    使用Raid 1,建议使用大小、型号和制造厂家都相同的硬盘,以避免可能产生的兼容性问题。Raid 1可以增强读性能,容错驱动程序同时从两个成员中读取数据,所以读取数据的速度会较快。当然,由于容错驱动程序必须同时向两个成员写数据,写性能会略有降低。Raid 1是所有Raid等级中实现成本最高的一种。

    Raid 1至少需要2块硬盘。2块硬盘建立的镜像容量必须相同。Raid 1的容量等于所选用的硬盘存储空间的总和除以所使用的硬盘数目。在实际工作环境中,Raid 1模式可能使用得最多。

    ・数据处理

    Raid 1把同一个数据块分别写入到2块不同的硬盘中,在执行数据写入时,速度会有一定程度的降低,但是在读出时,以并发的方式读取,也就是说,读取速度要远远快于写入速度。服务器上现在有2块硬盘,建立了Raid 1。Raid 1的数据以64K为单位读写,假设一个文件有4个文件块,第一个块文件写入第一个硬盘,同时第一个块文件写入第二个硬盘,第二个块文件写入第一个硬盘,同时第二个块文件写入第二个硬盘。以此类推。可以看出,Raid 1具备数据备份功能,也是说,如果有一块硬盘损坏的情况下,备份的硬盘还可以继续工作从而保证数据的安全。数据写入模式如图所示。

wKioL1Zti7zxnvADAADOpV4G2z4924.png

    ・Raid 1的优缺点。

    Raid 1对存储的数据进行百分之百的备份,在所有Raid级别中,Raid 1提供最高的数据安全保障。同样,由于数据百分之百备份,备份数据占了总存储空间的一半,因而Raid 1的硬盘空间利用率只有50%(每组数据有两个成员),所以Raid 1硬盘使用成本的花费相对较高。不过,对于服务器系统而言,稳定压倒一切,一旦系统瘫痪,所有数据都将随之而消失,所以Raid 1的高成本代价非常值得。

    在Raid 1环境中,任何一块硬盘出现故障都不会影响系统的正常运行。而且,只要能够保证任何一堆镜像中至少有一块硬盘可以使用,Raid 1甚至可以在一半数量的硬盘出现问题时不间断工作。当一块硬盘失效时,系统会忽略该硬盘,转而使用剩余的镜像盘读写数据。

    通常,把出现硬盘故障的Raid 1系统称为在降级模式下运行。虽然这时保存的数据仍然可以继续使用,但Raid 1将不再可靠。如果剩余的镜像盘出现问题,那么整个系统就会崩溃。因此,应当及时更换损坏的硬盘,避免出现新问题。更换硬盘之后,原正常盘中的数据必须被复制到新盘中,这一操作被称为同步镜像。同步镜像一般需要很长时间,尤其是当损坏的硬盘容量很大时更是如此。同步镜像进行过程中,外界对数据的访问不会受到影响。然而因为复制数据需要占用一部分带宽,所以可能会使整个系统的性能有所下降。Raid 1具备以下特点:

    1)Raid 1的每一个硬盘都具有一个对应的镜像盘,任何时候数据都同步镜像,系统可以从一组镜像中的任何一个硬盘读取数据。

    2)硬盘所能使用的空间只有硬盘容量总和的一半,成本较高。

    3)系统中任何一对镜像盘至少有一块硬盘可以使用,甚至在一半数量的硬盘出现问题时系统都可以正常运行。

    4)出现硬盘故障的Raid系统不再可靠,应当及时更换损坏的硬盘。否则,剩余的镜像盘一旦出现问题,整个系统就会崩溃。

    5)更换新盘后,原有数据需要很长时间同步镜像,外界对数据的访问不会受到影响,只是这时系统整体性能有所下降。

    6)Raid 1硬盘控制器的负载相当大,用多个硬盘控制器可以提高数据的安全性和可用性。

    ・Raid 1不能提高存储性能,但由于其具有的高数据安全性,使其尤其适用于存放重要数据的环境中,例如服务器和数据库存储等环境中。


    4.Raid 5

    Raid 5环境中,操作系统通过向每个硬盘分区中添加奇偶校验信息实现容错。如果某个硬盘出现故障,操作系统便可以用其余硬盘上的数据和奇偶校验信息重建发生故障的硬盘数据,如图所示

wKiom1ZtkReDppIeAAChO0R5SpE143.png

    ・硬盘组

    Raid 5卷至少需要3块硬盘或者更多的硬盘,硬盘数量比前面的几种方式都多。如果使用3块硬盘,Raid 5卷的容量等于所选用的其中2块硬盘的存储空间总和。3块硬盘建立的Raid 5方式的容错所需的存储空间必须相同。Raid 5卷的数据以64K为单位读写。

    ・数据处理

    Raid 5卷把数据块顺序写入不同的硬盘中,在执行数据写入、读取时以并发方式操作,也就是说,写入、读取速度非常快。由于要计算奇偶校验信息,Raid 5写操作要比Raid 1写操作慢一些。但是,Raid 5提供比Raid 1更好的读性能,操作系统可以从多个盘上同时读取数据。与Raid 1相比,Raid 5的性价比较高,而且Raid 5卷的硬盘数量越多,冗余数据带区的成本越低,因此,Raid 5被广泛应用于数据存储。Raid 5数据存储也有一些限制,例如Raid 5卷至少需要3个硬盘才能实现,但最多不能超过32个硬盘。

    假设一个文件有6个文件块,第一个块文件写入第一个硬盘,第二个块文件写入第二个硬盘,第一个、第二个块文件写入成功以后,得出一个奇偶校验值,然后把这个值写入第三块硬盘中。也就是说,第三个硬上存储得不是第三个块文件,而是校验信息;然后,第三个块文件写入第一个硬盘,第四个块文件写入第三个硬盘,第二个硬盘上存储的是第三个、第四个块文件的奇偶校验信息;然后,第五个块文件写入第二个硬盘,第六个块文件写入第三个硬盘,第一个硬盘上存储的是第五个、第六个块文件的奇偶校验信息,以此类推。从以上的存储算法看出,Raid 5卷具有数据容错功能,也就是说,如果有一块硬盘损坏的情况下,更换硬盘以后,可以根据奇偶校验算法反算出损坏的那块硬盘的数据,从而保证数据的安全。如果这个例子中的2块硬盘出现了问题,数据也会全部丢失。数据写入如图所示

wKiom1ZtlHiyne0JAADpne-spTQ328.png

    ・Raid 5优缺点

    Raid 5可以理解为Raid 0和Raid 1的折衷方案。Raid 5可以为系统提供数据安全保障,但保障程度比Raid 1低,而硬盘空间利用率要比Raid 1高。Raid 5具有与Raid 0相近似的数据读取速度,只是多个数据对应一个奇偶校验信息,Raid 5的硬盘空间利用率比Raid 1高,存储成本相对较低。

    ・Raid 5适用环境。

    Raid 5的特点适用于既有大量数据需要存取,同时又对数据安全性要求严格的领域,例如银行、金融、证券、仓储等重要环境中。


    5、Raid 0+1

    Raid 0+1结合Raid 0及Raid 1的优点,采用2组Raid 0的硬盘阵列互为镜像,也就是它们之间又成为一个Raid 1的阵列。在每次写入数据时,硬盘阵列控制器会将数据同时写入两组“大容量阵列硬盘组”(Raid 0)中。数据除分布在多个盘上外,每个盘都有其物理镜像盘,提供冗余能力,允许一个以下硬盘故障,而不影响数据可用性,并具有快速读/写能力。

    ・硬盘组

    至少4块硬盘才能作成Raid 0+1。如果是4块硬盘A、B、C、D部署Raid 0+1方案,可以使用硬盘A、C部署为Raid 0,硬盘B、D部署为Raid 0,然后将两个Raid 0部署为Raid 1,如图所示

wKioL1ZtmCnSRgi9AACkQXWWBvo329.png

    Raid 0+1提供最佳的速度及可靠度,不过需要两倍的硬盘驱动器数目作为一个Raid 0,每一端的半数作为镜像用。在执行Raid 0+1时至少需要4个硬盘驱动器,所以可以说Raid 0+1通过高成本换取的是“高安全性”和“高性能”。Raid 0+1是存储性能和数据安全兼顾的方案,在提供与Raid 1一样的数据安全保障的同时,也提供了与Raid 0相近的存储性能。

    Raid 0+1模式最大容量:硬盘数*硬盘容量/2。例如,如果有6块硬盘希望使用Raid 0+1模式,可以将3块硬盘分为一组,创建Raid 0。这样,总体存储性能就是每块硬盘的3倍(硬盘数*硬盘存储能力)。将另外3块硬盘作为镜像硬盘。

    ・Raid 0+1的优缺点。

    Raid 0+1的优点:从理论上来说,Raid 0+1能够经受住Raid 0中任何一块硬盘的故障,这是因为该硬盘上所有的数据都被备份在Raid 1阵列中。在大部分情况下,如果两块硬盘出现故障就会影响整个阵列。由于在Raid阵列中的某一块硬盘出现故障之后,很多Raid控制器会让Raid 0镜像离线(Raid 0阵列不提供任何冗余),因此只有剩下的Raid 0阵列在工作,这样系统将不存在冗余功能。简而言之,如果每个Raid 0阵列中都有一块硬盘出现故障,那么整个硬盘阵列将不工作。Raid 0+1提供非常好的顺序或任意读写的性能。

    Raid 0+1的缺点:只能使用硬盘阵列总体存储容量的50%。容错性不如Raid 1+0。对于绝大部分控制器来说,这种模式能够应对一块硬盘出现故障的情况。扩展方面受到限制,而且扩展的费用很高。

    ・Raid0+1适用环境

    Raid 0+1的特点使其特别适用于既有大量数据需要存取,同时也对数据安全性要求严格的领域,例如银行、金融等环境中。


    6、Raid 1+0

    Raid 1+0由两组Raid 1的硬盘作Raid 0的镜像完成容错功能。Raid 1+0的硬盘空间利用率与Raid 0+1相同。其他参数可以参考Raid 0+1部分内容,Raid 1+0部署结构(以4块硬盘为例说明)如图所示

wKiom1Ztm9qiPdf6AACi4UMFeHg197.png

    7、Raid 0+1和Raid 1+0的区别

    Raid 0+1与Raid 1+0虽然都利用了Raid 0和Raid 1的优点,但两种架构之间存在区别,因此在数据安全性上也存在区别。

    ・Raid结构

    从结构上看,如果两种Raid都是由4块物理硬盘组成,分别定义为A盘、B盘、C盘、D盘。

    ・Raid 0+1是先有两组Raid 0,第一组Raid 0(命名为AB)由A和B组成,第二组Raid 0(命名为CD)由C和D组成,然后再由AB和CD组成Raid 1,即两组Raid 0间是互为镜像的关系。

    ・Raid 1+0是先有两组Raid 1,每一组Raid 1(命名为AB)由A和B组成,第二组Raid 1(命名为CD)由C和D组成,然后再由AB和CD组成Raid 0,两组Raid 1之间是不带校验的条带关系。

    ・数据安全性。

    若有硬盘出现物理故障时,两种Raid的可靠性存在明显差别。在Raid 0+1中,若有一块硬盘(假设为A盘)出现物理故障时,A盘所在的AB组Raid 0也就不再工作,只剩下CD一组Raid 0提供服务,此时的安全性可想而知;而在Raid 1+0中,若同样有一块硬盘(假设为A盘)出现物理问题,除A盘以外,其他硬盘仍能正常提供服务,虽然可靠性有所降低,但终归要强于第一种情况下的Raid 0。因此,当组成Raid的硬盘个数增加时,这种可靠性的差距会更大。

    ・性能

    相比而言,Raid 1+0具有比Raid 0+1更高的可用性,而性能上几乎没有差异。

    ・硬盘组成

    与Raid 1+0相比,Raid 0+1的唯一好处是组成两个Raid 0的硬盘个数和容量可以不一致,而Raid 1+0则要求所有的硬盘容量完全一致。

你可能感兴趣的:(raid)