HOME 生活记录运维/编程
作者/来源:yixinu.com
栏目:运维/编程
日期:2012-04-11 18:09:59

1、概述

    RAID是“Redundant Array of Independent Disk”的缩写,中文意思是独立冗余磁盘阵列

2、RAID 级别

    RAID 0    

    将多个磁盘合并成一个大的磁盘,不具有冗余,并行I/O,速度最快。RAID 0亦称为带区集。它是将多个磁盘并列起来,成为一个大磁盘。在存放数据时,其将数据按磁盘的个数来进行分段,然后同时将这些数据写进这些盘中,所以在所有的级别中,RAID 0的速度是最快的。但是RAID 0没有冗余功能,如果一个磁盘(物理)损坏,则所有的数据都会丢失

130px-RAID_0.svg


    理论上越多的磁盘效能就等于“单一磁盘效能”ד磁盘数”,但实际上受限于总线I/O瓶颈及其它因素的影响,RAID效能会随边际递减,也就是说,假设一个磁盘的效能是50MB每秒,两个磁盘的RAID 0效能约96MB每秒,三个磁盘的RAID 0也许是130MB每秒而不是150MB每秒,所以两个磁盘的RAID 0最能明显感受到效能的提升

    size=2*min(s1,s2...)



    RAID 1


    两组以上的N个磁盘相互作镜像,在一些多线程操作系统中能有很好的读取速度,另外写入速度有微小的降低。除非拥有相同资料的主磁盘与镜像同时损坏,否则只要一个磁盘正常即可维持运作,可靠性最高。RAID 1就是镜像。其原理为在主硬盘上存放数据的同时也在镜像硬盘上写一样的数据。当主硬盘(物理)损坏时,镜像硬盘则代替主硬盘的工作。因为有镜像硬盘做数据备份,所以RAID 1的数据安全性在所有的RAID级别上来说是最好的。但无论用多少磁盘做RAID 1,仅算一个磁盘的容量,是所有RAID上磁盘利用率最低的一个级别


130px-RAID_1.svg

size=min(s1,s2..)




    RAID 5


    RAID Level 5 是一种存储性能、数据安全和存储成本兼顾的存储解决方案,RAID 5 至少需要三颗硬盘, RAID 5不对存储的数据进行备份,而是把数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上。当RAID5的一个磁盘数据发生损坏后,利用剩下的数据和相应的奇偶校验信息去恢复被损坏的数据。 RAID 5可以理解为是RAID 0和RAID 1的折衷方案。RAID 5可以为系统提供数据安全保障,RAID 5具有和RAID 0相近似的数据读取速度,只是多了一个奇偶校验信息,写入数据的速度相当的慢,若使用“回写快取”可以让效能改善不少。同时由于多个数据对应一个奇偶校验信息,RAID 5的磁盘空间利用率要比RAID 1高,存储成本相对较便宜。

    


220px-RAID_5.svg

    size=(n-1)*(s1,s2...sn)



维基百科

http://zh.wikipedia.org/wiki/RAID



创建磁盘阵列    mdadm

    1、创建    mdadm -C

[root@bogon ~]# mdadm -C /dev/md01 -l 5 -n 3 -x 1 /dev/sdb{5..8}
mdadm: /dev/sdb5 appears to contain an ext2fs file system
    size=1048576K  mtime=Thu Apr 12 02:55:16 2012
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md01 started.

    查看磁盘阵列状态    cat /proc/mdstat


[root@bogon ~]# watch -n .5 cat /proc/mdstat 
Personalities : [raid6] [raid5] [raid4]
md1 : active raid5 sdb7[4] sdb8[3](S) sdb6[1] sdb5[0]
      1637376 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]

unused devices: <none>
    


    查看阵列设备的详细信息  mdadm -D [设备]


[root@bogon ~]# mdadm -D /dev/md1
/dev/md1:
        Version : 1.2
  Creation Time : Thu Apr 12 03:19:42 2012
     Raid Level : raid5
     Array Size : 1637376 (1599.27 MiB 1676.67 MB)
  Used Dev Size : 818688 (799.63 MiB 838.34 MB)
   Raid Devices : 3
  Total Devices : 4
    Persistence : Superblock is persistent

    Update Time : Thu Apr 12 03:20:47 2012
          State : clean
 Active Devices : 3
