mdadm是一个用于创建、管理、监控RAID设备的工具,它使用linux中的md驱动。

基本语法 :

mdadm [mode] [options]

mdadm程序是一个独立的程序,能完成所有软件RAID的管理功能,主要有7中使用模式 [mode]

Assemble:将以前定义的某个阵列加入当前在用阵列。

Build:Build a legacy array ,每个device 没有 superblocks

Create:创建一个新的阵列,每个device 具有 superblocks

Manage: 管理阵列,比如 add 或 remove

Misc:允许单独对阵列中的某个 device 做操作,比如抹去superblocks 或 终止在用的阵列。

Follow or Monitor:监控 raid 1,4,5,6 和 multipath 的状态

Grow:改变raid 容量或 阵列中的 device 数目

3. 概念解析

/proc/mdstat : 当前md(软RAID)的状态信息

/etc/mdadm.conf : mdadm的配置文件

Active devices : RAID中的活动组件设备

Faulty device : RAID中失效的设备

Spare device : RAID中热备盘

Device Names : RAID设备名、标准格式是”/dev/mdNN”或者”/dev/md/NN”

md            : Multiple Devices虚拟块设备(利用底层多个块设备虚拟出一个新的虚拟块设备)。

md driver        : MD的驱动

Array            : 阵列,跟RAID意思相同

Raid            :不解释

md device        : 就是使用MD创建的软件RAID

md array :同上

md设备        :同上

mdadm各个选项

可用的 [options]:

-A, --assemble:加入一个以前定义的阵列

-B, --build:Build a legacy array without superblocks.

-C, --create:创建一个新的阵列

-Q, --query:查看一个device,判断它为一个 md device 或是 一个 md 阵列的一部分

-D, --detail:打印一个或多个 md device 的详细信息

-E, --examine:打印 device 上的 md superblock 的内容

-F, --follow, --monitor:选择 Monitor 模式

-G, --grow:改变在用阵列的大小或形态

-h, --help:帮助信息,用在以上选项后,则显示该选项信息

--help-options

-V, --version

-v, --verbose:显示细节

-b, --brief:较少的细节。用于 --detail 和 --examine 选项

-f, --force

-c, --config= :指定配置文件,缺省为 /etc/mdadm/mdadm.conf

-s, --scan:扫描配置文件或 /proc/mdstat以搜寻丢失的信息。配置文件/etc/mdadm/mdadm.conf

create 或 build 使用的选项:

-c, --chunk=:Specify chunk size of kibibytes. 缺省为 64.

--rounding=: Specify rounding factor for linear array (==chunk size)

-l, --level=:设定 raid level.

--create可用:linear, raid0, 0, stripe, raid1,1, mirror, raid4, 4, raid5, 5, raid6, 6, multipath, mp.

--build可用:linear, raid0, 0, stripe.

-p, --parity=:设定 raid5 的奇偶校验规则:eft-asymmetric, left-symmetric, right-asymmetric, right-symmetric, la, ra, ls, rs.缺省为left-symmetric

--layout=:类似于--parity

-n, --raid-devices=:指定阵列中可用 device 数目,这个数目只能由 --grow 修改

-x, --spare-devices=:指定初始阵列的富余device 数目

-z, --size=:组建RAID1/4/5/6后从每个device获取的空间总数

--assume-clean:目前仅用于 --build 选项

-R, --run:阵列中的某一部分出现在其他阵列或文件系统中时,mdadm会确认该阵列。此选项将不作确认。

-f, --force:通常mdadm不允许只用一个device 创建阵列,而且创建raid5时会使用一个device作为missing drive。此选项正相反。

-a, --auto{=no,yes,md,mdp,part,p}{NN}:

各种模式的使用

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配置文件一致,否则重启操作系统后,会出现问题。

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。

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设备信息错误。

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。

Grow模式

说明:能改变RAID1、5、6中的”size”属性。

说明:能改变RAID1、5中的”raid-disks”属性。

说明:增加移除RAID中的write-intent bitmap。

命令举例

创建配置文件

例子:#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中超级块的信息

监控RAID

