Raid 10有很多值得学习的地方,这里我们主要介绍Raid 10结构,包括介绍Raid 0与Raid1等方面。Raid 10结构是一个Raid 0与Raid1的组合体,它是利用奇偶校验实现条带集镜像,所以它继承了Raid0的快速和Raid1的安全。我们知道,RAID 1在这里就是一个冗余的备份阵列,而RAID 0则负责数据的读写阵列。其实,更多的情况是从主通路分出两路,做Striping操作,即把数据分割,而这分出来的每一路则再分两路,做Mirroring操作,即互做镜像。

  由于利用了RAID 0极高的读写效率和RAID 1较高的数据保护、恢复能力,使RAID 10结构成为了一种性价比较高的等级,目前几乎所有的RAID控制卡都支持这一等级。但是,RAID 10对存储容量的利用率和RAID 1一样低,只有50%。因此,RAID10即高可靠性与高效磁盘结构它是一个带区结构加一个镜象结构,可以达到既高效又高速的目的,RAID 10能提供比RAID 5更好的性能。这种新结构的可扩充性不好,这种解决方案被广泛应用,使用此方案比较昂贵。

  Raid 10结构非常简单,首先创建2个独立的Raid1,然后将这两个独立的Raid1组成一个Raid0,当往这个逻辑Raid中写数据时,数据被有序的写入两个Raid1中。磁盘1和磁盘2组成一个Raid1,磁盘2和磁盘3又组成另外一个Raid1;这两个Raid1组成了一个新的Raid0。如写在硬盘1上的数据0、1、3、4,写在硬盘2中则为数据0、2、3、5,硬盘3中的数据为1、2、4、5,因此数据在三个硬盘上的分布不同于Raid1 和Raid0,但又具有两者的特性。

   虽然Raid10方案造成了50%的磁盘浪费,但是它提供了200%的速度和单磁盘损坏的数据安全性,并且当同时损坏的磁盘不在同一Raid1中,就能保证数据安全性。磁盘2损坏了,整个逻辑磁盘仍能正常工作的。

当我们需要恢复RAID 10中损坏的磁盘2时,只需要更换新的硬盘,安装RAID10的工作原理来进行数据恢复,恢复数据过程中系统仍能正常工作。新换硬盘2,原先的数据0、2、3、5会同步恢复到硬盘2中。

总的来说,RAID 10以RAID 0为执行阵列,以RAID 1为数据保护阵列,它具有与RAID 1一样的容错能力,用于容错处理的系统开销与单独的镜像操作基本一样,由于使用RAID 0作为执行等级,因此具有较高的I/O宽带;对于那些想在RAID 1基础上大幅提高性能的用户,它是一个完美的解决方案。RAID 10结构适用于数据库存储服务器等需要高性能、高容错但对容量要求不大的场合。

 wKioL1Oab7vCefqyAACUQUEUBhw708.jpg

[root@mail ~]# mdadm -C /dev/md10 -a yes -l 10 -n 4 /dev/sd{b,c,d,e}1
mdadm: /dev/sdb1 appears to contain an ext2fs file system
    size=3132288K  mtime=Thu Jun 13 17:39:02 2013
mdadm: /dev/sdb1 appears to be part of a raid array:
    level=raid5 devices=4 ctime=Thu Jun 13 17:36:44 2013
mdadm: /dev/sdc1 appears to be part of a raid array:
    level=raid5 devices=4 ctime=Thu Jun 13 17:36:44 2013
mdadm: /dev/sdd1 appears to be part of a raid array:
    level=raid5 devices=4 ctime=Thu Jun 13 17:36:44 2013
mdadm: /dev/sde1 appears to contain an ext2fs file system
    size=3132288K  mtime=Thu Jun 13 17:39:02 2013
mdadm: /dev/sde1 appears to be part of a raid array:
    level=raid5 devices=4 ctime=Thu Jun 13 17:36:44 2013
