Linux RAID 磁盘管理

本章主要讲解 Linux下 RAID5 与 RAID10 的部署,两者在企业中比较常用。

Linux RAID 使用命令

命令:mdadm

格式:mdadm [模式] [选项] [成员设备名称]

使用参数

作用

-a

检测设备名称

-n

指定设备数量

-l

指定 RAID 级别

-C

创建

-v

显示过程

-f

模拟设备损坏

-r

移除设备

-Q

查看摘要信息

-D

查看详细信息

-S

停止 RAID 磁盘阵列

-x

添加备份盘

--zero-superblock

移除RAID磁盘组员

Linux 创建 RAID 10

硬盘:4块以上

1、创建 RAID 10

#其中,-C 参数代表创建一个 RAID 阵列卡;-v 参数显示创建的过程,同时在后面追加一个设备名称/dev/md0,这样/dev/md就是创建后的RAID磁盘阵列的名称;-a yes 参数代表自动创建设备文件;-n 4 参数代表使用 4 硬盘来部署这个RAID 磁盘阵列;而-l 10 参数则代表 RAID 10 方案;最后再加上 4 块硬盘备的名称就搞定了。

mdadm -Cv /dev/md0 -a yes -n 4 -l 10 /dev/sdb /dev/sdc/dev/sdd /dev/sde

mdadm: layout defaults to n2

mdadm: layout defaults to n2#默认块大小

mdadm: chunk size defaults to 512K

mdadm: size set to 20954624K#mdadm 版本

mdadm: Defaulting to version 1.2metadata#md0已启动

mdadm: array /dev/md0 started.

输出

2、格式化/dev/md0

#格式化为ext4类型

mkfs.ext4 /dev/md0

3、创建挂载点、挂载/dev/md0、添加永久挂载

#创建挂载点

mkdir /RAID#挂载/dev/md0

mount /dev/md0 /RAID#设置开机自动挂载

echo "/dev/md0 /RAID ext4 defaults 0 0" >> /etc/fstab

4、查看使用情况

命令:df -h

Filesystem Size Used Avail Use%Mounted on/dev/mapper/rhel-root 18G 3.0G 15G 17% /devtmpfs 905M 0 905M 0% /dev

tmpfs 914M 84K 914M1% /dev/shm

tmpfs 914M8.9M 905M 1% /run

tmpfs 914M 0 914M 0% /sys/fs/cgroup/dev/sr0 3.5G 3.5G 0 100% /media/cdrom/dev/sda1 497M 119M 379M 24% /boot/dev/md0 40G 49M 38G 1% /RAID

查看磁盘使用情况

命令:mdadm -D /dev/md0#名称

/dev/md0:#版本

Version : 1.2

#创建时间

Creation Time : Tue May 5 07:43:26 2019

#RAID模式

Raid Level : raid10#磁盘阵列大小

Array Size : 41909248 (39.97 GiB 42.92GB)#使用用大小

Used Dev Size : 20954624 (19.98 GiB 21.46GB)#RAID设备块数

Raid Devices : 4

#用到总设备数

Total Devices : 4

#持久性类型

Persistence : Superblock ispersistent#更新时间

Update Time : Tue May 5 07:46:59 2017

#状态

State : clean#正在使用设备数

Active Devices : 4

#工作设备数

Working Devices : 4

#故障设备数量

Failed Devices : 0#备用设备数量

Spare Devices : 0#布局

Layout : near=2

#块大小

Chunk Size : 512K#本地创建设备主机名

Name : localhost.localdomain:0 (local to host localhost.localdomain)#设备UUID

UUID : cc9a87d4:1e89e175:5383e1e8:a78ec62c#时间

Events : 17

#模式状态

Number Major Minor RaidDevice State#使用的磁盘

0 8 16 0 active sync /dev/sdb1 8 32 1 active sync /dev/sdc2 8 48 2 active sync /dev/sdd3 8 64 3 active sync /dev/sde

Linux 创建 RAID 5

硬盘:3块以上

注:注释部分可参考 RAID 10

1、创建 RAID 5

mdadm -Cv /dev/md0 -n 3 -l 5 /dev/sdb /dev/sdc /dev/sdd

2、格式化/dev/md0

mkfs.ext4 /dev/md0

3、创建挂载点、挂载/dev/md0、添加永久挂载

mkdir /RAID

mount /dev/md0 /RAID

echo "/dev/md0 /RAID ext4 defaults 0 0" >> /etc/fstab

4、查看使用情况

命令:mdadm -D /dev/md0

mdadm: layout defaults to left-symmetric

mdadm: layout defaults to left-symmetric

mdadm: chunk size defaults to 512K

mdadm: size set to 20954624K

mdadm: Defaulting to version1.2metadata

mdadm: array/dev/md0 started.

[root@linuxprobe~]#mdadm -D /dev/md0

/dev/md0:

Version :1.2Creation Time : Fri May8 09:20:35 2017Raid Level : raid5

Array Size :41909248 (39.97 GiB 42.92GB)

Used Dev Size :20954624 (19.98 GiB 21.46GB)

Raid Devices :3Total Devices :3Persistence : Superblockispersistent

Update Time : Fri May8 09:22:22 2017State : clean

Active Devices :3Working Devices :3Failed Devices : 0

Spare Devices :1Layout : left-symmetric

Chunk Size : 512K

Name : linuxprobe.com:0 (local to host linuxprobe.com)

UUID : 44b1a152:3f1809d3:1d234916:4ac70481

Events :18Number Major Minor RaidDevice State

08 16 0 active sync /dev/sdb1 8 32 1 active sync /dev/sdc4 8 48 2 active sync /dev/sdd

查看 RAID 5 状态

