RAID

作者: 素瑾汐 | 来源:发表于2017-06-20 15:31 被阅读0次

    RAID

    Redundant Arrays of Inexpensive( Independent) Disks
    多个磁盘合成一个“阵列”来提供更好的性能、冗余,或 者两者都提供

    RAID功能

    提高IO能力:

        磁盘并行读写 
    

    提高耐用性;

       磁盘冗余来实现
    

    级别:多块磁盘组织在一起的工作方式有所不同

    RAID实现的方式

    外接式磁盘阵列:通过扩展卡提供适配能力
    内接式RAID:主板集成RAID控制器(安装OS前在BIOS里配置)
    软件RAID:通过OS实现

    RAID级别

    RAID-0:

    条带卷,strip
    读、写性能提升;
    可用空间:N*min(S1,S2,...)
    无容错能力
    最少磁盘数:2, 2
    

    RAID-1:

    镜像卷,mirror
    读性能提升、写性能略有下降;
    可用空间:1*min(S1,S2,...) 有冗余能力
    最少磁盘数:2, 2N
    

    RAID-4:

    多块数据盘异或运算值,存于专用校验盘
    

    RAID-5:

    读、写性能提升
    可用空间:(N-1)*min(S1,S2,...)
    有容错能力:允许最多1块磁盘损坏 最少磁盘数:3, 3+
    

    RAID-6:

    读、写性能提升
    可用空间:(N-2)*min(S1,S2,...)
    有容错能力:允许最多2块磁盘损坏 最少磁盘数:4, 4+
    

    RAID-10:

    读、写性能提升
    可用空间:N*min(S1,S2,...)/2
    有容错能力:每组镜像最多只能坏一块 最少磁盘数:4,4+
    

    RAID-01、RAID-50

    RAID7:

    可以理解为一个独立存储计算机,自身带有操作系统和管理工具,可以独立运行,理论上性能最高的RAID模式
    

    JBOD:Just a Bunch Of Disks

    功能:将多块磁盘的空间合并一个大的连续空间使用 
    可用空间:sum(S1,S2,...)
    

    常用级别:RAID-0, RAID-1, RAID-5, RAID-10, RAID-50, JBOD

    软件RAID

    mdadm:为软RAID提供管理界面
    为空余磁盘添加冗余
    结合内核中的md(multi devices)
    RAID设备可命名为/dev/md0、/dev/md1、/dev/md2、 /dev/md3等

    软件RAID的实现

    mdadm:模式化的工具
    命令的语法格式:mdadm [mode] <raiddevice> [options] <component-devices>
    支持的RAID级别:LINEAR, RAID0, RAID1, RAID4, RAID5, RAID6, RAID10

    [made]模式:

    创建:-C
    装配: -A
    监控: -F
    管理:-f, -r, -a
    

    <raiddevice>: /dev/md#
    <component-devices>: 任意块设备

    -C: 创建模式

    -n #: 使用#个块设备来创建此RAID
    -l #:指明要创建的RAID的级别
    -a {yes|no}:自动创建目标RAID设备的设备文件
    -c CHUNK_SIZE: 指明块大小
    -x #: 指明空闲盘的个数
    

    -D:显示raid的详细信息;

    mdadm -D /dev/md#
    

    管理模式:

    -f: 标记指定磁盘为损坏 
    -a: 添加磁盘
    -r: 移除磁盘
    

    观察md的状态:

    cat /proc/mdstat
    

    软件RAID配置示例

    使用mdadm创建并定义RAID设备:
    #mdadm -C /dev/md0 -a yes -l 5 -n 3 -x 1 /dev/sdb1
    /dev/sdc1 /dev/sdd1 /dev/sde1
    用文件系统对每个RAID设备进行格式化:
    #mke2fs -j /dev/md0
    测试RAID设备
    使用mdadm检查RAID设备的状况:
    #mdadm --detail|D /dev/md0
    增加新的成员:
    #mdadm –G /dev/md0 –n4 -a /dev/sdf1

    软件RAID测试和修复

    模拟磁盘故障:
    mdadm /dev/md0 -f /dev/sda1
    移除磁盘:
    mdadm /dev/md0 –r /dev/sda1
    从软件RAID磁盘修复磁盘故障
    • 替换出故障的磁盘然后开机
    • 在备用驱动器上重建分区
    • mdadm /dev/md0 -a /dev/sda1
    mdadm、/proc/mdstat及系统日志信息

    软件RAID管理

    生成配置文件:mdadm –D –s >> /etc/mdadm.conf
    停止设备:mdadm –S /dev/md0
    激活设备:mdadm –A –s /dev/md0 激活
    强制启动:mdadm –R /dev/md0
    删除raid信息:mdadm --zero-superblock /dev/sdb1

    实验:创建RAID5

    实验环境

    在centos7.3上,添加四块硬盘,四块硬盘分别提供10G的空间来创建可用空间为20G的RAID5设备(三块活动空间,一块备用空间),文件系统为ext4,开机自动挂载/mnt/md0目录

    实验步骤:

    1、添加四块硬盘(b,c,d,e),四块硬盘上分别划分一个10G的分区,配置如下图


    参照/dev/sdb分别配置/dev/sdc,/dev/sdd,/dev/sde

    2、配置RAID5
    mdadm -C /dev/md0 -a yes -l 5 -n 3 -x1 /dev/sd{b1,c1,d1,e1}



    3、查看raid状态
    mdadm -D /dev/md0

    cat /proc/mdstat



    4、生成raid配置文件
    mdadm -Ds /dev/md0 > /etc/mdadm.conf

    5、创建文件系统
    mkfs.ext4 /dev/md0

    6、建立挂载
    mkdir /mnt/md0

    mount /dev/md0 /mnt/md0



    7、编写/etc/fstab
    vim /etc/fstab
    UUID
    用VIM编辑文件/etc/fstab,添加如上图内容
    实验结果测试:
    写速度:
    dd if=/dev/zero of=/mnt/md0/c bs=1M count=1024
    dd if=/dev/zero of=c bs=1M count=1024
    读速度:
    dd if=/mnt/md0/c of=/dev/zero bs=1M count=1024
    dd if=c of=/dev/zero bs=1M count=1024

    由上可见使用RAID5的读写速度明显提升

    实验收尾工作

    删除RAID设备
    1、取消挂载
    umount /dev/md0
    2、停止RAID设备
    mdadm -S /dev/md0
    3、删除配置文件
    rm /etc/mdadm.conf
    4、VIM编辑/etc/fstab去掉mdadm配置选项
    5、清除RAID设备上的RAID元数据
    mdadm --zero-superblock /dev/sdb1
    mdadm --zero-superblock /dev/sdc1
    mdadm --zero-superblock /dev/sdd1
    mdadm --zero-superblock /dev/sde1
    6、重启检测系统中是否还存在RAID相关数据,若还存在,以上步骤再执行一遍

    相关文章

      网友评论

          本文标题:RAID

          本文链接:https://www.haomeiwen.com/subject/jhwtqxtx.html