• mdadm使用详解


    • 功能:事件通过syslog报告。
    • 举例:mdadm --monitor --syslog /dev/md0 &
    • 备注:message被打印到/var/log/message文件里面

    –delay(-d)

    • 功能:查看设备的延迟时间。默认是60s
    • 举例:mdadm --monitor –mail=xxx@csdn.net --program=/root/pc3x.sh --delay=300 /dev/md0 &

    –daemonise(-f)

    • 功能:mdadm将以后台demon形式来运行。
    • 举例:mdadm --monitor --syslog /dev/md0 -f
    • 备注:demon的ID号将被打印到屏幕上面。可以配合–pid-file参数使用,将ID号打印到–pid-file参数指定的文件中。

    –pid-file(-i)

    • 功能:当mdadm以demon模式运行时,把进程ID写入到指定的文件中。
    • 举例:mdadm --monitor --syslog --pig-file=/root/pc3x.pid /dev/md0 -f
    • 备注:注意,该参数必须和-f参数一起使用。如果不使用—pid-file参数,进程号将被打印到屏幕上,指定该参数后,进程号被写入到指定的文件中。

    –oneshot(-1)

    • 功能:立刻检查一次盘阵,会检查到NewArray、DegradedArray 、SparesMissing事件。
    • 举例:mdadm --monitor --oneshot --scan --program=/root/pc3x.sh
    • 备注:该参数不能与-f参数一起使用。虽然与-f参数一起使用不会报错,但是demon根本不会启动起来。与—scan参数配合使用,效果更加。在配置cron一起使用,效果更上一层。

    –test(-t)

    • 功能:当启动mdadm的时候,给每个md设备发送一条TestMessage事件。
    • 举例:mdadm --monitor --test --syslog /dev/md0 -f
    • 备注:当–test配合–scan使用时,它会给/etc/mdadm.conf文件里面的每个md设备发送TestMessage事件。如果mdadm --monitor命令指定设备,它会给每个设备发送TestMessage事件。

    –config(-c)

    • 功能:指定特定的配置文件,通过配置文件指定邮件地址和程序。不使用该参数,默认文件为/etc/mdadm.conf。
    • 举例:mdadm --monitor --scan --config=文件 --oneshot
    • 备注:如果指定其他配置文件,则/etc/mdadm.conf文件将失效。

    –scan(-s)

    • 功能:监控/proc/mdsate文件中列出的所有设备。
    • 举例:mdadm --monitor --scan --program=/root/pc3x.sh -f
    • 备注:当使用–scan参数时,–program或者—mail,两个参数必须指定一个。同时,mdadm --monitor命令行不需要特别说明某个设备。

    2.8 非特定模式参数

    –help(-h)

    • 功能:显示帮助信息,后面跟上选项名称,将显示该选项方式下所有选项帮助信息。
    • 举例:mdadm --help; mdadm --help --add; mdadm --create --help

    –help-options

    • 功能:显示一些帮助信息。跟–help大同小异。
    • 举例:mdadm --help-options

    –version(-V)

    • 功能:打印mdadm版本
    • 举例:mdadm --version

    –verbose(-v)

    • 功能:对于正在发生的,显示详细信息。
    • 举例:mdadm -D -v -s
    • 备注:该参数可以使用2遍,显示额外信息。目前可以应用在–detail --scan 和 --examine --scan。

    –quiet(-q)

    • 功能:避免打印完全的信息。
    • 备注:这种模式下,mdadm除非是非常重要的信息,否则不会打印任何信息。

    –brief(-b)

    • 功能:显示简短信息。比–verbose少。
    • 举例:mdadm -D /dev/md0 --brief
    • 备注:可以与–detail或–examine一起使用。当与–verbose一起使用时,打印–verbose与–brief中间状态信息。

    –force(-f)

    • 功能:不同模式下面有不同意思,具体详见各个模式。仔细小心使用这个参数。

    –config(-c)

    • 功能:指定配置文件。
    • 备注:默认配置文件为/etc/mdadm.conf,如果这个文件不存在,将是/etc/mdadm/mdadm.conf。如果值是none,mdadm会将配置文件看成空文件。如果值是partitions,mdadm将读取/proc/partitions以获取所有设备。
      mdadm --examine --brief --scan --config=partitions

    –scan(-s)

    • 功能:扫描配置文件或者/proc/mdstate文件,去获取信息。
    • 备注:从/proc/mdstate文件中获取一些/etc/mdadm.conf文件中没有的信息。如:成员盘。唯一例外就是misc和monitor模式下,使用—detail或者—stop,mdadm将从/proc/mdstate文件中获取所有阵列。如mdadm --stop --scan将停止所有的md设备。

    2.9 mdadm.conf

    配置文件作用:

    /etc/mdadm.conf作为默认的配置文件,主要作用是方便跟踪软RAID的配置,尤其是可以配置监视和事件上报选项。在这里我们主要说明配置文件在组装RAID时的作用。更多mdadm.conf使用可参见man mdadm.conf。

    举例:

    • 配置磁盘设备文件名:echo DEVICE /dev/sd[b-i] > /etc/mdadm.conf
    • 配置软RAID信息:mdadm --detail --scan >> /etc/mdadm.conf
    • 利用配置文件组装软RAID:mdadm -A --scan
    • 当RAID无法组装时(如缺少成员盘,或读写造成superblock数据过期),强制组装软RAID:mdadm -A --scan --force

    组装中的几点说明:

    • –scan参数只能根据扫描配置文件中配置的RAID,没有配置在配置文件中的RAID不能组装起来。
    • DEVICE中配置的是组装RAID时,所有要扫描的磁盘,如RAID中的成员盘没有配置到DEVICE项中,则该磁盘无法组装到RAID中。

    需要加–force才能使RAID active的情况:

    • 对于有冗余且无热备的RAID,停止后,又掉了一块盘,组装时不加–force,RAID组装起来为inactive状态,mdadm -D 查不到RAID信息,仅/proc/mdstat中可看到简要信息。对于先掉盘,后停止的RAID,不需要–force也可以组装成功。
    • 对于有冗余且无热备,RAID中所有成员盘虽然在系统中,但配置文件的DEVICE的配置缺少一个成员盘,则组装时,可以理解为缺少一块成员盘。因此组装结果同1中相同。
    • 重构状态的RAID,重启后,不指定–force无法组装成功。

    无法将RAID组装成active的情况:

    对于上节说到的缺少一块成员盘时,可以通过–force参数将RAID组装起来,但对于掉了两块或两块以上的成员盘时,无法将RAID再组装成active状态,只能组装成一个inactive状态的RAID。

    3. 使用示例

    3.1 create模式

    用法:mdadm –create md-device –chunk=X –level=Y –raid-devices=Z devices
    
    例子:# mdadm –create /dev/md0 –chunk=64 –level=0 –raid-devices=2 /dev/sda1 /dev/sdb1
    
    说明:使用sda1和sdb1创建RAID0,条带大小是64KB。
    
    例子:#mdadm –create /dev/md1 –chunk=64 –level=1 –raid-devices=1 /dev/sdc1 missing
    
    说明:创建一个降级的RAID1,同样可以使用missing创建降级的RAID4/5/6
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    3.2 Assemble模式

    用法:mdadm –assemble md-devices options-and-component-devices…
    
    例子:#mdadm –assemble /dev/md0 /dev/sda1 /dev/sdb1
    
    说明:把sda1和sdb1重组成/dev/md0。
    
    用法:mdadm –assemble –scan md-devices-and-options…
    
    例子:#mdadm –assemble –scan /dev/md0
    
    说明:从配置文件读出设备列表,根据超级块中的信息,重组/dev/md0。
    
    用法:mdadm –assemble –scan options…
    
    例子:#mdadm –assemble –scan –uuid=xxxxxxx
    
    说明:从配置文件读出设备列表,根据超级块中的uuid信息,重组uuid是xxxxxxx的RAID。
    
    假如#mdadm –assemble –scan命令后面没有设备列表,mdadm会读取配置文件中所列的RAID信息,并尝试重组。假如系统中没有/etc/mdadm.conf配置文件,则会从/proc/partitions中读取设备列表。因此使用mdadm时,必须保证mdadm中的状态信息(/proc/mdstat)和/etc/mdadm.conf配置文件一致,否则重启操作系统后,会出现问题。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    3.3 Misc模式

    用法:mdadm options… devices..
    
    例子:#mdadm –detail –test /dev/md0
    
    说明:这条命令的返回值:0代表md0正常;1代表md0至少有一个failed的组件设备;2代表md0有多个failed组件设备,这个md0已经不能使用,即失效(md0是raid1、raid5、raid6、raid10时);4代表获取md0设备信息错误。
    
    • 1
    • 2
    • 3
    • 4
    • 5

    3.4 Monitor模式 (只监控raid1/5/6/10,不监控raid0)

    用法: mdadm –monitor options… devices..
    
    说明:mdadm除了报告事件以外,mdadm还可以把一个RAID中的热备盘移动到另一个没有热备盘的RAID中,前提条件是这些RAID都属于同一个spare-group(RAID的spare-group可以在配置文件里设置)。
    
    说明:当命令中有设备列表时,mdadm只会监控这些设备。当没有设备列表时,配置文件中的所有RAID都会被监控。当使用–scan选项时,/proc/mdstat中的设备也会被监控。
    
    说明:传给program的三个参数是事件名、涉及到的md device名、涉及到的其他设备(比如组件设备失效)。
    
    说明:监控的事件有
    
        DeviceDisappeared 当RAID0和linear中某个设备失效时,就会出现RAID消失。
    
        RebuildStarted    重建RAID
    
        RebuildNN    重建百分比,NN代表20,40,60,80
    
        RebuildFinished 重建结束
    
        Fail RAID中某个活动组件设备失效
    
        FailSpare RAID中某个热备盘失效
    
        SpareActive RAID中热备盘启用,用于重建RAID
    
        NewArray 在/proc/mdstat中监控到有新的RAID被创建
    
        DegradedArray RAID降级
    
        MoveSpare 热备盘从一个RAID中移动到另外一个RAID中,前提是这两个RAID属于同个spare-group
    
        SparesMissing 发现RAID中的热备盘数比配置文件中的少
    
        TestMessage 测试
    
    说明:只有Fail、FailSpare、DegradedArray、SparesMissing、TestMessage事件才会触发发送Email
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35

    3.5 Grow模式

    说明:能改变RAID1、5、6中的”size”属性。
    
    说明:能改变RAID1、5中的”raid-disks”属性。
    
    说明:增加移除RAID中的write-intent bitmap。
    
    • 1
    • 2
    • 3
    • 4
    • 5

    3.6 命令举例

    创建配置文件
    	例子:#echo ‘DEVICE /dev/hd*[0-9] /dev/sd*[0-9]‘ > mdadm.conf
    
    	#mdadm –detail –scan >> mdadm.conf
    	说明:创建配置文件的原型。
    
    创建RAID
    	例子:#mdadm –create /dev/md0 –chunk=64 –level=1 –raid-devices=2 /dev/sda1 /dev/sb1
    	说明:创建md0,RAID级别是RAID1,条带大小事64KB,成员盘是sda1、sdb1
    
    给RAID增加热备盘
    	例子:#mdadm /dev/md0 -add /dev/sdc1
    	说明:给md0增加热备盘sdc1。
    
    查看RAID信息和组件设备信息
    	例子:#cat /proc/mdstat
    	说明:查看当前所有RAID的状态
    
    	例子:#mdadm –detail /dev/md0
    	说明:查看md0的详细信息
    
    	例子:#mdadm –examine /dev/sda1
    	说明:查看组件设备sda1中超级块的信息和状态
    
    删除RAID
    	例子:#mdadm –stop /dev/md0
    	说明:停止md0的运行
    	例子:#mdadm — zero-superblock /dev/sda1
    	说明:清除组件设备sda1中超级块的信息
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30

    3.7 配置文件详解

    格式简要说明

    格式说明:SYNTAX xxx xxx xxx xxx xxx
    
    注释说明:#This is a comment.
    
    多行说明:假如任意一行中开头是以空白开头的(space/tab),这行被看做是上一行的延续。
    
    空行说明:空行被忽略
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    关键字说明

    DEVICE:

    该关键字后面跟的是设备列表(设备和分区),这些设备可能是某个md设备的组件。当要查找某个RAID的组件设备时,mdadm会扫描这些设备。
    
    例子:DEVICE /dev/hda* /dev/hdc*
    
    例子:DEVICE /dev/hd*[0-9] /dev/sd*[0-9]
    
    例子:DEV /dev/sd*
    
    例子:DEVICE /dev/discs/disc*/disc
    
    例子:DEVICE partitions
    
    说明:mdadm会读取/proc/partitions中的设备。假如在配置文件中没有DEVICE关键字,
    
    则假定”DEVICE partitions”,也就是默认会读取/proc/partitions中的设备
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    APPLY:

    说明:关键字ARRAY标识一个活动的RAID,ARRAY后面跟着的是RAID的名字。RAID名字后面跟着的是RAID的属性值,这些属性值标识一个RAID,或者标识一个组的成员RAID(spare-group)。假如给出了多个属性值,则每个组件设备中的超级块信息必须匹配属性值。
    
    • 1

    在这里插入图片描述

    MAILADDR

    使用monitor模式(同时也使–scan选项)时,警报事件发送到的Email地址。
    
    • 1

    MAILFROM

    邮件地址。
    
    • 1

    PROGRAM

    “mdadm –monitor”监测到的事件都会发送给这个程序。只能有一个程序。
    
    • 1

    CREATE

    	该行中是创建RAID时使用的默认值。
    
    • 1

    配置文件示例:

    DEVICE /dev/sd[bcdjkl]1
    DEVICE /dev/hda1 /dev/hdb1
    # /dev/md0 is known by it’s UID.
    ARRAY /dev/md0 UUID=3aaa0122:29827cfa:5331ad66:ca767371
    # /dev/md1 contains all devices with a minor number of
    # 1 in the superblock.
    ARRAY /dev/md1 superminor=1
    # /dev/md2 is made from precisey these two devices
    ARRAY /dev/md2 devices=/dev/hda1,/dev/hdb1
    
    # /dev/md4 and /dev/md5 are a spare-group and spares
    # can be moved between them
    ARRAY /dev/md4 uuid=b23f3c6d:aec43a9f:fd65db85:369432df
    spare-group=group1
    ARRAY /dev/md5 uuid=19464854:03f71b1b:e0df2edd:246cc977
    spare-group=group1
    # /dev/md/home is created if need to be a partitionable md array
    # any spare device number is allocated.
    ARRAY /dev/md/home UUID=9187a482:5dde19d9:eea3cc4a:d646ab8b
    auto=part
    
    MAILADDR root@mydomain.tld
    PROGRAM /usr/sbin/handle-mdadm-events
    CREATE group=system mode=0640 auto=part-8
    HOMEHOST <system>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25

    3.8 注意事项

    当系统中不存在配置文件/etc/mdadm.conf、/etc/mdadm/mdadm.conf时,系统启动时,md驱动会自动查找分区为FD格式的磁盘。所以一般会使用fdisk工具将hd磁盘和sd磁盘分区,再设置为FD的磁盘分区。因此假如直接使用/dev/sda、/dev/sdb创建RAID,系统重启后,不会重组该RAID。
    
    • 1
  • 相关阅读:
    软件开发工具的现状与发展
    帝国CMS的Sitemap网站地图生成插件下载及教程
    Linux磁盘扩容(加硬盘法)
    webrtc学习--一对一通话
    Stable Diffusion 3 Early Preview发布
    汽车电子中的深力科推荐一款汽车用功率MOSFET NVTFS6H888NLTAG N沟道
    计算机毕设题目设计与实现(论文+源码)_kaic
    Web前端大作业制作个人网页(html+css+javascript)
    《向量数据库指南》——TruLens + Milvus Cloud构建RAG深入了解性能
    Bean——IOC(Github上有代码)
  • 原文地址:https://blog.csdn.net/qq_21127151/article/details/126127126