Working Devices : 4
 Failed Devices : 0
  Spare Devices : 1

         Layout : left-symmetric
     Chunk Size : 512K

           Name : bogon:01  (local to host bogon)
           UUID : 2a8b963a:cf24b369:6fec2f1b:bd28beaa
         Events : 18

    Number   Major   Minor   RaidDevice State
       0       8       21        0      active sync   /dev/sdb5
       1       8       22        1      active sync   /dev/sdb6
       4       8       23        2      active sync   /dev/sdb7

       3       8       24        -      spare   /dev/sdb8

    查看输入输出设备状态    iostata


[root@bogon ~]# iostat /dev/sdb{5..8} 2
Linux 2.6.35.6-45.fc14.i686 (bogon)     04/12/2012      _i686_  (1 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.58    0.00    7.44    2.34    0.00   88.63

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sdb5            144.59      1271.23         0.04    1639902         48
sdb6            145.18      1271.10         0.04    1639738         48
sdb7              4.58         1.79      1269.31       2306    1637424
sdb8              0.22         1.78         0.03       2298         44

    2、格式化、挂载


[root@bogon ~]# mkfs.ext4 /dev/md1

[root@bogon ~]# mount /dev/md1 /mnt/mydata



example:       模拟硬盘损坏、更换磁盘

    1、设备阵列中的一个磁盘为坏的状态


[root@bogon mydata]# mdadm /dev/md1 -f /dev/sdb6
mdadm: set /dev/sdb6 faulty in /dev/md1
     此时的磁盘阵列状态,备用盘自动替换sdb6,sdb6变成fail状态
[root@bogon ~]# mdadm -D /dev/md1
/dev/md1:
……
    Update Time : Thu Apr 12 03:56:16 2012
          State : clean, degraded, recovering  ####
 Active Devices : 2
Working Devices : 3
 Failed Devices : 1
  Spare Devices : 1

         Layout : left-symmetric
     Chunk Size : 512K

 Rebuild Status : 12% complete

           Name : bogon:01  (local to host bogon)
           UUID : 2a8b963a:cf24b369:6fec2f1b:bd28beaa
         Events : 21

    Number   Major   Minor   RaidDevice State
       0       8       21        0      active sync   /dev/sdb5
       3       8       24        1      spare rebuilding   /dev/sdb8    ####
       4       8       23        2      active sync   /dev/sdb7

       1       8       22        -      faulty spare   /dev/sdb6   ####
md1 : active raid5 sdb7[4] sdb8[3] sdb6[1](F) sdb5[0]
      1637376 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [U_U]
      [===========>.........]  recovery = 59.3% (485888/818688) finish=0.4min speed=13692K/sec

    2、移除坏的磁盘,从md1中移除sdb6


[root@bogon ~]# mdadm /dev/md1 -r /dev/sdb6   
mdadm: hot removed /dev/sdb6 from /dev/md1
[root@bogon ~]# mdadm -D /dev/md1
……
   Update Time : Thu Apr 12 06:35:14 2012
          State : clean
 Active Devices : 3
Working Devices : 3
 Failed Devices : 0
  Spare Devices : 0
……

    Number   Major   Minor   RaidDevice State
       0       8       21        0      active sync   /dev/sdb5
       3       8       24        1      active sync   /dev/sdb8
       4       8       23        2      active sync   /dev/sdb7


    3、再将好的磁盘添加到md1阵列中,成为备用盘


[root@bogon ~]# mdadm /dev/md1 -a /dev/sdb6
……

    Number   Major   Minor   RaidDevice State
       0       8       21        0      active sync   /dev/sdb5
       3       8       24        1      active sync   /dev/sdb8
       4       8       23        2      active sync   /dev/sdb7

       1       8       22        -      spare   /dev/sdb6




停止软磁盘阵列



[root@bogon ~]# umount /mnt/mydata
[root@bogon ~]# mdadm --stop /dev/md1
mdadm: stopped /dev/md1
[root@bogon ~]# cat /proc/mdstat 
Personalities : [raid6] [raid5] [raid4] 
unused devices: <none>
[root@bogon ~]# 



分享到:

Copyright © 2013-2014 yixinu.com 湘ICP备14004402号

QQ:316686606  Email: 316686606@qq.com