mdadm: largest drive (/dev/sdb1) exceed size (1044096K) by more than 1%
Continue creating array? yes
mdadm: array /dev/md10 started.
[root@mail ~]# mdadm -Ds  /dev/md5 
mdadm: md device /dev/md5 does not appear to be active.
[root@mail ~]# mdadm -Ds  /dev/md10
/dev/md10:
        Version : 0.90
  Creation Time : Thu Jun 13 19:16:58 2013
     Raid Level : raid10
     Array Size : 2088192 (2039.59 MiB 2138.31 MB)
  Used Dev Size : 1044096 (1019.80 MiB 1069.15 MB)
   Raid Devices : 4
  Total Devices : 4
Preferred Minor : 10
    Persistence : Superblock is persistent

    Update Time : Thu Jun 13 19:17:42 2013
          State : clean
 Active Devices : 4
Working Devices : 4
 Failed Devices : 0
  Spare Devices : 0

         Layout : near=2
     Chunk Size : 64K

           UUID : 5d22fcdf:6ea0561d:73986ccd:226ebebd
         Events : 0.4

    Number   Major   Minor   RaidDevice State
       0       8       17        0      active sync   /dev/sdb1
       1       8       33        1      active sync   /dev/sdc1
       2       8       49        2      active sync   /dev/sdd1
       3       8       65        3      active sync   /dev/sde1
[root@mail ~]# mdadm   /dev/md10  -f  /dev/sdb1
mdadm: set /dev/sdb1 faulty in /dev/md10
[root@mail ~]# mdadm -Ds  /dev/md10
/dev/md10:
        Version : 0.90
  Creation Time : Thu Jun 13 19:16:58 2013
     Raid Level : raid10
     Array Size : 2088192 (2039.59 MiB 2138.31 MB)
  Used Dev Size : 1044096 (1019.80 MiB 1069.15 MB)
   Raid Devices : 4
  Total Devices : 4
Preferred Minor : 10
    Persistence : Superblock is persistent

    Update Time : Thu Jun 13 19:20:30 2013
          State : clean, degraded
 Active Devices : 3
Working Devices : 3
 Failed Devices : 1
  Spare Devices : 0

         Layout : near=2
     Chunk Size : 64K

           UUID : 5d22fcdf:6ea0561d:73986ccd:226ebebd
         Events : 0.6

    Number   Major   Minor   RaidDevice State
       0       0        0        0      removed
       1       8       33        1      active sync   /dev/sdc1
       2       8       49        2      active sync   /dev/sdd1
       3       8       65        3      active sync   /dev/sde1

       4       8       17        -      faulty spare   /dev/sdb1
[root@mail ~]# mdadm   /dev/md10  -f  /dev/sdc1
mdadm: set /dev/sdc1 faulty in /dev/md10
[root@mail ~]# mdadm -Ds  /dev/md10
/dev/md10:
        Version : 0.90
  Creation Time : Thu Jun 13 19:16:58 2013
     Raid Level : raid10
     Array Size : 2088192 (2039.59 MiB 2138.31 MB)
  Used Dev Size : 1044096 (1019.80 MiB 1069.15 MB)
   Raid Devices : 4
  Total Devices : 4
Preferred Minor : 10
    Persistence : Superblock is persistent

    Update Time : Thu Jun 13 19:20:40 2013
          State : clean, degraded
 Active Devices : 2
Working Devices : 2
 Failed Devices : 2
  Spare Devices : 0

         Layout : near=2
     Chunk Size : 64K

           UUID : 5d22fcdf:6ea0561d:73986ccd:226ebebd
         Events : 0.8

    Number   Major   Minor   RaidDevice State
       0       0        0        0      removed
       1       0        0        1      removed
       2       8       49        2      active sync   /dev/sdd1
       3       8       65        3      active sync   /dev/sde1

       4       8       33        -      faulty spare   /dev/sdc1
       5       8       17        -      faulty spare   /dev/sdb1