RAID介绍及软RAID实现

RAID

RAID:Redundant Arrays of Inexpensive(Independent)Disks
1988年由加利福尼亚大学伯克利分校(University of California-Berkeley)“A Case for Redundant Arrays of Inexpensive Disks”。
多个磁盘合成一个“阵列”来提供更好的性能、冗余,或者两者都提

RAID是硬件,安装操作系统时,有的硬件厂商的硬件可能操作系统不包含驱动,需要单独安装。

内核调用的是md模块

提高IO能力:

    磁盘并行读写

提高耐用性;

    磁盘冗余来实现

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

注意:数据不重要但是,设备损坏有可能引发业务终止。

RAID实现的方式:

    外接式磁盘阵列:通过扩展卡提供适配能力

    内接式RAID:主板集成RAID控制器
                安装OS前在BIOS里配置
    注意:硬件RAID应该在安装操作系统之前做好规划配置。一般都在BIOS界面配置。

    Software RAID:

RAID级别

    RAID-0:条带卷,strip
    RAID-1: 镜像卷,mirror
    RAID-2 ##2-4不常用
    ..
    RAID-5
    RAID-6
    RAID-10
    RAID-01
    
    RAID-0:     ###多块硬盘逻辑上累加为一块硬盘
    
        读、写性能提升;

        可用空间:N*min(S1,S2,…)
        无容错能力
        最少磁盘数:2, 2
    RAID把文件切割成多块(chunk),把块分散到不同磁盘上去。只能是非关键性的数据。

    
    RAID-1            :##镜像
    
        读性能提升、写性能略有下降;
        可用空间:1*min(S1,S2,…)
        有冗余能力
        最少磁盘数:2, 2N
    
    RAID-4:
    
        多块数据盘异或运算值,存于专用校验盘
        三块以上的硬盘组成RAID,一块存校验码,另外两块存数据。
        将数据分成连组chunk,两组chunk做异或运算。得到的校验码。任何一组数据丢失,都能通过校验码找回。
        允许坏一块硬盘,降级模式运行。
        缺点,校验盘读写压力大。
    
    RAID-5:
    
        读、写性能提升
        可用空间:(N-1)*min(S1,S2,…)
        有容错能力:允许最多1块磁盘损坏
        最少磁盘数:3, 3+
        基于左对称,轮流做校验盘。
        浪费空间小
    
    RAID-6:
    
        读、写性能提升
        可用空间:(N-2)*min(S1,S2,…)
        有容错能力:允许最多2块磁盘损坏
        最少磁盘数:4, 4+
        用两块盘做校验盘
        浪费空间小

RAID混合类型级别
    
    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

    内核有一个模块md通过读取配置文件支持RADI(软RAID)在系统中表象为一个硬件设备在/dev/md#
    内核的库文件[root@yangyouwei ~]# ls /lib/modules/2.6.32-642.el6.x86_64/kernel/drivers/md/
    mdadm:为软RAID提供管理界面,支持任何块设备配置为RAID
    为空余磁盘添加冗余,如果使用分区的话,需要将分区类型改为linux raid类型fd
    结合内核中的md(multi devices)

    mdadm:模式化的工具
    命令的语法格式:mdadm[mode] <raiddevice> [options] <component-devices>
    支持的RAID级别:LINEAR, RAID0, RAID1, RAID4, RAID5, RAID6, RAID10
    模式:
        创建:-C
        装配: -A
        监控: -F
        管理:-f, -r, -a
        增长:-G
    <raiddevice>: /dev/md#
    <component-devices>: 任意块设备

    -C: 创建模式
        -n #: 使用#个块设备来创建此RAID;
        -l #:指明要创建的RAID的级别;
        -a {yes|no}:自动创建目标RAID设备的设备文件;
        -c CHUNK_SIZE: 指明块大小;
        -x #: 指明空闲盘的个数;
    例如:创建一个10G可用空间的RAID5

    -D:显示raid的详细信息;
        mdadm-D /dev/md#
    管理模式:
        -f: 标记指定磁盘为损坏
        -a: 添加磁盘
        -r: 移除磁盘
    观察md的状态:
        cat /proc/mdstat
    停止md设备:
        mdadm-S /dev/md#

