Linux学习笔记之RAID笔记

时间:2021-08-22 15:36:07
RAID:
    Redundant Arrays of Inexpensive Disks
                        Independent
 
    Berkeley: A case for Redundent Arrays of Inexpensive Disks RAID
 
        提高IO能力:
            磁盘并行读写;
        提高耐用性;
            磁盘冗余来实现
 
        级别:多块磁盘组织在一起的工作方式有所不同;
        RAID实现的方式:
            外接式磁盘阵列:通过扩展卡提供适配能力
            内接式RAID:主板集成RAID控制器
            Software RAID:
 
    级别:level
        RAID-0:0, 条带卷,strip;
        RAID-1: 1, 镜像卷,mirror;
        RAID-2
        ..
        RAID-5:
        RAID-6
        RAID10
        RAID01
 
        RAID-0: 以条带形式将数据均匀分布在阵列的各个磁盘上;
            读、写性能提升;
            可用空间:N*min(S1,S2,...)
            无容错能力
            最少磁盘数:2, 2+
            适用领域:视频生成和编辑、图形编辑,其它需要大的传输带宽的操作;
 
        RAID-1:以镜像为冗余方式,对虚拟磁盘上的数据做多份拷贝,放在成员磁盘上
            读性能提升、写性能略有下降;
            可用空间:1*min(S1,S2,...)
            有冗余能力
            最少磁盘数:2, 2+
            适用领域:财务、金融等高可用、高安全的数据存储环境
 
        RAID-4:数据交叉存储在2块硬盘中,再由第3块硬盘存储数据的校验码;
            1101, 0110, 1011
 
        RAID-5:采用独立存取的阵列方式,校验信息被均匀的分散到阵列的各个磁盘上;
            读、写性能提升
            可用空间:(N-1)*min(S1,S2,...)
            有容错能力:1块磁盘
            最少磁盘数:3, 3+
            适用领域:文件服务器、email服务器、web服务器等环境,数据库应用
        RAID-6:用2块盘做校验盘,校验码存两次;
            读、写性能提升
            可用空间:(N-2)*min(S1,S2,...)
            有容错能力:2块磁盘
            最少磁盘数:4, 4+
 
         
        混合类型
            RAID-10:结合RAID1和RAID0,先镜像,再条带化;
                读、写性能提升
                可用空间:N*min(S1,S2,...)/2
                有容错能力:每组镜像最多只能坏一块;
                磁盘数:2n(n>=2)
                优点:读性能很高,写性能比较好,数据安全性好,允许同时有N个磁盘失效;
                缺点:利用率只有50%,开销大;
                适用领域:多用于要求高可用性和高安全性的数据库应用;
            RAID-01:先分成两组做成RAID-0,再把组成的RAID-0做成RAID-1;不符合常用方法,每一组有一块坏的硬盘可能性大;
 
            RAID-50、RAID7
                适用领域:大型数据库服务器、应用服务器、文件服务器等应用;
            JBOD:Just a Bunch Of Disks
                功能:将多块磁盘的空间合并一个大的连续空间使用;
                可用空间:sum(S1+S2+,...)
 
        常用级别:
                RAID-0 性能最好
                RAID-1 冗余度最高,开销高
                RAID-5
                RAID-10 开销高
                RAID-50
                JBOD
 
        实现方式:
            硬件实现方式
            软件实现方式
 
            CentOS 6上的软件RAID的实现:
                结合内核中的md(multi devices)
 
                mdadm:模式化的工具
                    命令的语法格式:mdadm [mode] <raiddevice> [options] <component-devices>
                        支持的RAID级别:LINEAR, RAID0, RAID1, RAID4, RAID5, RAID6, RAID10;
 
                    模式:
                        创建:-C
                        装配: -A
                        监控: -F
                        管理:-f, -r, -a
 
                    <raiddevice>: /dev/md#
                    <component-devices>: 任意块设备
 
 
                    -C: 创建模式
                        -n #: 使用#个块设备来创建此RAID;
                        -l #:指明要创建的RAID的级别;
                        -a {yes|no}:自动创建目标RAID设备的设备文件;
                        -c CHUNK_SIZE: 指明块大小;(默认512k)
                        -x #: 指明空闲盘的个数;
 
                        例如:创建一个#G可用空间的RAID5;
                            [root@study ~]# mdadm -C /dev/md0 -n 3 -x 1 -a yes -l 5 /dev/sdb{5,6,7,8}
                            [root@study ~]# mke2fs -t ext4 /dev/md0
                            [root@study /]# mount /dev/md0 /mydata
                            [root@study /]# mdadm -D /dev/md0
 
                    -D:显示raid的详细信息;
                        mdadm -D /dev/md#
 
                    管理模式:
                        -f: 标记指定磁盘为损坏;
                        -a: 添加磁盘
                        -r: 移除磁盘
 
                    观察md的状态:
                        cat /proc/mdstat
 
                    -S: 停止md设备
                        mdadm -S /dev/md#
 
                watch命令:
                    -n #: 刷新间隔,单位是秒;
 
                    watch -n# 'COMMAND'
 
        练习1:创建一个可用空间为10G的RAID1设备,要求其chunk大小为128k,文件系统为ext4,有一个空闲盘,开机可自动挂载至/backup目录;
        练习2:创建一个可用空间为10G的RAID10设备,要求其chunk大小为256k,文件系统为ext4,开机可自动挂载至/mydata目录;