Linux 损坏磁盘阵列修复

这里采用RAID 10 为例

1、模拟/dev/sdb磁盘损坏

#-f 造成模拟磁盘损坏

mdadm /dev/md0 -f /dev/sdb

命令:mdadm -D /dev/md0/dev/md0:

Version :1.2Creation Time : Fri May8 08:11:00 2017Raid Level : raid10

Array Size :41909248 (39.97 GiB 42.92GB)

Used Dev Size :20954624 (19.98 GiB 21.46GB)

Raid Devices :4Total Devices :4Persistence : Superblockispersistent

Update Time : Fri May8 08:27:18 2017State : clean, degraded

Active Devices :3Working Devices :3Failed Devices :1Spare Devices : 0

Layout : near=2Chunk Size : 512K

Name : linuxprobe.com:0 (local to host linuxprobe.com)

UUID : f2993bbd:99c1eb63:bd61d4d4:3f06c3b0

Events :21Number Major Minor RaidDevice State

0 0 0 0 removed1 8 32 1 active sync /dev/sdc2 8 48 2 active sync /dev/sdd3 8 64 3 active sync /dev/sde#faulty 已损坏

0 8 16 – faulty /dev/sdb

查看RAID状态

2、取消挂载、并进行检测修复

#取消挂载

umount /RAID#检测修复损坏磁盘

mdadm /dev/md0 -a /dev/sdb

使用命令:mdadm -D /dev/md0/dev/md0:

Version :1.2Creation Time : Mon Jan30 00:08:56 2017Raid Level : raid10

Array Size :41909248 (39.97 GiB 42.92GB)

Used Dev Size :20954624 (19.98 GiB 21.46GB)

Raid Devices :4Total Devices :4Persistence : Superblockispersistent

Update Time : Mon Jan30 00:19:53 2017State : clean

Active Devices :4Working Devices :4Failed Devices : 0

Spare Devices : 0

Layout : near=2Chunk Size : 512K

Name : localhost.localdomain:0 (local to host localhost.localdomain)

UUID : d3491c05:cfc81ca0:32489f04:716a2cf0

Events :56Number Major Minor RaidDevice State4 8 16 0 active sync /dev/sdb1 8 32 1 active sync /dev/sdc2 8 48 2 active sync /dev/sdd#active 已修复使用

3 8 64 3 active sync /dev/sde

查看RAID状态

3、重新挂载

mount –a

Linux 磁盘阵列创建RAID添加备份盘

这里采用RAID 5 为例

备份盘:当RAID内其他磁盘损坏,备份盘会自动替补损坏的磁盘。

1、创建 RAID5 并额外添加备份盘

#参数-x 1 则代表有一块备份盘。当查看/dev/md0(即 RAID 5 磁盘阵列名称)磁盘阵列的时候就能看到有一块备份盘在等待中了。

mdadm -Cv /dev/md0 -n 3 -l 5 -x 1 /dev/sdb /dev/sdc /dev/sdd /dev/sde

2、格式化/dev/md0

mkfs.ext4 /dev/md0

3、创建挂载点、挂载/dev/md0、添加永久挂载

mkdir /RAID

mount /dev/md0 /RAID

echo "/dev/md0 /RAID ext4 defaults 0 0" >> /etc/fstab

4、模拟/dev/sdb磁盘损坏

mdadm /dev/md0 -f /dev/sdb

5、查看替补损坏磁盘的备份磁盘

命令:mdadm -D /dev/md0/dev/md0:

Version :1.2Creation Time : Fri May8 09:20:35 2017Raid Level : raid5

Array Size :41909248 (39.97 GiB 42.92GB)

Used Dev Size :20954624 (19.98 GiB 21.46GB)

Raid Devices :3Total Devices :4Persistence : Superblockispersistent

Update Time : Fri May8 09:23:51 2017State : active, degraded, recovering

Active Devices :2Working Devices :3Failed Devices :1Spare Devices :1Layout : left-symmetric

Chunk Size : 512K

Rebuild Status : 0%complete

Name : linuxprobe.com:0 (local to host linuxprobe.com)

UUID : 44b1a152:3f1809d3:1d234916:4ac70481

Events :21Number Major Minor RaidDevice State#替补磁盘自己蹦上去了

3 8 64 0 spare rebuilding /dev/sde1 8 32 1 active sync /dev/sdc4 8 48 2 active sync /dev/sdd#模拟损坏的磁盘

0 8 16 - faulty /dev/sdb

查看RAID信息

Linux RAID 磁盘阵列取消删除

1、查看RAID阵列信息,确认关闭设备

#命令

cat /proc/mdstat#输出

Personalities : [raid6] [raid5] [raid4]

md0 : active raid5 sdb5[3](S) sdb1[0] sdb2[1] sdb3[4]1043456 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3]

2、取消挂载

umount /RAID

3、停止指定RAID阵列

#-S 停止阵列

mdadm -S /dev/md0

4、清理RAID成员磁盘

#--zero-superblock 清除磁盘成员后面跟成员磁盘名称

mdadm --zero-superblock /dev/sdb

mdadm--zero-superblock /dev/sdc

mdadm--zero-superblock /dev/sdd

5、删除永久挂载文件

#进入文件

vim /etc/fstab#清除添加的RAID行

xxx xxx ext4 defaults 0 0

6、删除或注释 /etc/mdadm.conf 对应RAID信息

#进入文件

vim /etc/mdadm.conf#ARRAY /dev/md0 metadata=1.2 spares=1 name=kashu.localdomain:0 UUID=3895d28e:bdcaed28:136b4cf6:d2a858f5

注:如果做完上面所有的操作后,发现/dev/下还有md0这个设备文件存在,直接rm -f /dev/md0即可。

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