linux:RAID(磁盘阵列)笔记

RAID磁盘阵列简述:
    RAID0(条带): 把多个同样大小的磁盘串联起来当做一个磁盘来用。
        优点:读写速度快。
        缺点:数据容易丢失(没有容错能力)。
        磁盘使用率:n*disk
        例如:串联了5块磁盘,存入100G数据。5个磁盘同时写入数据,即每块磁盘分别写入100/5G大小数据。
    RAID1(镜像):把数据同时写入多个磁盘(至少两块硬盘),相当于备份。
        优点:保证线上业务不终止;数据不容易丢失;读取性能提升(等同于RAID0)。
        缺点:写入性能并没有提高。
        磁盘使用率:1*disk
    RAID4:至少3块磁盘,第一个和第二个存盘存储不同的数据块,第三个磁盘存储校验码。
        三个磁盘中任何一个磁盘坏掉后都可以找回数据,所以最多允许坏一块磁盘。
        优点:提供了一定的容错能力。
        缺点:只能坏一块盘。
        磁盘使用率:(n-1)*disk
    RAID5:相当于RAID4的改进。只是校验码在磁盘之间轮流存放。
    RAID6:相当于RAID5的升级版,至少四块磁盘。计算两次校验码。
    
    RAID10:RAID0和RAID1的组合。组合RAID0在组合RAID1。
    优点:写入速速快。 容错能力强。
    磁盘利用率:(n/2)*disk 即1/2
    
    注:
    RAID把数据分块存储。
    RAID0和RAID1至少需要两块硬盘;
    RAID4和RAID5至少需要三块硬盘;
    RAID6至少需要四块磁盘。
    
RAID的实现方式:
    一、软件实现。
        由内核模块(multi disk即md)及软件驱动实现;
        对应/dev/md*开头的文件;
        相关命令mdadm;
        可以是任意的块设备,比如说分区。
        
        创建RAID0(分区模拟硬盘):
        1、分出至少两个一样大小的分区并修改分区类型为“Linux raid auto”。注意:不要格式化新分区。
            [root@localhost ~]#fdisk /dev/sdb
            Command (m for help): p
               Device Boot      Start         End      Blocks   Id  System
            /dev/sdb1               1        1305    10482381    5  Extended
            /dev/sdb5               1         262     2104452   83  Linux
            /dev/sdb6             263         524     2104483+  83  Linux
            
            Command (m for help): t
            Partition number (1-6): 5
            Hex code (type L to list codes): fd
            Changed system type of partition 5 to fd (Linux raid autodetect)
            Command (m for help): t
            Partition number (1-6): 6
            Hex code (type L to list codes): fd
            Changed system type of partition 6 to fd (Linux raid autodetect)
            
            Command (m for help): p
               Device Boot      Start         End      Blocks   Id  System
            /dev/sdb1               1        1305    10482381    5  Extended
            /dev/sdb5               1         262     2104452   fd  Linux raid autodetect
            /dev/sdb6             263         524     2104483+  fd  Linux raid autodetect
            
            Command (m for help): w
            [root@localhost ~]# partprobe /dev/sdb //注意:不要格式化新分区。
        2、创建RAID0
            [root@localhost ~]# mdadm -C /dev/md0 -a yes -l 0 -n 2 /dev/sdb{5,6}
            mdadm: /dev/sdb5 appears to contain an ext2fs file system
                size=4200932K  mtime=Thu Jan  1 08:00:00 1970
            Continue creating array? 
            Continue creating array? (y/n) y
            mdadm: Defaulting to version 1.2 metadata
            mdadm: array /dev/md0 started.
            [root@localhost ~]# ls /dev/| grep md //新建的设备文件名md开头
            md
            md0
        3、查看RAID信息
            [root@localhost ~]# cat /proc/mdstat 
            Personalities : [raid0] 
            md0 : active raid0 sdb6[1] sdb5[0]
                  4206592 blocks super 1.2 512k chunks
            unused devices:
        4、格式化RAID分区,注意是格式化新建的md0设备,不是硬盘分区
            [root@localhost ~]# mke2fs -j /dev/md0
            mke2fs 1.41.12 (17-May-2010)
            文件系统标签=
            操作系统:Linux
            块大小=4096 (log=2)
            分块大小=4096 (log=2)
            Stride=128 blocks, Stripe width=256 blocks
            262944 inodes, 1051648 blocks
            52582 blocks (5.00%) reserved for the super user
            第一个数据块=0
            Maximum filesystem blocks=1077936128
            33 block groups
            32768 blocks per group, 32768 fragments per group
            7968 inodes per group
            Superblock backups stored on blocks: 
                32768, 98304, 163840, 229376, 294912, 819200, 884736


            正在写入inode表: 完成                            
            Creating journal (32768 blocks): 
            完成
            Writing superblocks and filesystem accounting information: 
            完成


            This filesystem will be automatically checked every 38 mounts or
            180 days, whichever comes first.  Use tune2fs -c or -i to override.
        5、挂载使用
            [root@localhost ~]# mount /dev/md0 /mnt/
            [root@localhost ~]# ls /mnt/
            lost+found
        /////////////////至此RAID0安装完成////////////////
        
        6、卸载RAID0分区
            [root@localhost ~]# umount /dev/md0
        
        7、查看RAID设备详细信息
            [root@localhost ~]# mdadm -D /dev/md0 或 mdadm -D /dev/md*
        
        8、标记/模拟RAID中已损坏硬盘/分区
            [root@localhost ~]# mdadm /dev/md1 -f /dev/sd7
            mdadm: set /dev/sdb7 faulty in /dev/md1
            
        9 添加RAID设备中硬盘/分区
            [root@localhost ~]# mdadm /dev/md1 -a /dev/sd9
            
        10、删除RAID设备中硬盘/分区
            [root@localhost ~]# mdadm /dev/md1 -r /dev/sd9
            
        11、停止RAID设备
            [root@localhost ~]# mdadm -S /dev/md1 //停止
        12、停止后重新装配RAID设备
            [root@localhost ~]# mdadm -A /dev/md1 /dev/sdb{5,6}
        13、RAID设备设置存入配置文件
            [root@localhost ~]# mdadm -D --scan >> /etc/mdadm.conf
            
        
    二、硬件实现。
    

转载于:https://www.cnblogs.com/liuensong/p/10140359.html

你可能感兴趣的:(linux:RAID(磁盘阵列)笔记)