Linux mdadm命令

Linux mdadm命令:管理Linux软RAID。

Linux mdadm命令 功能描述

使用mdadm命令可以管理Linux软RAID,比如创建、调整、监控RAID。

  • mdadm主要有以下8种使用模式。
  • create:创建一个新的RAID,每个设备都具有元数据(超级块)。
  • build:创建或组合一个没有元数据(超级块)的RAID。
  • assemble:组装以前创建的RAID的组件集成到一个活动RAID。
  • manage:更改一个现有的RAID,比如添加新的备用成员和删除故障设备。
  • misc:报告或修改各种RAID相关设备,比如查询RAID或者设备的状态信息、删除旧的超级块。
  • grow:调整/重新塑造一个活动RAID,比如改变RAID容量或阵列中的设备数目。
  • monitor:监控一个或多个RAID的更改。
  • incremental:添加设备到RAID中,或从RAID中删除设备。

Linux mdadm命令 语法

mdadm [模式] [ RAID设备] [选项] [RAID成员]

命令中各选项的含义如表所示。

mdadm命令选项含义

备注:创建RAID准备工作–创建RAID分区。
在创建RAID设备之前,先要通过fdisk命令来创建RAID分区,创建方法和创建普通的磁盘分区类似,只不过在分区的时候将分区类型ID指定为fd。
使用以下命令创建磁盘分区/dev/sda5、/dev/sda6、/dev/sda7和/dev/sda8,每个磁盘分区大小为5GB,分区类型ID为fd。

[root@rhel ~]# fdisk /dev/sda
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
    switch off the mode (command 'c') and change display units to
    sectors (command 'u').
Command(m for help): n
//在此输入n,开始创建分区
Command action
  e  extended
  p  primary partition(1-4)