软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 –n 4 -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 –Ds /dev/md0 > /etc/mdadm.conf
    停服务:mdadm –S /dev/md0
    激活:mdadm –A –s /dev/md0 激活
    删除raid信息:mdadm –zero-superblock /dev/sdb1

实际操作

1、RAID可在物理设备上直接使用,分区上做RAID就必须指定文件系统类型为linux RAID auto fd类型。

    [root@yangyouwei ~]# lsblk
    NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    sda      8:0    0  200G  0 disk
    ├─sda1   8:1    0  200M  0 part /boot
    ├─sda2   8:2    0 97.7G  0 part /
    ├─sda3   8:3    0 19.5G  0 part /testdir
    ├─sda4   8:4    0    1K  0 part
    └─sda5   8:5    0  200M  0 part [SWAP]
    sdb      8:16   0   20G  0 disk
    sdd      8:48   0   20G  0 disk
    sdc      8:32   0   20G  0 disk
    sde      8:64   0   20G  0 disk
    sdf      8:80   0   20G  0 disk
    sr0     11:0    1  3.7G  0 rom  

2、创建RAID设备

    [root@yangyouwei ~]# mdadm -C /dev/md0 -a yes -l 5 -n 4 -x 1 /dev/sd{b,c,d,e,f}  ###-a 自动创建设备文件 -l RAID5 -n 几个设备 -x 备用设备 这里共用了5个设备。
    mdadm: array /dev/md0 started.

    [root@yangyouwei ~]# cat /proc/mdstat   ###查看RAID。创建后同步设备
    Personalities : [raid6] [raid5] [raid4]
    md0 : active raid5 sde[5] sdf[4](S) sdd[2] sdc[1] sdb[0]
          62865408 blocks super 1.2 level 5, 512k chunk, algorithm 2 [4/3] [UUU_]
          [==>………………]  recovery = 12.4% (2601088/20955136) finish=1.5min speed=200083K/sec
          
    unused devices: <none>

    [root@yangyouwei ~]# cat /proc/mdstat
    Personalities : [raid6] [raid5] [raid4]
    md0 : active raid5 sde[5] sdf[4](S) sdd[2] sdc[1] sdb[0]
    62865408 blocks super 1.2 level 5, 512k chunk, algorithm 2 [4/4] [UUUU]

    查看RAID设备详细情况
        root@yangyouwei ~]# mdadm -D /dev/md0
        /dev/md0:
                Version : 1.2
          Creation Time : Mon Jul 25 06:00:00 2016
             Raid Level : raid5
             Array Size : 62865408 (59.95 GiB 64.37 GB)
          Used Dev Size : 20955136 (19.98 GiB 21.46 GB)
           Raid Devices : 4
          Total Devices : 5
            Persistence : Superblock is persistent
        
            Update Time : Mon Jul 25 06:08:33 2016
                  State : clean
         Active Devices : 4
        Working Devices : 5
         Failed Devices : 0
          Spare Devices : 1
        
                 Layout : left-symmetric
             Chunk Size : 512K
        
                   Name : yangyouwei.centos6:0  (local to host yangyouwei.centos6)
                   UUID : 245f2c18:4025fee1:a482c73e:fa3488d0
                 Events : 18
        
            Number   Major   Minor   RaidDevice State  ###四个在线设备,要给备用设备
               0       8       16        0      active sync   /dev/sdb
               1       8       32        1      active sync   /dev/sdc
               2       8       48        2      active sync   /dev/sdd
               5       8       64        3      active sync   /dev/sde
        
               4       8       80        –      spare   /dev/sdf
    

    查看RAID设备大小
        [root@yangyouwei ~]# lsblk
        NAME   MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINT
        sda      8:0    0  200G  0 disk  
        ├─sda1   8:1    0  200M  0 part  /boot
        ├─sda2   8:2    0 97.7G  0 part  /
        ├─sda3   8:3    0 19.5G  0 part  /testdir
        ├─sda4   8:4    0    1K  0 part  
        └─sda5   8:5    0  200M  0 part  [SWAP]
        sdb      8:16   0   20G  0 disk  
        └─md0    9:0    0   60G  0 raid5
        sdd      8:48   0   20G  0 disk  
        └─md0    9:0    0   60G  0 raid5
        sdc      8:32   0   20G  0 disk  
        └─md0    9:0    0   60G  0 raid5
        sde      8:64   0   20G  0 disk  
        └─md0    9:0    0   60G  0 raid5
        sdf      8:80   0   20G  0 disk  
        └─md0    9:0    0   60G  0 raid5
    
        fdisk -l /dev/md0
        Disk /dev/md0: 64.4 GB, 64374177792 bytes
        2 heads, 4 sectors/track, 15716352 cylinders
        Units = cylinders of 8 * 512 = 4096 bytes
        Sector size (logical/physical): 512 bytes / 512 bytes
        I/O size (minimum/optimal): 524288 bytes / 1572864 bytes
        Disk identifier: 0x00000000

    注意:创建设备后RAID的设备成员的uuid都是一样的。
        /dev/sdb: UUID="245f2c18-4025-fee1-a482-c73efa3488d0" UUID_SUB="9e4e5600-1aed-33da-a8d1-e7976c26736b" LABEL="yangyouwei.centos6:0" TYPE="linux_raid_member"
        /dev/sdd: UUID="245f2c18-4025-fee1-a482-c73efa3488d0" UUID_SUB="7e48d80e-f024-8795-d77a-2f9ea62ecbac" LABEL="yangyouwei.centos6:0" TYPE="linux_raid_member"
        /dev/sdc: UUID="245f2c18-4025-fee1-a482-c73efa3488d0" UUID_SUB="e2730f30-b1c3-e516-832a-0abd5fe4f326" LABEL="yangyouwei.centos6:0" TYPE="linux_raid_member"
        /dev/sde: UUID="245f2c18-4025-fee1-a482-c73efa3488d0" UUID_SUB="3dcd74bf-c723-0e0a-3f75-90703f17af89" LABEL="yangyouwei.centos6:0" TYPE="linux_raid_member"