mdadm linux,mdadm命令_Linux mdadm 命令用法详解: mdadm是一个用于创建、管理、监控RAID设备的工具,它使用linux中的md驱动。...相关推荐

  1. linux cp -r 参数,Linux系统中cp命令的参数及用法详解

    Linux系统中cp命令主要是用来复制文件或者目录.下面由学习啦小编为大家整理了Linux系统中cp命令的参数及用法详解的相关知识,希望对大家有帮助! Linux系统中cp命令的参数及用法详解:参数说 ...

  2. linux中替换命令详解,linux中sed命令字符串替换的用法详解

    Linux系统中sed命令可以将字符串批量替换,省去了很多麻烦,下面由学习啦小编为大家整理了linux系统中sed命令字符串替换的用法详解,希望对大家有帮助! linux中sed命令字符串替换的用法详 ...

  3. npm命令--安装依赖包--用法/详解

    原文网址:npm命令--安装依赖包--用法/详解_IT利刃出鞘的博客-CSDN博客 简介 本文介绍npm如何安装依赖包. 用法 命令 作用 详述 npm install <pkg> //同 ...

  4. dnf全部使用_dnf命令_Linux dnf 命令用法详解:新一代的RPM软件包管理器

    DNF是新一代的RPM软件包管理器.他首先出现在 Fedora 18 这个发行版中.而最近,它取代了YUM,正式成为 Fedora 22 的包管理器. DNF包管理器克服了YUM包管理器的一些瓶颈,提 ...

  5. linux iotop rpm,iotop命令_Linux iotop 命令用法详解:用来监视磁盘I/O使用状况的工具...

    iotop命令是一个用来监视磁盘I/O使用状况的top类工具.iotop具有与top相似的UI,其中包括PID.用户.I/O.进程等相关信息.Linux下的IO统计工具如iostat,nmon等大多数 ...

  6. linux losetup命令,losetup命令_Linux losetup 命令用法详解:设定与控制循环(loop)设备...

    losetup命令用来设置循环设备.循环设备可把文件虚拟成块设备,籍此来模拟整个文件系统,让用户得以将其视为硬盘驱动器,光驱或软驱等设备,并挂入当作目录来使用. 语法losetup [ -e encr ...

  7. python getopt argparse_python OptParse模块和argparse命令行解析的用法详解

    https://www.cnblogs.com/wj-1314/p/8974021.html OptParse模块的简单介绍 Python 有两个内建的模块用于处理命令行参数: 一个是 getopt只 ...

  8. linux进程间通信之Posix共享内存用法详解及代码举例

    Posix共享内存有两种非亲缘进程间的共享内存方法: 1).  使用内存映射文件,由open函数打开,再由mmap函数把返回的文件描述符映射到当前进程空间中的一个文件. 2). 使用共享内存区对象,由 ...

  9. java标签用法详解_介绍一个javaWeb自定义标签的用法详解

    这篇文章主要介绍了javaWeb自定义标签用法,结合实例形式分析了javaweb自定义标签的功能.定义方法及执行原理,需要的朋友可以参考下 本文实例讲述了javaWeb自定义标签用法.分享给大家供大家 ...

最新文章

  1. 115 存至网盘 也有限制?
  2. 《京东技术解密》读后感
  3. js对html进行转义和反转义的操作
  4. c++/c SM4加密解密算法代码实现
  5. JavaScript 技术篇-js通过xpath获取dom节点,js校验xpath唯一性
  6. glib中的GList ,GSList,GString,GTree,GTimer
  7. 我用这个框架拿了Kaggle大赛冠军
  8. boost::fusion::repetitive_view用法的测试程序
  9. 集成Dapr的 Azure 容器应用
  10. [Java]关于throw,throws,try{}catch(){}
  11. Linux、Windows、RHEL操作系统镜像
  12. mysql union_Mysql union和union all用法
  13. PLC 控制三相异步电动机正反转实验
  14. SnakeYaml快速入门
  15. 操作——UE常用快捷键
  16. host头攻击漏洞修复
  17. 网页调用迅雷的JS(支持客户端版和网页版)
  18. 巡逻机器人(Patrol Robot, Uva1600)
  19. Word目录第一行和最后一行格式不对(首行缩进)的解决方案
  20. python 教程之如何使用python中的四分位距统计数据查找数据中的异常值

热门文章

  1. 五十步笑百步翻译软件测试,“禹、稷当平世”“五十步笑百步”阅读答案及翻译...
  2. “太阳轨道飞行器”首次飞掠太阳 距太阳约7700万公里
  3. 疯壳AI开源无人机地面站上位机的使用和介绍
  4. 匿名地面站V6.5传输协议
  5. GBase 8a 加载longblob类型数据的方法
  6. 途牛旅游项目——注册功能_功能分析
  7. Error updating changes: error launching git
  8. 日期转换,农历转阳历和阳历转农历
  9. MySQL巧用sum,case...when...优化统计查询
  10. 初探人工神经网络算法