e
//在此输入e,开始创建扩展分区
Selected partition 4
First cylinder (19856-65270, default 19856):
//直接按回车键,从磁盘剩余起始柱面开始创建扩展分区
Using default value 19856
Last cylinder, +cylinders or +size{K, M, G} (19856-65270, default 65270):
//直接按回车键,则从第19856个柱面到最后一个柱面均为扩展分区
Using default value 65270
Command(m for help): n
First cylinder (19856-65270, default 19856):
//直接按回车键,从磁盘剩余起始柱面开始创建逻辑驱动器
Using default value 19856
Last cylinder, +cylinders or+size{K, M, G}(19856-65270, default 65270): +5G
//在此输入“+5G”,代表创建容量为5GB的逻辑驱动器
Command(m for help): n
First cylinder (20510-65270, default 20510):
Using default value 20510
Last cylinder, +cylinders or+size{K, M, G}(20510-65270, default 65270): +5G
Command(m for help): n
First cylinder (21164-65270, default 21164):
Using default value 21164
Last cylinder, +cylinders or+size{K, M, G}(21164-65270, default 65270): +5G
Command(m for help): n
First cylinder (21818-65270, default 21818):
Using default value 21818
Last cylinder, +cylinders or+size{K, M, G}(21818-65270, default 65270): +5G
Command(m for help): t
//在此输入t,开始转换分区类型
Partition number(1-8):5
//输入分区号码,在此输入5,说明要转换/dev/sda5分区的类型
Hex code(type L to list codes): fd
Changed system type of partition 5 to fd (Linux raid autodetect)
//转换5号分区类型为fd(Linux raid auto)
Command(m for help): t
Partition number(1-8):6
Hex code(type L to list codes): fd
Changed system type of partition 6 to fd (Linux raid autodetect)
Command(m for help): t
Partition number(1-8):7
Hex code(type L to list codes): fd
Changed system type of partition 7 to fd (Linux raid autodetect)
Command(m for help): t
Partition number(1-8):8
Hex code(type L to list codes): fd
Changed system type of partition 8 to fd (Linux raid autodetect)
Command(m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: 设备或资源忙.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
  分区之后使用以下命令查看磁盘分区情况。
[root@rhel ~]# fdisk -l /dev/sda
Disk /dev/sda: 536.9 GB, 536870912000 bytes
255 heads, 63 sectors/track, 65270 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00034c36
  Device Boot     Start       End     Blocks  Id  System
/dev/sda1  *         1         13     102400  83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2            13      19595  157286400  83  Linux
/dev/sda3         19595      19856    2097152  82  Linux swap/Solaris
/dev/sda4         19856      65270  364794299   5  Extended
/dev/sda5         19856      20509    5251535  fd  Linux raid autodetect
/dev/sda6         20510      21163    5253223+  fd  Linux raid autodetect
/dev/sda7         21164      21817    5253223+  fd  Linux raid autodetect
/dev/sda8         21818      22471    5253223+  fd  Linux raid autodetect
//在此准备了4个磁盘分区做RAID 5实验
使用以下命令重新启动Linux系统。
[root@rhel ~]# init 6

Linux mdadm命令 示例

创建RAID 5设备,名称为/dev/md0,其成员为/dev/sda5、/dev/sda6和/dev/sda7

[root@rhel ~]# mdadm -C -v /dev/md0-l5-n3 /dev/sda5 /dev/sda6 /dev/sda7
mdadm: layout defaults to left-symmetric
mdadm: layout defaults to left-symmetric
mdadm: chunk size defaults to 512K
mdadm: size set to 5246976K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
//RAID设备创建完成之后会立即启用

查看RAID设备/dev/md0详细信息

[root@rhel ~]# mdadm -D /dev/md0
/dev/md0:
      Version : 1.2
  Creation Time : Mon Aug 19 01:02:312013
    Raid Level : raid5
    Array Size : 10493952 (10.01 GiB 10.75 GB)
  Used Dev Size : 5246976 (5.00 GiB 5.37 GB)
  Raid Devices : 3
  Total Devices : 3
    Persistence : Superblock is persistent
    Update Time : Mon Aug 19 01:10:332013
        State : clean
Active Devices : 3
Working Devices : 3
Failed Devices : 0
  Spare Devices : 0
        Layout : left-symmetric
    Chunk Size : 512K
          Name: rhel:0  (local to host rhel)
          UUID : e7ed9356:a7d4e1ea:da5465ac:53f3dfe6
        Events : 18
    Number  Major  Minor  RaidDevice State
      0      8       5       0     active sync  /dev/sda5
      1      8       6       1     active sync  /dev/sda6
      3      8       7       2     active sync  /dev/sda7

查看RAID成员/dev/sda5、/dev/sda6和/dev/sda7详细信息

[root@rhel ~]# mdadm -E /dev/sda5 /dev/sda6 /dev/sda7
/dev/sda5:
  Magic: a92b4efc
 Version:1.2
Feature Map:0x0
Array UUID: e7ed9356:a7d4e1ea:da5465ac:53f3dfe6
Name: rhel:0 (local to host rhel)
Creation Time: Mon Aug 19 01:02:312013
Raid Level: raid5
Raid Devices:3
Avail Dev Size:10494878(5.00 GiB 5.37 GB)
Array Size:10493952(10.01 GiB 10.75 GB)
Used Dev Size:10493952(5.00 GiB 5.37 GB)
Data Offset:8192 sectors
Super Offset:8 sectors
  State: clean
Device UUID:57b31675:6484d43c:19a142a9:c40a5e1e
Update Time: Mon Aug 19 01:11:292013
Checksum:9003c6c-correct
  Events:18
  Layout: left-symmetric
Chunk Size:512K
Device Role: Active device 0
Array State: AAA('A'==active, '.'==missing)
/dev/sda6:
  Magic: a92b4efc
 Version:1.2
Feature Map:0x0
Array UUID: e7ed9356:a7d4e1ea:da5465ac:53f3dfe6
  Name: rhel:0 (local to host rhel)
Creation Time: Mon Aug 19 01:02:312013
Raid Level: raid5
Raid Devices:3
Avail Dev Size:10498255(5.01 GiB 5.38 GB)
Array Size:10493952(10.01 GiB 10.75 GB)
Used Dev Size:10493952(5.00 GiB 5.37 GB)
Data Offset:8192 sectors
Super Offset:8 sectors
  State: clean
Device UUID: cf95211c:93e66cd4:be5ab5bb:0021f0a0
Update Time: Mon Aug 19 01:11:292013
Checksum: dca85e26-correct
  Events:18
  Layout: left-symmetric
Chunk Size:512K
Device Role: Active device 1
Array State : AAA ('A' == active, '.' == missing)
/dev/sda7:
    Magic : a92b4efc
  Version : 1.2
 Feature Map : 0x0
 Array UUID : e7ed9356:a7d4e1ea:da5465ac:53f3dfe6
    Name: rhel:0 (local to host rhel)
Creation Time : Mon Aug 19 01:02:312013
 Raid Level : raid5
Raid Devices : 3
 Avail Dev Size:10498255(5.01 GiB 5.38 GB)
 Array Size : 10493952 (10.01 GiB 10.75 GB)
Used Dev Size : 10493952 (5.00 GiB 5.37 GB)
Data Offset : 8192 sectors
Super Offset : 8 sectors
    State : clean
Device UUID : ad9a8e7d:ee42d240:7cbd7057:254ad3a8
Update Time : Mon Aug 19 01:11:292013
  Checksum : 4e194b44- correct
  Events : 18
  Layout : left-symmetric
 Chunk Size : 512K
Device Role : Active device 2
Array State : AAA ('A' == active, '.' == missing)

停用RAID设备/dev/md0

[root@rhel ~]# umount /dev/md0
//先卸载RAID设备文件系统
[root@rhel ~]# mdadm -S /dev/md0
mdadm: stopped /dev/md0

启用RAID设备/dev/md0

[root@rhel ~]# mdadm -A /dev/md0 /dev/sda5 /dev/sda6 /dev/sda7
mdadm: /dev/md0 has been started with 3 drives.

向RAID设备/dev/md0中添加备用成员/dev/sda8

[root@rhel ~]# mdadm /dev/md0-a /dev/sda8
mdadm: added /dev/sda8

将RAID设备/dev/md0中的备用成员转换为正式成员

[root@rhel ~]# mdadm -G /dev/md0-n4
mdadm: Need to backup 3072K of critical section..

将RAID成员/dev/sda7模拟为故障磁盘

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

热移除有故障的RAID成员/dev/sda7

[root@rhel ~]# mdadm -r /dev/md0 /dev/sda7
mdadm: hot removed /dev/sda7 from /dev/md0

删除RAID设备/dev/md0

[root@rhel ~]# umount /dev/md0
//卸载RAID设备文件系统[root@rhel ~]# mdadm -Ss /dev/md0
mdadm: stopped /dev/md0
//停用RAID设备
[root@rhel ~]# mdadm --zero-superblock /dev/sda5 /dev/sda6 /dev/sda7 /dev/sda8
//删除RAID设备

扩展RAID设备容量

[root@rhel ~]# mdadm -C /dev/md0-l5-n3 /dev/sda5 /dev/sda6 /dev/sda7-x1 /dev/sda8-z 4G
mdadm: /dev/sda5 appears to be part of a raid array:
    level=raid5 devices=3 ctime=Sat Dec  7 16:14:272013
mdadm: /dev/sda6 appears to be part of a raid array:
    level=raid5 devices=3 ctime=Sat Dec  7 16:14:272013
mdadm: /dev/sda7 appears to be part of a raid array:
    level=raid5 devices=3 ctime=Sat Dec  7 16:14:272013
mdadm: largest drive (/dev/sda6) exceeds size (4194304K) by more than 1%
Continue creating array? y                    //输入y确认创建RAID设备
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
//创建RAID 5设备,正式成员为/dev/sda5、/dev/sda6和/dev/sda7,备用成员为/dev/sda8,每个RAID成员使用4GB容量(每个RAID成员总容量为5GB)
[root@rhel ~]# mdadm -G /dev/md0-z 5G
mdadm: component size of /dev/md0 has been set to 5242880K
//扩展RAID设备/dev/md0容量,每个RAID成员使用5GB容量

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程