1. raid简介

    Redundant Arrays of Independent Disks,RAID,即独立磁盘冗余阵列,是由很多价格较便宜的磁盘,组合成一个容量巨大的磁盘组,利用个别磁盘提供数据所产生加成效果提升整个磁盘系统效能。利用这项技术,将数据切割成许多区段,分别存放在各个硬盘上,磁盘阵列还能利用同位检查(Parity Check)的观念,在数组中任意一个硬盘故障时,仍可读出数据,在数据重构时,将数据经计算后重新置入新硬盘中。

  2. 常用的RAID技术与特点

    1)、RAID 0
         RAID 0是组建磁盘阵列中最简单的一种形式,只需要2块以上的硬盘即可,成本低,可以提高整个磁盘的性能和吞吐量。RAID 0没有提供冗余或错误修复能力,但实现成本是最低的。
        2)、RAID 1

                RAID 1称为磁盘镜像,原理是把一个磁盘的数据镜像到另一个磁盘上,也就是说数据在写入一块磁盘的同时,会在另一块闲置的磁盘上生成镜像文件,在不影响性能情况下最大限度的保证系统的可靠性和可修复性上,只要系统中任何一对镜像盘中至少有一块磁盘可以使用,甚至可以在一半数量的硬盘出现问题时系统都可以正常运行,当一块硬盘失效时,系统会忽略该硬盘,转而使用剩余的镜像盘读写数据,具备很好的磁盘冗余能力。虽然这样对数据来讲绝对安全,但是成本也会明显增加,磁盘利用率为50%,另外,出现硬盘故障的RAID系统不再可靠,应当及时的更换损坏的硬盘,否则剩余的镜像盘也出现问题,那么整个系统就会崩溃。


        3)、RAID 5

                分布式奇偶校验的独立磁盘结构,它的奇偶校验码存在于所有磁盘上,其中的p0代表第0带区的奇偶校验值,其它的意思也相同。RAID5的读出效率很高写入效率一般,块式的集体访问效率不错。因为奇偶校验码在不同的磁盘上,所以提高了可靠性。但是它对数据传输的并行性解决不好,而且控制器的设计也相当困难。


3、实验环境:

            配置和管理RAID需要安装软件包:mdadm


4、RAID 1 的实现过程(由于磁盘大小不同,同步时以最小的磁盘大小为基准同步

        1)、安装软件包

yum --disablerepo=\* --enablerepo=c6-media install mdadm -y

    2)、创建RAID 1

[root@fcy ~]# mdadm -Cv /dev/md0 -l 1 -n 2 /dev/sdb /dev/sdc
mdadm: Note: this array has metadata at the start and
    may not be suitable as a boot device.  If you plan to
    store '/boot' on this device please ensure that
    your boot-loader understands md/v1.x metadata, or use
    --metadata=0.90
mdadm: size set to 5238720K
mdadm: largest drive (/dev/sdb) exceeds size (5238720K) by more than 1%
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
          参数详解:
            -C   创建RAID      -v    显示详细信息     -l    指定RAID的level    -n 指定RAID的设备数量
         3)、查看md的状态

[root@fcy ~]# cat /proc/mdstat 

Personalities : [raid1]                       #RAID等级

md0 : active raid1 sdc[1] sdb[0]              #RAID中的设备

      5238720 blocks super 1.2 [2/2] [UU]     #状态

      

unused devices:

    

    4)、模拟磁盘损坏并查看

[root@fcy ~]# mdadm /dev/md0 -f /dev/sdb       #-f指定坏掉的磁盘
mdadm: set /dev/sdb faulty in /dev/md0
[root@fcy ~]# cat /proc/mdstat 
Personalities : [raid1] 
md0 : active raid1 sdc[1] sdb[0](F)            #显示sdb为损坏状态
      5238720 blocks super 1.2 [2/1] [_U]
      
unused devices: 


    5)、为RAID设备增加新成员

[root@fcy ~]# mdadm /dev/md0 -a /dev/sdd              #-a添加一块磁盘进RAID
mdadm: added /dev/sdd
[root@fcy ~]# cat /proc/mdstat 
Personalities : [raid1] 
md0 : active raid1 sdd[2] sdc[1] sdb[0](F)
      5238720 blocks super 1.2 [2/1] [_U]
      [==>..................]  recovery = 13.8% (725056/5238720) finish=0.6min speed=120842K/sec                                       
                                                       #显示为同步状态
unused devices: 

    同步完成后

