软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

软RAID管理命令mdadm详解相关推荐

  1. Linux:raid技术及软raid管理命令mdadm详解

    RAID技术及软raid管理mdadm详解 RAID是什么,常见的RAID有哪些? 软RAID实现,mdadm创建RAID实操 RAID是什么,常见的RAID有哪些? RAID: 磁盘阵列(Redun ...

  2. md0和md1linux软raid,软RAID管理命令mdadm详解

    mdadm是linux下用于创建和管理软件RAID的命令,是一个模式化命令.但由于现在服务器一般都带有RAID阵列卡,并且RAID阵列卡也很廉价,且由于软件RAID的自身缺陷(不能用作启动分区.使用C ...

  3. mdadm删除raid_软RAID管理命令mdadm详解 | 旺旺知识库

    mdadm是linux下用于创建和管理软件RAID的命令,是一个模式化命令.但由于现在服务器一般都带有RAID阵列卡,并且RAID阵列卡也很廉价,且由于软件RAID的自身缺陷(不能用作启动分区.使用C ...

  4. linux mdadm 源码,Linux下软RAID管理工具mdadm的基本操作实践

    RAID (Redundant Array of Independent Disks独立磁盘冗余阵列)是将多颗独立的硬盘整合成一个存储单元的数据存储技术. 1)RAID 类型有多种,分别提供不同级别的 ...

  5. Linux 文件与目录管理+用户管理命令(详解+练习)

    1. 创建目录 mkdir NO1. 在当前路径创建一级目录 [root@rehat root]# mkdir test NO2. 在当前路径创建多级目录 [root@rehat root]# mkd ...

  6. linux权限管理命令chown,详解Linux系统中管理文件权限的chown和chmod命令

    chown用法:chown [选项]... [所有者][:[组]] 文件... 或:chown [选项]... --reference=参考文件 文件... 更改每个文件的所有者和/或所属组. 当使用 ...

  7. linux mdadm 源码,mdadm命令_Linux mdadm 命令用法详解: mdadm 标准的软件 RAID 管理工具...

    mdadm 命令 基本语法mdadm [mode] [options] [mode] 7种Assemble:将以前定义的某个阵列加入当前在用阵列. Build:Build a legacy array ...

  8. Kubernetes二进制集群部署+Web管理界面+kubectl 命令管理+YAML文件详解(集合)

    Kubernetes---- 二进制集群部署(ETCD集群+Flannel网络) Kubernetes----单节点部署 Kubernetes----双master节点二进制部署 Kubernetes ...

  9. linux dd命令使用详解

    linux dd命令使用详解 dd 的主要选项: 指定数字的地方若以下列字符结尾乘以相应的数字: b=512, c=1, k=1024, w=2, xm=number m if=file 输入文件名, ...

  10. dos下的edit命令使用详解

    dos下的edit命令使用详解 来源:网络 作者:未知 edit命令是一个简单的编辑软件,我们经常用它来编辑一些程序和批处理文件. 比如,我想在c盘根目录下编辑一个简单的批处理文件,要求无论当前盘和当 ...

最新文章

  1. 张正友相机标定代码(c++python)
  2. Python的控制语句1
  3. 新华社北京4月15日电 题:奋斗应提倡,996当退场
  4. Ubuntu | ubuntu 中配置静态 IP
  5. 【题解】 bzoj1503: [NOI2004]郁闷的出纳员 (Splay)
  6. java 数组 length 减少_java中数组有没有length()方法?string没有lenght()方法?
  7. ubuntu14.04 在自带python2.7上安装python3.3.5 可以用但是有问题
  8. 编程语言对比 容器
  9. 001 lambda的分析
  10. 用户输出表单处理php
  11. 一篇真正教会你开发移动端页面的文章(二)
  12. 大数据时代的呼叫中心客服运营管理
  13. 考研408院校合集以及学科评估
  14. winform DataGridView 文本居中
  15. xz2p更新android 9,索尼 XZ2 迎来安卓 9.0 更新,但少了全面屏手势
  16. Ioc之Bean基础
  17. MatlabR2014a安装工具包
  18. 【nginx】nginx的使用
  19. 【计算机网络】计算机网络、互联网、互连网、因特网、万维网
  20. pip换源-pip国内源

热门文章

  1. c语言健康指数,C-AHI——中国汽车健康指数
  2. Nature:我叫“P值” 这是我的故事
  3. 程序设计C 实验六 结构体 题目四 偷菜时间表
  4. “onkeyup”=按键抬起触发,“onafterpaste”=粘贴之后触发
  5. ROS(sub,pub)测试 Plotjuggler
  6. 5个最佳团队交流应用程序
  7. sd卡计算机无法读取数据,电脑突然无法读取sd的起因分析sd卡无法读取怎么修复...
  8. h5 神策埋点_神策埋点思路
  9. 网站服务器无法打开ie,internet explorer无法打开站点怎么办
  10. 商品进销差价_零售企业商品进销差价的核算