; Linux基础知识之RAID | Linux运维部落

Linux基础知识之RAID

1、什么是RAID?
    多个磁盘合成一个“阵列”来提供更好的性能、冗余,或者两者都提供。
2、RAID的优点?
    提高IO 能力:
        磁盘并行读写
    提高耐用性:
        磁盘冗余来实现
3、RAID 实现的方式:
    外接式磁盘阵列:通过扩展卡提供适配能力
    内接式RAID :主板集成RAID 控制器
        安装OS 前在BIOS 里配置
    Software RAID:软件实现的RAID
4、RAID级别:多块磁盘组织在一起的工作方式有所不同
    0:条带
        性能提升:读和写
        冗余能力(容错能力):无
        空间利用率:nS
        至少需要2块硬盘
    1:镜像
        性能提升:写性能下降,读性能提升
        冗余能力:有
        空间利用率:1/2
        至少需要2块硬盘
    2-4:现在不做使用
    5:
        性能提升:读 写
        冗余能力:有
        空间利用率:(n-1)/n
        至少需要3块硬盘
    6:
        性能提升:读 写
        冗余能力:有,最多支持两块硬盘同时损坏
        空间利用率:(n-2)/n
        至少需要4块磁盘
    7:
        可以理解为一个独立存储计算机,自身带有操作系统和管理工具,可以独立运行,理论上性能最高的RAID

组合RAID
    10:
        性能提升:读 写
        冗余能力:有
        空间利用率:1/2
        至少需要4块硬盘
    01:
        性能提升:读 写
        冗余能力:有
        空间利用率:1/2
        至少需要4块硬盘
    50:
        性能提升:读 写
        冗余能力:有
        空间利用率:(n-2)/n
        至少需要6块硬盘
    jbod:
        性能提升:无提升
        冗余能力:无
        空间利用率:100%
        至少需要2块硬盘
    常用级别:RAID-0, RAID-1, RAID-5, RAID-10,RAID-50, JBOD
5、利用软件实现RAID
    mdadm:模式化的工具  
    支持的RAID 级别:LINEAR, RAID0, RAID1, RAID4,RAID5, RAID6, RAID10
    语法:mdadm [mode] <raiddevice> [options] <component-devices>
    模式化的命令:
        创建模式
        -C 设备
        专用选项
            -n #: 使用#个块设备来创建此RAID;
            -l #:指明要创建的RAID的级别;
            -a {yes|no}:自动创建目标RAID设备的设备文件;
            -c CHUNK_SIZE: 指明块大小;
            -x #: 指明空闲盘的个数;
        管理模式
            –add(-a)    eg:mdadm /dev/md# -a /dev/sda9      将磁盘sda9添加的md#阵列中,新添加硬盘要与原先的硬盘的储存空间相同
            –remove(-r) eg:madam /dev/md# -r /dev/sda8      移除md#下的sda8磁盘
            –fail(-f)   eg:mdadm /dev/md# –fail /dev/sda7       模拟损坏的md#下的sda7磁盘
        监控模式
            -F
            -D  /dev/md1  显示/dev/md1 的所有的磁盘信息
        增长模式
            -G
        装配模式
            -A  mdadm -A /dev/md# /dev/sda7 /dev/sda9 将sda7和sda9装配到md#下
        停止阵列:
            mdadm -S /dev/md#  停止/dev/md#的磁盘阵列
        观察md的状态:
            cat /proc/mdstat
6.软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
7.软RAID测试和修复
    模拟磁盘故障
        #mdadm /dev/md0 -f /dev/sda1
    移除磁盘
        #mdadm /dev/md0 –r /dev/sda1
    从软件RAID磁盘修复磁盘故障,替换出故障的磁盘然后开机
    在备用驱动器上重建分区
        #mdadm /dev/md0 -a /dev/sda1
        mdadm  /proc/mdstat 及系统日志信息
8、软RAID管理
    生成配置文件:mdadm –D –s >> /etc/mdadm.conf
    停服务:mdadm –S /dev/md0
    激活:mdadm –A –s /dev/md0  激活
    删除raid信息:mdadm –zero-superblock /dev/sdb1
