zoukankan      html  css  js  c++  java
  • 软RAID管理命令mdadm详解

    软RAID管理命令mdadm详解

    mdadm是linux下用于创建和管理软件RAID的命令,是一个模式化命令。但由于现在服务器一般都带有RAID阵列卡,并且RAID阵列卡也很廉价,且由于软件RAID的自身缺陷(不能用作启动分区、使用CPU实现,降低CPU利用率),因此在生产环境下并不适用。但为了学习和了解RAID原理和管理,因此仍然进行一个详细的讲解:

    一、创建模式

    选项:-C
    专用选项:
    -l 级别
    -n 设备个数
    -a {yes|no} 自动为其创建设备文件
    -c 指定数据块大小(chunk)
    -x 指定空闲盘(热备磁盘)个数,空闲盘(热备磁盘)能在工作盘损坏后自动顶替
    注意:创建阵列时,阵列所需磁盘数为-n参数和-x参数的个数和
     
    示例:

    1、创建raid0:

    1.1 创建raid

    mdadm -C /dev/md0 -a yes -l 0 -n 2 /dev/sdb{1,2}
    注意:用于创建raid的磁盘分区类型需为fd
     1.2 格式化:
    mkfs.ext4 /dev/md0
    注意:在格式化时,可以指定-E选项下的stride参数指定条带是块大小的多少倍,有在一定程度上提高软RAID性能,如块默认大小为4k,而条带大小默认为64k,则stride为16,这样就避免了RAID每次存取数据时都去计算条带大小,如:
    mkfs.ext4  -E stride=16 -b 4096 /dev/md0
    其中stride=chunk/block,为2的n次方
     

    2、创建raid1:

    2.1 创建raid
    [root@localhost ~]# mdadm -C /dev/md1 -a yes -n 2 -l 1 /dev/sdb{5,6}
    mdadm: Note: this array has metadata at the start and
    may not be suitable as a boot device.  If you plan to
    store '/boot' on this device please ensure that
    your boot-loader understands md/v1.x metadata, or use
    --metadata=0.90
    Continue creating array? y
    mdadm: Defaulting to version 1.2 metadata
    mdadm: array /dev/md1 started.
    注意:这个提示是说软raid不能用作启动分区。
     2.2 格式化:
    [root@localhost ~]# mkfs.ext4  /dev/md1

    3、创建raid5:

    由于没有磁盘空间,我将原来做raid1的测试磁盘全部删除后重新建立四个分区用于raid5测试,分别为sdb5-8
    3.1 创建raid5
    [root@localhost ~]# mdadm -C /dev/md2 -a yes -l 5 -n 3 /dev/sdb{5,6,7}
    mdadm: /dev/sdb5 appears to be part of a raid array:
    level=raid1 devices=2 ctime=Sun Jul 14 09:14:25 2013
    mdadm: /dev/sdb6 appears to be part of a raid array:
    level=raid1 devices=2 ctime=Sun Jul 14 09:14:25 2013
    mdadm: /dev/sdb7 appears to be part of a raid array:
    level=raid1 devices=2 ctime=Sun Jul 14 09:14:25 2013
    Continue creating array? y
    mdadm: Defaulting to version 1.2 metadata
    mdadm: array /dev/md2 started.
    注意:由于我的分区刚才在raid1上使用过,因此有此提示。
    3.2 格式化:
    [root@localhost ~]# mkfs.ext4 /dev/md2
    3.3 增加热备磁盘:
    [root@localhost ~]# mdadm /dev/md2 -a /dev/sdb8
     

    4、查看md状态:

    4.1 查看RAID阵列的详细信息:
    选项: -D = --detail
    mdadm -D /dev/md#   查看指定RAID设备的详细信息
    4.2 查看raid状态
    [root@localhost ~]# cat /proc/mdstat
    Personalities : [raid0] [raid1]
    md0 : active raid0 sdb2[1] sdb1[0]
         4206592 blocks super 1.2 512k chunks
     
    md1 : active raid1 sdb6[1] sdb5[0]
          2103447 blocks super 1.2 [2/2] [UU]
     
    unused devices: <none>
     
     
    注意:在创建raid前,应该先查看磁盘是否被识别,如果内核还为识别,创建Raid时会报错:
    cat /proc/partitions
    如果没有被识别,可以执行命令:
    kpartx /dev/sdb或者partprobe/dev/sdb
     

    二、管理模式

    选项:-a(--add),-d(--del),-r(--remove),-f(--fail)

    1、模拟损坏:

    mdadm /dev/md1 -f /dev/sdb5

    2、移除损坏的磁盘:

    mdadm /dev/md1 -r /dev/sdb5

    3、添加新的硬盘到已有阵列:

    mdadm /dev/md1 -a /dev/sdb7
    注意:
    3.1、新增加的硬盘需要与原硬盘大小一致
    3.2、如果原有阵列缺少工作磁盘(如raid1只有一块在工作,raid5只有2块在工作),这时新增加的磁盘直接变为工作磁盘,如果原有阵列工作正常,则新增加的磁盘为热备磁盘。

    4、停止阵列:

    选项:-S = --stop

    mdadm -S /dev/md1
     

    三、监控模式

    选项:-F
    不常用,不做详细说明。

    四、增长模式,用于增加磁盘,为阵列扩容:

    选项:-G

    示例,将上述raid5的热备磁盘增加到阵列工作磁盘中

    [root@localhost ~]# mdadm -G /dev/md2  -n 4
    注意:-n 4 表示使用四块工作磁盘
    再次使用-D选项查看阵列详细信息如下:
    [root@localhost ~]# mdadm -D /dev/md2
    ……此处略掉部分信息……
       Number   Major   Minor   RaidDevice State
               0       8       21        0      active sync   /dev/sdb5
               1       8       22        1      active sync   /dev/sdb6
                 3       8       23        2      active sync   /dev/sdb7
               4       8       24        3      active sync   /dev/sdb8
     

    五、装配模式,软RAID是基于系统的,当原系统损坏了,需要重新装配RAID

    选项:-A

    示例:将上述已经停止的阵列重新装配:

    mdadm -A /dev/md1 /dev/sdb5 /dev/sdb6
     

    实现自动装配:

    mdadm运行时会自动检查/etc/mdadm.conf  文件并尝试自动装配,因此第一次配置raid后可以将信息导入到/etc/mdadm.conf  中,命令如下:

    [root@localhost ~]# mdadm -Ds >/etc/mdadm.conf

    原文 http://www.toxingwang.com/linux-unix/linux-basic/1048.html

  • 相关阅读:
    webdav srs相关
    How To Configure WebDAV Access with Apache on Ubuntu 14.04
    ubuntu 编译lighttpd
    srs编译及推流测试
    Compile pciutils (lspci, setpci) in Windows x86,在 Windows x86 平台下编译 pciutils (lspci, setpci)
    mingw MSYS2 区别
    Qt之美(三):隐式共享
    Qt之美(二):元对象
    Qt之美(一):d指针/p指针详解
    C++的栈空间和堆空间
  • 原文地址:https://www.cnblogs.com/37yan/p/7489597.html
Copyright © 2011-2022 走看看