在centos6.9上实现软RAID

什么是RAID?

    RAID,全称Redundant Arrays of Inexpensive(Independent)Disks。简单翻译叫磁盘阵列。
    通俗一点讲就是多个磁盘合成一个“阵列”来提供更好的性能、冗余,或者两者都提供。
    目的有两个:一个是提高磁盘的IO能力,提高耐用性。

实现方式有3种:
    1、外接式磁盘阵列:通过扩展卡提供适配能力
    2、内接式RAID:主板集成RAID控制器—安装OS前在BIOS里配置
    3、软件RAID:通过OS实现
    实际生产场景中大部分是使用硬RAID,在教室试验环境我们用软RAID

    常见的RAID级别

在centos6.9上实现软RAID_RAID

软RAID管理工具

    mdadm 
        -C:创建模式
        -n:定义创建RAID设备个数
        -l:指明要创建的RAID的级别
        -c CHUNK_SIZE: 指明块大小
        -x : 指明空闲盘的个数
        -A:装配
       -D:显示RAID的详细信息
        -F :监控
        -f:标记指定磁盘为损坏
        -r:移除磁盘
        -a:添加磁盘
    观察md的状态:cat /proc/mdstat

RAID前的配置

    1、检查mdadm,我这里已经安装了mdadm的rpm包。如果没安装,使用yum -y install mdadm进行安装。

在centos6.9上实现软RAID_RAID_02

   2、磁盘准备,想要RAID必须使用相同容量的磁盘或者分区,我这里先添加了7块5G的磁盘

创建RAID0

    1、创建RAID0最少只需要2块硬盘,我们这里选择/dev/sdb和/dev/sdc,首先新建分区,更改分区ID为fd  Linux raid auto。分完区需要partx -a /dev/sdb 同步一下。

在centos6.9上实现软RAID_RAID_03

2、创建RAID-0
                         -C    /dev/md0    —–创建
                         -a    yes               —–同意一次性创建
                         -l    0                   —–指定创建的级别
                         -n    2                  —–指定磁盘数目

在centos6.9上实现软RAID_RAID_04

 3、两条查看状态的命令

在centos6.9上实现软RAID_RAID_05

    4、创建配置文件
                mdadm -Ds /dev/md0 > /etc/mdadm.conf
    5、格式化磁盘、挂载
                 mkfs.ext4 /dev/md0
                 mount /dev/md0 /mnt/raid0、
                 可以看到/dev/md0容量大小是9.7G,实际为10G,允许有些许误差。

在centos6.9上实现软RAID_RAID_06

删除raid-0

    [root@centos6 ~]#umount /mnt/raid0                                        <==取消挂载
    [root@centos6 ~]#mdadm -S /dev/md0                                      <==停止设备
    mdadm: stopped /dev/md0
    [root@centos6 ~]#mdadm –zero-superblock /dev/sdb1            <==删除raid信息
    [root@centos6 ~]#mdadm –zero-superblock /dev/sdc1


RAID-1

    RAID1的步骤和方式与1相同(配置省略),但是由于RAID0并没有容错能力,其中一块磁盘损坏,阵列就瘫痪。RAID1有相对的冗余能力,但是成本相对较高。
    通过下图看到/dev/md1的容量为5.2G,和RAID0相比少了一半。

在centos6.9上实现软RAID_RAID_07

RAID-5

    1、创建raid5
    mdadm -C /dev/md5 -a yes -n 3 -l 5 -x 1 /dev/sd[b,c,d,e]1        <==-x1 表示留一块备用
    mdadm -Ds /dev/md5 > /etc/mdadm.conf
    mkdir /mnt/raid5
    mount /dev/md5 /mnt/raid5
    [root@centos6 ~]#df -h
    Filesystem      Size  Used Avail Use% Mounted on
    /dev/sda2        48G  4.9G   41G  11% /
    tmpfs           491M   76K  491M   1% /dev/shm
    /dev/sda3        39G   48M   37G   1% /app
    /dev/sda1       969M   35M  885M   4% /boot
    /dev/sr0        3.7G  3.7G     0 100% /media/CentOS_6.9_Final
    /dev/md5        9.7G   23M  9.2G   1% /mnt/raid5                    <==raid5的容量为(3-1)*5G

模拟磁盘损坏

    之前的状态

在centos6.9上实现软RAID_RAID_08

 模拟sdb1损坏
    mdadm /dev/md5 -f /dev/sdb1
    /dev/sdb1损坏后,备用的/dev/sde1会自动补上,我们来看下状态。重启后会丢失。

在centos6.9上实现软RAID_RAID_09

 mdadm /dev/md5 -a /dev/sdb1        <==重新添加进raid,多加的变成备用


  比较一下RAID5上面的写入能力,发现从63.3MB/s提升到317 MB/s,效果明显。

    [root@centos6 ~]#dd if=/dev/zero of=/app/f1 bs=1M count=200
                                    200+0 records in
                                    200+0 records out
                                    209715200 bytes (210 MB) copied, 3.31538 s, 63.3 MB/s
    [root@centos6 ~]#dd if=/dev/zero of=/mnt/raid5/f1 bs=1M count=200
                                   200+0 records in
                                   200+0 records out
                                   209715200 bytes (210 MB) copied, 0.661708 s, 317 MB/s