3、在RAID设备上创建文件系统。

    [root@yangyouwei ~]# mkfs.ext4 /dev/md0
    mke2fs 1.41.12 (17-May-2010)
    Filesystem label=
    OS type: Linux
    Block size=4096 (log=2)
    Fragment size=4096 (log=2)
    Stride=128 blocks, Stripe width=384 blocks
    3932160 inodes, 15716352 blocks
    785817 blocks (5.00%) reserved for the super user
    First data block=0
    Maximum filesystem blocks=4294967296
    480 block groups
    32768 blocks per group, 32768 fragments per group
    8192 inodes per group
    Superblock backups stored on blocks:
            32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
            4096000, 7962624, 11239424
    
    Writing inode tables: done                            
    Creating journal (32768 blocks): done
    Writing superblocks and filesystem accounting information: done
    
    This filesystem will be automatically checked every 33 mounts or
    180 days, whichever comes first.  Use tune2fs -c or -i to override.

就像在硬盘上创建文件系统一样。设备指向,/dev/md#

4、写入fstab文件

    注意写入fstab文件时,使用uuid时,需要使用在RAID创建的文件系统的uuid(blkid查看)。不能使用RAID设备的uuid

5、将当前RAID配置写入配置文件(必须写入否则下次进入系统后配置文件丢失不能使用RAID)就算停止RAID在启动也会丢失配置。需要重新配置。

    [root@yangyouwei ~]# mdadm -Ds /dev/md0 > /etc/mdadm.conf

