CentOS 下的RAID磁盘软阵列
时间:2014-07-07 22:54 来源:linux.it.net.cn 作者:IT网
RAID 概述
RAID即廉价冗余磁盘阵列(Redundant Array of Inexpensive Disk)的简称,通过该技术可以
将多个磁盘组成一个阵列整体,而应用时可以作为单个磁盘使用。RAID 磁盘阵列根据其使用的技
术不同,可用于提高数据读写效率、提高数据冗余(备份),当阵列中的一个磁盘发生故障时,可
以通过校验数据从其他磁盘中进行恢复,大大增强了应用系统数据的读写性能及可靠性。
较常见的 RAID技术包括如下几个级别:
„ RAID 0:最基本的一种阵列方式,通过简单的将多个磁盘(最少2 块)组成到一起,作为
一个大磁盘使用。存取数据时,通过将数据分段同时写入到不同的磁盘中,大大提高了效
率。但是这种方式没有数据冗余,其中任何一个磁盘坏了以后,都可能导致数据丢失。
„ RAID 1:即磁盘镜像技术,需要最少 2 块磁盘(磁盘利用率:1/n)。这种方式将数据同时
写入到阵列中的多块磁盘中,不同磁盘中的数据互为镜像。因此,其中任何一个磁盘坏了
以后,数据不会丢失。
„ RAID 5:通过引入数据校验技术来保证数据的安全,需要最少 3 块磁盘(磁盘利用率: n-1)。
这种方式并不使用固定的某块磁盘存放校验数据,而是分段存储在各个磁盘中。因此,其
中任何一个磁盘坏了以后,也可以根据其他磁盘中的校验数据进行恢复。
由于 RAID5 阵列技术既通过数据冗余增强了可靠性,又通过多块磁盘同时写入数据提高了效
率,一直以来受到广泛的应用。
未使用硬件磁盘卡方式实现的 RAID 技术,通常称为软 RAID 技术。本文将在 RHEL5 系统中,
使用不同磁盘中的多个分区,配置实现 RAID 5磁盘阵列。
9.2 构建使用软 RAID磁盘阵列
在 RHEL5 系统中,配置软 RAID 阵列可以通过安装 mdadm 软件包实现。该软件包一般为系
统默认安装,若检查没有安装的话,从 RHEL5 系统光盘中查找安装即可。
[root@localhost ~]# mount /dev/cdrom /media/cdrom/
mount: block device /dev/cdrom is write-protected, mounting read-only
[root@localhost ~]# rpm -ivh /media/cdrom/Server/mdadm-2.5.4-3.el5.i386.rpm
Preparing... ########################################### [100%]
1:mdadm ########################################### [100%]
[root@localhost ~]# rpm -qi mdadm | grep "Summary"
Summary : mdadm 控制 Linux md 设备 (软件 RAID 阵列)
下面将以 RAID5磁盘阵列为例,讲解软磁盘阵列的配置使用方法。
准备用于 RAID阵列的分区
用于组成 RAID阵列的各个分区应该位于不同的磁盘设备中,否则实用价值不大。各分区的容
量最好也相同,必要时可以将整个硬盘划分为一个分区。
为 Linux服务器添加 4块 SCSI 硬盘,并使用 fdisk 工具各划分出一块 2GB 的分区,依次为:
/dev/sdb1、/dev/sdc1、/dev/sdd1、/dev/sde1。分区前请注意确保没有别的程序正在使用对应的
磁盘。下一小节中将以这 4 个分区为例(RAID 5需要至少 3 块磁盘或分区)讲解 RAID5 磁盘阵列
的创建方法。
对于上述分区还应该将其类型 ID更改为“fd”,对应为“Linux raid autodetect”,表示支持用
于 RAID磁盘阵列。
[root@localhost ~]# fdisk /dev/sdb
……
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-522, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-522, default 522): +2048M
Command (m for help): t
Selected partition 1
Hex code (type L to list codes): fd
Changed system type of partition 1 to fd (Linux raid autodetect)
Command (m for help): p
……
Device Boot Start End Blocks Id System
/dev/sdb1 1 250 2008093+ fd Linux raid autodetect
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[root@localhost ~]#
创建好三个分区以后,执行“partprobe”重新探测分区表(或重启系统),验证分区类型和容
量等信息。
[root@localhost ~]# partprobe
[root@localhost ~]# fdisk -l /dev/sd[b-e] | grep "^/dev/sd"
/dev/sdb1 1 250 2008093+ fd Linux raid autodetect
/dev/sdc1 1 250 2008093+ fd Linux raid autodetect
/dev/sdd1 1 250 2008093+ fd Linux raid autodetect
/dev/sde1 1 250 2008093+ fd Linux raid autodetect
创建 RAID设备
使用 mdadm 工具可以组合多个 RAID 分区作为一个磁盘阵列,阵列设备文件名习惯上使用
“/dev/md0”、“/dev/md1”等。
[root@localhost ~]# mdadm -Cv /dev/md0 -a yes -n4 -l5 /dev/sd[b-e]1
mdadm: layout defaults to left-symmetric
mdadm: chunk size defaults to 64K
mdadm: /dev/sdb1 appears to be part of a raid array:
level=raid5 devices=4 ctime=Sat Jul 25 08:44:50 2009
mdadm: /dev/sdc1 appears to be part of a raid array:
level=raid5 devices=4 ctime=Sat Jul 25 08:44:50 2009
mdadm: /dev/sdd1 appears to be part of a raid array:
level=raid5 devices=4 ctime=Sat Jul 25 08:44:50 2009
mdadm: /dev/sde1 appears to be part of a raid array:
level=raid5 devices=4 ctime=Sat Jul 25 08:44:50 2009
mdadm: size set to 2008000K
Continue creating array? y
mdadm: array /dev/md0 started.
[root@localhost ~]#
在上述命令操作中,“/dev/md0”为新建的 RAID阵列设备文件名,“/dev/sd[bcd]1”表示此阵
列将使用/dev/sdb1、/dev/sdc1、/dev/sdd1 这三个分区。其他各部分选项、参数的含义如下:
„ -C,等同于 --create:创建一个新的阵列设备
„ -v,等同于 --verbose:执行过程中输出细节信息
„ -a,等同于 --auto=:指定参数为 yes 时,表示若对应的设备文件不存在则自动创建
„ -n,等同于 --raid-devices=:用于组成阵列的分区设备个数,“-n3”表示为 3 个
„ -l,等同于 --level=:使用的 RAID级别,“-l5”表示为 RAID 5
关于 mdadm 命令更多选项的使用,请参考“man mdadm”帮助信息。
创建好 md0阵列设备后,将自动被激活,执行“cat /proc/mdstat”可以观察阵列设备的
运行状态。
[root@localhost ~]# ls -l /dev/md0
brw------- 1 root root 9, 0 07-25 09:03 /dev/md0
[root@localhost ~]# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md0 : active raid5 sde1[3] sdd1[2] sdc1[1] sdb1[0]
6024000 blocks level 5, 64k chunk, algorithm 2 [4/4] [UUUU]
其中,“[4/4]”部分中的第一个“4”表示成员设备个数,后边的“4”表示当前的活动设备个
数,“UUUU”对应为成员设备的状态。例如,若出现“[4/3][UUU_]”的信息时,则表示第 4 个成
员设备(/dev/sde1)出现故障了。
在 RAID设备中建立文件系统
创建好磁盘阵列设备文件“/dev/md0”以后,就可以在该设备中建立文件系统了。在 RHEL5
系统中,可以使用 mkfs 命令格式化该设备,将其作为 ext3文件系统来使用。
[root@localhost ~]# mkfs -t ext3 /dev/md0
mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
753664 inodes, 1506000 blocks
75300 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=1543503872
46 block groups
32768 blocks per group, 32768 fragments per group
16384 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 33 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
挂载并使用文件系统
创建挂载点目录“/mdata”,并将上一小节中建立好的文件系统挂载到该目录,即可正常使用。
[root@localhost ~]# mkdir /mdata
[root@localhost ~]# mount /dev/md0 /mdata
[root@localhost ~]# df -T | grep "md0" //验证挂载的“/mdata”文件系统
/dev/md0 ext3 5929360 142976 5485184 3% /mdata
除去一个成员设备作为校验盘以后,磁盘阵列的有效存储空间为 3个成员设备的容量之和(大
约为 2GB×3=6GB)。
如果希望在每次开机后自动挂载该阵列设备,可以在“/etc/fstab”文件中添加相应设置。
[root@localhost ~]# vi /etc/fstab
/dev/md0 /mdata ext3 defaults 0 0
阵列的管理及设备恢复
基本管理操作
1.扫描或查看磁盘阵列信息
使用 mdadm 命令时,“-D”选项相当于“--detail”,表示显示扫描结果的详细内容;“-s”
选项相当于“--scan”,用于扫描阵列设备。
未指定阵列设备文件时,可以显示出当前系统中的阵列配置信息、RAID设备列表。
[root@localhost ~]# mdadm -vDs
ARRAY /dev/md0 level=raid5 num-devices=4
UUID=35bcffa1:cdc5ba41:0c5b5702:e32a3259
devices=/dev/sdb1,/dev/sdc1,/dev/sdd1,/dev/sde1
当指定阵列设备作为参数时,可以输出指定阵列设备的详细参数,包括活动设备个数、失
效设备个数、更新时间、列表成员设备位置等。
[root@localhost ~]# mdadm -vDs /dev/md0
/dev/md0:
Version : 00.90.03
Creation Time : Sat Jul 25 11:23:07 2009
Raid Level : raid5
Array Size : 6024000 (5.74 GiB 6.17 GB)
Device Size : 2008000 (1961.27 MiB 2056.19 MB)
Raid Devices : 4
Total Devices : 4
Preferred Minor : 0
Persistence : Superblock is persistent
Update Time : Sat Jul 25 11:26:01 2009
State : clean
Active Devices : 4
Working Devices : 4
Failed Devices : 0
Spare Devices : 0
Layout : left-symmetric
Chunk Size : 64K
UUID : 35bcffa1:cdc5ba41:0c5b5702:e32a3259
Events : 0.6
Number Major Minor RaidDevice State
0 8 17 0 active sync /dev/sdb1
1 8 33 1 active sync /dev/sdc1
2 8 49 2 active sync /dev/sdd1
3 8 18 3 active sync /dev/sde1
2.创建配置文件 mdadm.conf
mdamd 的配置文件为“/etc/mdadm.conf”,该文件只是用来方便用户管理和使用,缺少
此文件并不会影响磁盘阵列的功能。在配置文件中可以保存多个磁盘阵列的配置信息。配置文
件中的基本信息可以通过前面讲过的“mdadm -vDs”命令获得。
[root@localhost ~]# vi /etc/mdadm.conf
DEVICE /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
ARRAY /dev/md0 level=raid5 num-devices=4
UUID=35bcffa1:cdc5ba41:0c5b5702:e32a3259
devices=/dev/sdb1,/dev/sdc1,/dev/sdd1,/dev/sde1
CREATE owner=root group=root mode=0640
在上述文件中, “ARRAY”、“UUID” “devices”部分是位于同一行中的内容,最后一
行中的“CREATE”用于设置自动创建阵列设备文件的属主、属组及默认权限。关于mdadm.conf
配置文件中更多配置项的使用,可以参考“man mdadm.conf”帮助信息。
3.启动/停止RAID阵列
在确保没有相关程序读写磁盘阵列设备的情况下,可以停止阵列设备。只需使用 mdadm
命令结合“-S”选项(等同于“--stop”选项)即可。执行该操作将会禁用对应的阵列设备,
释放相关资源。
[root@localhost ~]# mdadm -S /dev/md0
mdadm: stopped /dev/md0
结合“-A”选项(等同于“--assemble”选项)可以重新组合对应的磁盘阵列设备。
[root@localhost ~]# mdadm -A /dev/md0
mdadm: /dev/md0 has been started with 4 drives.
[root@localhost ~]# mount /dev/md0 /mdata/
设备恢复操作
1.模拟阵列设备故障
对于运行中的磁盘阵列,可以结合 mdadm 命令的“-f”选项(等同于“”选项)用于模
拟成员设备故障,例如可将阵列中的“/dev/sdb1”标记为故障设备。
[root@localhost ~]# mdadm /dev/md0 -f /dev/sde1
mdadm: set /dev/sde1 faulty in /dev/md0
当阵列中的某个成员设备出现故障时,阵列会将其标记为失活状态。此时通过“cat
/proc/mdstat”可以观察到丢失出现故障的设备(/dev/sde1)。
[root@localhost ~]# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md0 : active raid5 sde1[3](F) sdd1[2] sdc1[1] sdb1[0]
6024000 blocks level 5, 64k chunk, algorithm 2 [4/3] [UUU_]
2.更换故障设备,并恢复数据
对于出现故障的设备,可以结合“-r”选项将其移除,然后换上正常的设备,结合“-a”
选项重新添加到阵列中即可。
[root@localhost ~]# mdadm /dev/md0 -r /dev/sde1
mdadm: hot removed /dev/sde1 //移除故障设备
[root@localhost ~]# mdadm /dev/md0 -a /dev/sde1
mdadm: re-added /dev/sde1 //重新加入正常设备
RAID5 磁盘阵列能够在较短时间内进行重构和数据恢复,当需要恢复的数据较多时,可
以在此期间观察到阵列状态的恢复进度。
[root@localhost ~]# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md0 : active raid5 sde1[3] sdd1[2] sdc1[1] sdb1[0]
6024000 blocks level 5, 64k chunk, algorithm 2 [4/3] [UUU_]
[===>.................] recovery = 16.3% (328192/2008000) finish=2.6min
speed=10586K/sec
unused devices: <none>
待数据恢复完成以后,再次查看阵列状态即显示为正常了。
[root@localhost ~]# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md0 : active raid5 sde1[3] sdd1[2] sdc1[1] sdb1[0]
6024000 blocks level 5, 64k chunk, algorithm 2 [4/4] [UUUU]
unused devices: <none>
(责任编辑:IT)
RAID 概述 RAID即廉价冗余磁盘阵列(Redundant Array of Inexpensive Disk)的简称,通过该技术可以 将多个磁盘组成一个阵列整体,而应用时可以作为单个磁盘使用。RAID 磁盘阵列根据其使用的技 术不同,可用于提高数据读写效率、提高数据冗余(备份),当阵列中的一个磁盘发生故障时,可 以通过校验数据从其他磁盘中进行恢复,大大增强了应用系统数据的读写性能及可靠性。 较常见的 RAID技术包括如下几个级别: „ RAID 0:最基本的一种阵列方式,通过简单的将多个磁盘(最少2 块)组成到一起,作为 一个大磁盘使用。存取数据时,通过将数据分段同时写入到不同的磁盘中,大大提高了效 率。但是这种方式没有数据冗余,其中任何一个磁盘坏了以后,都可能导致数据丢失。 „ RAID 1:即磁盘镜像技术,需要最少 2 块磁盘(磁盘利用率:1/n)。这种方式将数据同时 写入到阵列中的多块磁盘中,不同磁盘中的数据互为镜像。因此,其中任何一个磁盘坏了 以后,数据不会丢失。 „ RAID 5:通过引入数据校验技术来保证数据的安全,需要最少 3 块磁盘(磁盘利用率: n-1)。 这种方式并不使用固定的某块磁盘存放校验数据,而是分段存储在各个磁盘中。因此,其 中任何一个磁盘坏了以后,也可以根据其他磁盘中的校验数据进行恢复。 由于 RAID5 阵列技术既通过数据冗余增强了可靠性,又通过多块磁盘同时写入数据提高了效 率,一直以来受到广泛的应用。 未使用硬件磁盘卡方式实现的 RAID 技术,通常称为软 RAID 技术。本文将在 RHEL5 系统中, 使用不同磁盘中的多个分区,配置实现 RAID 5磁盘阵列。
9.2 构建使用软 RAID磁盘阵列 在 RHEL5 系统中,配置软 RAID 阵列可以通过安装 mdadm 软件包实现。该软件包一般为系 统默认安装,若检查没有安装的话,从 RHEL5 系统光盘中查找安装即可。 [root@localhost ~]# mount /dev/cdrom /media/cdrom/ mount: block device /dev/cdrom is write-protected, mounting read-only [root@localhost ~]# rpm -ivh /media/cdrom/Server/mdadm-2.5.4-3.el5.i386.rpm Preparing... ########################################### [100%] 1:mdadm ########################################### [100%] [root@localhost ~]# rpm -qi mdadm | grep "Summary" Summary : mdadm 控制 Linux md 设备 (软件 RAID 阵列)
下面将以 RAID5磁盘阵列为例,讲解软磁盘阵列的配置使用方法。
准备用于 RAID阵列的分区 用于组成 RAID阵列的各个分区应该位于不同的磁盘设备中,否则实用价值不大。各分区的容 量最好也相同,必要时可以将整个硬盘划分为一个分区。 为 Linux服务器添加 4块 SCSI 硬盘,并使用 fdisk 工具各划分出一块 2GB 的分区,依次为: /dev/sdb1、/dev/sdc1、/dev/sdd1、/dev/sde1。分区前请注意确保没有别的程序正在使用对应的 磁盘。下一小节中将以这 4 个分区为例(RAID 5需要至少 3 块磁盘或分区)讲解 RAID5 磁盘阵列 的创建方法。 对于上述分区还应该将其类型 ID更改为“fd”,对应为“Linux raid autodetect”,表示支持用 于 RAID磁盘阵列。 [root@localhost ~]# fdisk /dev/sdb …… Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First cylinder (1-522, default 1): Using default value 1 Last cylinder or +size or +sizeM or +sizeK (1-522, default 522): +2048M Command (m for help): t Selected partition 1 Hex code (type L to list codes): fd Changed system type of partition 1 to fd (Linux raid autodetect) Command (m for help): p …… Device Boot Start End Blocks Id System /dev/sdb1 1 250 2008093+ fd Linux raid autodetect
Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks. [root@localhost ~]#
创建好三个分区以后,执行“partprobe”重新探测分区表(或重启系统),验证分区类型和容 量等信息。 [root@localhost ~]# partprobe [root@localhost ~]# fdisk -l /dev/sd[b-e] | grep "^/dev/sd" /dev/sdb1 1 250 2008093+ fd Linux raid autodetect /dev/sdc1 1 250 2008093+ fd Linux raid autodetect /dev/sdd1 1 250 2008093+ fd Linux raid autodetect /dev/sde1 1 250 2008093+ fd Linux raid autodetect
创建 RAID设备 使用 mdadm 工具可以组合多个 RAID 分区作为一个磁盘阵列,阵列设备文件名习惯上使用 “/dev/md0”、“/dev/md1”等。 [root@localhost ~]# mdadm -Cv /dev/md0 -a yes -n4 -l5 /dev/sd[b-e]1 mdadm: layout defaults to left-symmetric mdadm: chunk size defaults to 64K mdadm: /dev/sdb1 appears to be part of a raid array: level=raid5 devices=4 ctime=Sat Jul 25 08:44:50 2009 mdadm: /dev/sdc1 appears to be part of a raid array: level=raid5 devices=4 ctime=Sat Jul 25 08:44:50 2009 mdadm: /dev/sdd1 appears to be part of a raid array: level=raid5 devices=4 ctime=Sat Jul 25 08:44:50 2009 mdadm: /dev/sde1 appears to be part of a raid array: level=raid5 devices=4 ctime=Sat Jul 25 08:44:50 2009 mdadm: size set to 2008000K Continue creating array? y mdadm: array /dev/md0 started. [root@localhost ~]# 在上述命令操作中,“/dev/md0”为新建的 RAID阵列设备文件名,“/dev/sd[bcd]1”表示此阵 列将使用/dev/sdb1、/dev/sdc1、/dev/sdd1 这三个分区。其他各部分选项、参数的含义如下: „ -C,等同于 --create:创建一个新的阵列设备 „ -v,等同于 --verbose:执行过程中输出细节信息 „ -a,等同于 --auto=:指定参数为 yes 时,表示若对应的设备文件不存在则自动创建 „ -n,等同于 --raid-devices=:用于组成阵列的分区设备个数,“-n3”表示为 3 个 „ -l,等同于 --level=:使用的 RAID级别,“-l5”表示为 RAID 5 关于 mdadm 命令更多选项的使用,请参考“man mdadm”帮助信息。 创建好 md0阵列设备后,将自动被激活,执行“cat /proc/mdstat”可以观察阵列设备的 运行状态。 [root@localhost ~]# ls -l /dev/md0 brw------- 1 root root 9, 0 07-25 09:03 /dev/md0 [root@localhost ~]# cat /proc/mdstat Personalities : [raid6] [raid5] [raid4] md0 : active raid5 sde1[3] sdd1[2] sdc1[1] sdb1[0] 6024000 blocks level 5, 64k chunk, algorithm 2 [4/4] [UUUU] 其中,“[4/4]”部分中的第一个“4”表示成员设备个数,后边的“4”表示当前的活动设备个 数,“UUUU”对应为成员设备的状态。例如,若出现“[4/3][UUU_]”的信息时,则表示第 4 个成 员设备(/dev/sde1)出现故障了。
在 RAID设备中建立文件系统 创建好磁盘阵列设备文件“/dev/md0”以后,就可以在该设备中建立文件系统了。在 RHEL5 系统中,可以使用 mkfs 命令格式化该设备,将其作为 ext3文件系统来使用。 [root@localhost ~]# mkfs -t ext3 /dev/md0 mke2fs 1.39 (29-May-2006) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) 753664 inodes, 1506000 blocks 75300 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=1543503872 46 block groups 32768 blocks per group, 32768 fragments per group 16384 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736 Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 33 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override. 挂载并使用文件系统 创建挂载点目录“/mdata”,并将上一小节中建立好的文件系统挂载到该目录,即可正常使用。 [root@localhost ~]# mkdir /mdata [root@localhost ~]# mount /dev/md0 /mdata [root@localhost ~]# df -T | grep "md0" //验证挂载的“/mdata”文件系统 /dev/md0 ext3 5929360 142976 5485184 3% /mdata 除去一个成员设备作为校验盘以后,磁盘阵列的有效存储空间为 3个成员设备的容量之和(大 约为 2GB×3=6GB)。 如果希望在每次开机后自动挂载该阵列设备,可以在“/etc/fstab”文件中添加相应设置。 [root@localhost ~]# vi /etc/fstab /dev/md0 /mdata ext3 defaults 0 0
阵列的管理及设备恢复
基本管理操作 1.扫描或查看磁盘阵列信息 使用 mdadm 命令时,“-D”选项相当于“--detail”,表示显示扫描结果的详细内容;“-s” 选项相当于“--scan”,用于扫描阵列设备。 未指定阵列设备文件时,可以显示出当前系统中的阵列配置信息、RAID设备列表。 [root@localhost ~]# mdadm -vDs ARRAY /dev/md0 level=raid5 num-devices=4 UUID=35bcffa1:cdc5ba41:0c5b5702:e32a3259 devices=/dev/sdb1,/dev/sdc1,/dev/sdd1,/dev/sde1 当指定阵列设备作为参数时,可以输出指定阵列设备的详细参数,包括活动设备个数、失 效设备个数、更新时间、列表成员设备位置等。 [root@localhost ~]# mdadm -vDs /dev/md0 /dev/md0: Version : 00.90.03 Creation Time : Sat Jul 25 11:23:07 2009 Raid Level : raid5 Array Size : 6024000 (5.74 GiB 6.17 GB) Device Size : 2008000 (1961.27 MiB 2056.19 MB) Raid Devices : 4 Total Devices : 4 Preferred Minor : 0 Persistence : Superblock is persistent Update Time : Sat Jul 25 11:26:01 2009 State : clean Active Devices : 4 Working Devices : 4 Failed Devices : 0 Spare Devices : 0 Layout : left-symmetric Chunk Size : 64K UUID : 35bcffa1:cdc5ba41:0c5b5702:e32a3259 Events : 0.6 Number Major Minor RaidDevice State 0 8 17 0 active sync /dev/sdb1 1 8 33 1 active sync /dev/sdc1 2 8 49 2 active sync /dev/sdd1 3 8 18 3 active sync /dev/sde1
2.创建配置文件 mdadm.conf mdamd 的配置文件为“/etc/mdadm.conf”,该文件只是用来方便用户管理和使用,缺少 此文件并不会影响磁盘阵列的功能。在配置文件中可以保存多个磁盘阵列的配置信息。配置文 件中的基本信息可以通过前面讲过的“mdadm -vDs”命令获得。 [root@localhost ~]# vi /etc/mdadm.conf DEVICE /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 ARRAY /dev/md0 level=raid5 num-devices=4 UUID=35bcffa1:cdc5ba41:0c5b5702:e32a3259 devices=/dev/sdb1,/dev/sdc1,/dev/sdd1,/dev/sde1 CREATE owner=root group=root mode=0640 在上述文件中, “ARRAY”、“UUID” “devices”部分是位于同一行中的内容,最后一 行中的“CREATE”用于设置自动创建阵列设备文件的属主、属组及默认权限。关于mdadm.conf 配置文件中更多配置项的使用,可以参考“man mdadm.conf”帮助信息。 3.启动/停止RAID阵列 在确保没有相关程序读写磁盘阵列设备的情况下,可以停止阵列设备。只需使用 mdadm 命令结合“-S”选项(等同于“--stop”选项)即可。执行该操作将会禁用对应的阵列设备, 释放相关资源。 [root@localhost ~]# mdadm -S /dev/md0 mdadm: stopped /dev/md0 结合“-A”选项(等同于“--assemble”选项)可以重新组合对应的磁盘阵列设备。 [root@localhost ~]# mdadm -A /dev/md0 mdadm: /dev/md0 has been started with 4 drives. [root@localhost ~]# mount /dev/md0 /mdata/
设备恢复操作 1.模拟阵列设备故障 对于运行中的磁盘阵列,可以结合 mdadm 命令的“-f”选项(等同于“”选项)用于模 拟成员设备故障,例如可将阵列中的“/dev/sdb1”标记为故障设备。 [root@localhost ~]# mdadm /dev/md0 -f /dev/sde1 mdadm: set /dev/sde1 faulty in /dev/md0 当阵列中的某个成员设备出现故障时,阵列会将其标记为失活状态。此时通过“cat /proc/mdstat”可以观察到丢失出现故障的设备(/dev/sde1)。 [root@localhost ~]# cat /proc/mdstat Personalities : [raid6] [raid5] [raid4] md0 : active raid5 sde1[3](F) sdd1[2] sdc1[1] sdb1[0] 6024000 blocks level 5, 64k chunk, algorithm 2 [4/3] [UUU_]
2.更换故障设备,并恢复数据 对于出现故障的设备,可以结合“-r”选项将其移除,然后换上正常的设备,结合“-a” 选项重新添加到阵列中即可。 [root@localhost ~]# mdadm /dev/md0 -r /dev/sde1 mdadm: hot removed /dev/sde1 //移除故障设备 [root@localhost ~]# mdadm /dev/md0 -a /dev/sde1 mdadm: re-added /dev/sde1 //重新加入正常设备 RAID5 磁盘阵列能够在较短时间内进行重构和数据恢复,当需要恢复的数据较多时,可 以在此期间观察到阵列状态的恢复进度。 [root@localhost ~]# cat /proc/mdstat Personalities : [raid6] [raid5] [raid4] md0 : active raid5 sde1[3] sdd1[2] sdc1[1] sdb1[0] 6024000 blocks level 5, 64k chunk, algorithm 2 [4/3] [UUU_] [===>.................] recovery = 16.3% (328192/2008000) finish=2.6min speed=10586K/sec unused devices: <none> 待数据恢复完成以后,再次查看阵列状态即显示为正常了。 [root@localhost ~]# cat /proc/mdstat Personalities : [raid6] [raid5] [raid4] md0 : active raid5 sde1[3] sdd1[2] sdc1[1] sdb1[0] 6024000 blocks level 5, 64k chunk, algorithm 2 [4/4] [UUUU] unused devices: <none> (责任编辑:IT) |