9、RAID实战演练
    (1)创建2G RAID0
    2G  2个1G的 分区
    mdadm -C /dev/md0   创建一个设备
    fdisk /dev/sda     查看一下/dev/sda
    n +1G n +1G 创建两个为sda5 sda6的分区
    t 5 fd  t 6 fd 将这两个分区的格式更改为Linux Raid auto
    w 保存退出
    partprobe /dev/sda 重新读取一下硬盘分区
    cat /proc/partitions 查看所有的Raid
    mdadm -C /dev/md0 -a yes -l 0 -n 2 /dev/sda5 /dev/sda6   创建/dev/md0 自动为其创建文件,创建的级别为0 设备个数为2
    cat /proc/mdstat   查看所有的Raid
    mke2fs -j /dev/md0      格式化md0,不能格式化sda5 sda6
    mount /dev/md0 /mnt 将md0挂载到/mnt
    (2)创建2G RAID1
    因为磁盘的利用率为1/2,要想创建一个2G的RAID1需要创建两个2G的分区
    mdadm -C /dev/md1   创建一个设备
    fdisk /dev/sda     查看一下/dev/sda
    n +2G n +2G 创建两个为sda7 sda8的分区
    t 7 fd  t 8 fd 将这两个分区的格式更改为Linux Raid auto
    w 保存退出
    partprobe /dev/sda 重新读取一下硬盘分区
    cat /proc/partitions 查看所有的Raid
    mdadm -C /dev/md0 -a yes -l 1 -n 2 /dev/sda7 /dev/sda8   创建/dev/md1 自动为其创建文件,创建的级别为0 设备个数为2
    cat /proc/mdstat   查看所有的Raid
    mke2fs -j /dev/md1      格式化md1,不能格式化sda7 sda8
    mount /dev/md1 /mnt 将md1挂载到/mnt
    (3)实现软件raid
    ①将已经存在的或者新建的多块磁盘分区同意调整为 fd  Linux raid auto 模式
        fdisk  /dev/sd#  n  p  +10G  t  fd  w
    磁盘的建议块数,RAID5为例 需要5块磁盘左右
    ②创建RAID设备
        mdadm -C  /dev/md0 -a yes -l 5  -n 4 -x 1 /dev/sd{b,c,d,e,f}
    创建的RAID的设备的文件名为md0,自动创建设备文件(-a yes),创建的级别为RAID5(-l 5),设备的个数为4个(-n 4),创建空闲盘的合数为1个(-x 1),创建的真实的磁盘为/dev/sd{b,c,d,e,f}
    ③查看已经创建的RAID设备是否存在
        mdadm -D /dev/md0
        cat /proc/mdstat
    ④为创建好的RAID设备设定文件类型,以ext4文件系统为例
        mkfs.ext4 /dev/md0
    ⑤将已经创建好的RAID设备,设置开机自动挂载,设置挂载点和挂载类型等
        vim /etc/fstab
        UUID="b92ddd51-c555-4948-b1d5-8563b697a2f1"   /mnt/raid   ext4    defaults     0       0
    ⑥将设备的配置信息,写入到文件中,生成配置文件
        mdadm  -Ds /dev/md0 > /etc/mdadm.conf
    ⑦启动与停止RAID
        mdadm -A /dev/md0 启动RAID
        mdadm -S /dev/md0 停止RAID(注意:停止RAID之前,应该先卸载RAID,mount /dev/md0,之后使用-S卸载,否则会报错)
    ⑧模拟RAID在日常生活中出现的错误
        mdadm /dev/md0 -f /dev/sdf1 模拟损坏
        mdadm /dev/md0 -r /dev/sdf1 删除成员
        mdadm /dev/md0 -a /dev/sdf1 增加
        mdadm -G /dev/md0 -n 6 -a /dev/sdd4 增加成员
    ⑨删除RAID
        umount /mnt/md#  卸载RAID的挂载
        mdadm -S /dev/md0 停止RAID的使用
        rm -f /etc/mdadm.conf 删除RAID配置文件
        vi /etc/fstab    将RAID的默认挂载取消掉
        fdisk /dev/sda   删除新建的RAID分区
        mdadm –zero-superblock /dev/sdd1  将磁盘中的超级块信息取消掉

原创文章,作者:sjsir,如若转载,请注明出处:http://www.178linux.com/42327

评论列表(1条)

  • 马哥教育
    马哥教育 2016-09-01 13:07

    内容总结的很好,可以通过图片来展示各raid级别的工作模式会更直观哦

联系我们

400-080-6560

在线咨询:点击这里给我发消息

邮件:1660809109@qq.com

工作时间:周一至周五,9:30-18:30,节假日同时也值班