6、测试

    模拟损坏

        [root@yangyouwei ~]# mdadm /dev/md0 -f /dev/sdb
        mdadm: set /dev/sdb faulty in /dev/md0

    删除成员

        [root@yangyouwei ~]# mdadm /dev/md0 -f /dev/sdb
        mdadm: set /dev/sdb faulty in /dev/md0
        [root@yangyouwei ~]# mdadm /dev/md0 -r /dev/sdb
        mdadm: hot removed /dev/sdb from /dev/md0

    增加成员

    停止RAID服务

    [root@yangyouwei ~]# mdadm -S /dev/md0
    mdadm: stopped /dev/md0

    启动RAID服务

    如不使用RAID需要清除RAID成员列表
        删除raid信息:mdadm –zero-superblock /dev/sdb1

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

(0)
yywyyw
上一篇 2016-09-02 08:48
下一篇 2016-09-02 08:48

相关推荐

  • lvm的基本使用

    lvm的创建、扩展、迁移以及逻辑卷快照的使用

    2017-12-08
  • N25-第七周作业

    1、创建一个10G分区,并格式为ext4文件系统;    (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl;     ~]# fdisk /dev/sda  (n, +10G 创建10G分区,w保存退出)   &nbsp…

    Linux干货 2017-01-22
  • Linux网络管理之网络配置管理和子网划分

    配置网卡信息 获取网卡的信息 dmesg | grep -i eth 获取网卡芯片信息 lspci | grep -i eth 查询IP信息 ifconfig显示IP信息    -a:显示包括未激活状态的网卡信息 重启网卡服务(每次配置完ip需要手动重启此服务) CentOS6: servcie network restart CentO…

    Linux干货 2016-09-07
  • N28-第三周博客作业

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。
    2、取出最后登录到当前系统的用户的相关信息。
    3、取出当前系统上被用户当作其默认shell的最多的那个shell。
    4、将/etc/passwd中的第三个字段数值最大的后10个用户的信息全部改为大写后保存至/tmp/maxusers.txt文件中。
    5、取出当前主机的IP地址,提示:对ifconfig命令的结果进行切分。
    6、列出/etc目录下所有以.conf结尾的文件的文件名,并将其名字转换为大写后保存至/tmp/etc.conf文件中。
    7、显示/var目录下一级子目录或文件的总个数。
    8、取出/etc/group文件中第三个字段数值最小的10个组的名字。
    9、将/etc/fstab和/etc/issue文件的内容合并为同一个内容后保存至/tmp/etc.test文件中。
    10、请总结描述用户和组管理类命令的使用方法并完成以下练习:
    (1)、创建组distro,其GID为2016;
    (2)、创建用户mandriva, 其ID号为1005;基本组为distro;
    (3)、创建用户mageia,其ID号为1100,家目录为/home/linux;
    (4)、给用户mageia添加密码,密码为mageedu;
    (5)、删除mandriva,但保留其家目录;
    (6)、创建用户slackware,其ID号为2002,基本组为distro,附加组peguin;
    (7)、修改slackware的默认shell为/bin/tcsh;
    (8)、为用户slackware新增附加组admins;

    Linux干货 2017-12-19
  • 马哥教育网络班第19期+第8周课程练习

    1、请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。 网桥:一种网路装置,负责网路桥接,将网络的多个网段在数据链路层连接起来。 集线器:将多条以太网线或光纤集合连接在同一段物理介质下的装置。工作在物理层。 二层交换机:工作在数据链路层,交换机内部的CPU会在每个端口成功连接时,通过将MAC地址和端口对应,形成一张MAC表。在今后的通…

    Linux干货 2016-08-22
  • DNS and Bind

    DNS and Bind      DNS服务器所提供的服务是完成将主机名和转换为IP地址的工作。为什么需要将主机名转换为IP地址的工作呢?这是因为,当网络上的一台客户机访问某一服务器上的资源时,用户在浏览器地址栏中输入的是人类便于识记的主机名和域名。而网络上的计算机之间实现连接却是通过每台计算机在网络中拥有的惟一的IP地址来完…

    Linux干货 2017-06-01