[root@fcy ~]# cat /proc/mdstat 
Personalities : [raid1] 
md0 : active raid1 sdd[2] sdc[1] sdb[0](F)
      5238720 blocks super 1.2 [2/2] [UU]
      
unused devices: 

    移除坏掉的设备

[root@fcy ~]# mdadm /dev/md0 -r /dev/sdb
mdadm: hot removed /dev/sdb from /dev/md0
[root@fcy ~]# cat /proc/mdstat 
Personalities : [raid1] 
md0 : active raid1 sdd[2] sdc[1]
      5238720 blocks super 1.2 [2/2] [UU]
      
unused devices: 

        

    扫描并显示详细的RAID信息

[root@fcy ~]# mdadm --detail --scan
ARRAY /dev/md0 metadata=1.2 name=fcy.com.cn:0 UUID=e2e0ce5c:b5cc1ba0:80380a3b:f1d4fe67

    

    创建RAID的配置文件(方便快速启动RAID)

[root@fcy ~]# mdadm --detail --scan  >/etc/mdadm.conf

   

     停止正在运行的RAID

[root@fcy ~]# mdadm -S /dev/md0            #-S停止RAID
mdadm: stopped /dev/md0
[root@fcy ~]# cat /proc/mdstat 
Personalities : [raid1] 
unused devices: 

    

    启动RAID(已经创建过配置文件)

[root@fcy ~]# mdadm -A /dev/md0                #-A 表示重新装配RAID
mdadm: /dev/md0 has been started with 2 drives.
[root@fcy ~]# cat /proc/mdstat 
Personalities : [raid1] 
md0 : active raid1 sdd[2] sdc[1]
      5238720 blocks super 1.2 [2/2] [UU]
      
unused devices: 


    6)、为RAID 1添加s份磁盘

[root@fcy ~]# mdpare备adm -Cv /dev/md1 -l 1 -n 2 /dev/sdb /dev/sdc -x 1 /dev/sde 

                                            #-x添加备份磁盘
mdadm: /dev/sdb appears to be part of a raid array:
    level=raid1 devices=2 ctime=Wed Jul 15 21:06:56 2015
mdadm: Note: this array has metadata at the start and
    may not be suitable as a boot device.  If you plan to
    store '/boot' on this device please ensure that
    your boot-loader understands md/v1.x metadata, or use
    --metadata=0.90
mdadm: /dev/sdc appears to be part of a raid array:
    level=raid1 devices=2 ctime=Wed Jul 15 21:06:56 2015
mdadm: size set to 5238720K
mdadm: largest drive (/dev/sde) exceeds size (5238720K) by more than 1%
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md1 started.

    

[root@fcy ~]# cat /proc/mdstat 
Personalities : [raid1] 
md1 : active raid1 sde[2](S) sdc[1] sdb[0]           #sde为备份的spare磁盘
      5238720 blocks super 1.2 [2/2] [UU]
      
md0 : active raid1 sdd[2]
      5238720 blocks super 1.2 [2/1] [U_]
      
unused devices: 

    当设备在无人管理的时候,如果RAID 1中的某一块磁盘坏掉,则spare磁盘就自动接替


5、RAID 5的实现过程

        基本过程与RAID 1相似

    1)、创建RAID 5

[root@fcy ~]# mdadm -Cv /dev/md2 -l 5 -n 3 /dev/sdb /dev/sdc /dev/sdd -x 1 /dev/sde
mdadm: layout defaults to left-symmetric
mdadm: layout defaults to left-symmetric
mdadm: chunk size defaults to 512K
mdadm: size set to 5238272K
mdadm: largest drive (/dev/sde) exceeds size (5238272K) by more than 1%
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md2 started.

    2)、查看RAID 5

[root@fcy ~]# cat /proc/mdstat 
Personalities : [raid1] [raid6] [raid5] [raid4] 
md2 : active raid5 sdd[4] sde[3](S) sdc[1] sdb[0]
      10476544 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [UU_]
      [===>.................]  recovery = 17.3% (907136/5238272) finish=0.7min speed=90713K/sec
                          #正在同步
unused devices: 
[root@fcy ~]# cat /proc/mdstat 
Personalities : [raid1] [raid6] [raid5] [raid4] 
md2 : active raid5 sdd[4] sde[3](S) sdc[1] sdb[0]
      10476544 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]
      
unused devices: 


6、其他

    其他常用的RAID还有RAID 10 ,RAID 01等