- 论坛徽章:
- 0
|
mdadm是一个全新的raid管理工具,raidtools需要维护配置文件/etc/raidtab 太麻烦了!
下面就来看看使用 mdadm有多简单吧!
操作系统: RHEL4 updata2 或者CentOS4.2
要求:需要在三块硬盘上创建RAID5 并挂载到 /raid5disk 目录下!
先用fdisk -l 看一下三块磁盘的设备号,在这里就是 /dev/sdb 和 /dev/sdc 以及 /dev/sdd
1. 首先在三块硬盘上分别创建一个分区!
# fdisk /dev/sdb
Command (m for help): n 按n创建新分区
Command action
e extended
p primary partition (1-4) 输入p 选择创建主分区
Partition number (1-4): 输入 1 创建第一个主分区
First cylinder (1-204, default 1): 直接回车,选择分区开始柱面这里就从 1 开始
Last cylinder or +size or +sizeM or +sizeK (1-204, default 204): 也是直接回车,最后一个柱面!
我这里是204, 各人的硬盘大小不一样大,这里的值也不一样大!
这样就将硬盘1柱面到204柱面创建了第一个主分区!
Command (m for help): t 输入t 指定分区类型!
Selected partition 1
Hex code (type L to list codes): 可以直接输入fd,指定分区类型就为Linux raid auto 也可以输入l
看一下所有支持的分区类型! 我这里倒数第三个就是raid的分区类型代号为fd
Command (m for help): w 然后输入w写盘!
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
按照此步骤在另外的两块磁盘上做同样的操作! 全部做完后,运行 fdisk -l 应该可以看到如下信息!
Disk /dev/sdb: 214 MB, 214748160 bytes
64 heads, 32 sectors/track, 204 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Device Boot Start End Blocks Id System
/dev/sdb1 1 204 208880 fd Linux raid autodetect
Disk /dev/sdc: 214 MB, 214748160 bytes
64 heads, 32 sectors/track, 204 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Device Boot Start End Blocks Id System
/dev/sdc1 1 204 208880 fd Linux raid autodetect
Disk /dev/sdd: 214 MB, 214748160 bytes
64 heads, 32 sectors/track, 204 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Device Boot Start End Blocks Id System
/dev/sdd1 1 204 208880 fd Linux raid autodetect
看到上面三个磁盘上分别建了一个分区,分区大小都一样!
然后再运行
mdadm -C /dev/md0 -l5 -n3 /dev/sd[bcd]1 这里就在三个分区上创建了raid5 软件陈列,
新的分区设备号为md0
然后格式化一下md0分区
[root@localhost ~]# mkfs.ext3 /dev/md0
mke2fs 1.35 (28-Feb-2004)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
104448 inodes, 417536 blocks
20876 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=67633152
51 block groups
8192 blocks per group, 8192 fragments per group
2048 inodes per group
Superblock backups stored on blocks:
8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409
Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 29 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
根据分区大小一样,这里需要的时间也会不一样!
然后在
make /raid5disk 在/上建一个目录raid5disk
然后用mount 将md0挂上去!
mount /dev/md0 /raid5disk/
好了,试试到raiddisk目录建几个文件!
为了让系统重新启动后自动挂载,可以修改一下/etc/fstab文件,添加一行!
/dev/md0 /raid5disk auto defaults 0 0
这样系统重新启动后会自动将/dev/md0挂接到 /raid5disk目录下!
好了!一切OK!
再查看一下md0的状态!
[root@localhost ~]# mdadm -D /dev/md0
/dev/md0:
Version : 00.90.01
Creation Time : Tue Feb 28 22:10:41 2006
Raid Level : raid5
Array Size : 417536 (407.75 MiB 427.56 MB)
Device Size : 208768 (203.88 MiB 213.78 MB)
Raid Devices : 3
Total Devices : 3
Preferred Minor : 0
Persistence : Superblock is persistent
Update Time : Tue Feb 28 22:17:55 2006
State : clean
Active Devices : 3
Working Devices : 3
Failed Devices : 0
Spare Devices : 0
Layout : left-symmetric
Chunk Size : 64K
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
UUID : 70fc89c1:ef191858:784578eb:81603b8d
Events : 0.48
一切正常!
故障模拟
上面的实例,让我们对Redhat Linux AS 4的软件RAID功能有了一定的认识,并且通过详细的步骤说明了如何创建RAID5。有了RAID做保障,电脑里的数据看起来似乎已经很安全了,然而现有的情况还是不能让我们高枕无忧,想一想,万一磁盘出现故障怎么办?下面我们模拟一个更换RAID5故障磁盘的完整过程,希望以此丰富大家处理RAID5故障的经验,提高管理和维护水平。
我们仍然沿用上面的RAID5配置,首先往阵列中拷贝一些数据,接下来开始模拟/dev/sdb1设备故障。不过,对于无备份设备的RAID5的模拟过程也要经过如下三步,只是阵列重构和数据恢复是发生在新设备添加到阵列中之后,而不是设备损坏时。
1,# mdadm /dev/md0 -f /dev/sdb1 将/dev/sdb1标记为已损坏的设备
# more /proc/mdstat 查看当前阵列状态
Personalities : [raid5]
md0 : active raid5 sdd1[2] sde1[3] sdc1[1] sdb1[4](F)
75469842 blocks level 5, 128k chunk, algorithm 2 [3/2] [_UU]
[=>...................] recovery = 8.9% (3358407/37734912) finish=1.6min speed=9382K/sec
unused devices:
因为有备份设备,所以当阵列中出现设备损坏时,阵列能够在短时间内实现重构和数据的恢复。从当前的状态可以看出,阵列正在重构,且运行在降级模式,sdb1[4]的后面已经标上了(F),活动设备数也降为2个。
经过几分钟后,再次查看当前阵列状态。
# more /proc/mdstat
Personalities : [raid5]
md0 : active raid5 sdd1[2] sde1[0] sdc1[1] sdb1[3](F)
75469842 blocks level 5, 128k chunk, algorithm 2 [3/3] [UUU]
unused devices:
此时阵列重构已经完成,数据恢复完毕,原有的备份设备sde1成为了活动设备。
2.移除损坏的设备
# mdadm /dev/md0 -r /dev/sdb1
查看当前阵列的状态:
# more /proc/mdstat
Personalities : [raid5]
md0 : active raid5 sdd1[2] sde1[0] sdc1[1]
75469842 blocks level 5, 128k chunk, algorithm 2 [3/3] [UUU]
unused devices:
损坏的sdb1已经从阵列中移掉。
3.将新设备添加到阵列中
因为是模拟操作,可以通过下面的命令再次将/dev/sdb1添加到阵列中。如果是实际操作则要注意两点:一是在添加之前要对新磁盘进行正确的分区;二是添加时要用所添加设备的设备名替换/dev/sdb1。
# mdadm /dev/md0 -a /dev/sdb1
查看当前阵列的状态:
# more /proc/mdstat
Personalities : [raid5]
md0 : active raid5 sdb1[3] sdd1[2] sde1[0] sdc1[1]
75469842 blocks level 5, 128k chunk, algorithm 2 [3/3] [UUU]
unused devices:
这时sdb1作为备份设备再次出现在阵列中
常用阵列维护命令
1.启动阵列
# mdadm -As /dev/md0
该命令指启动/dev/md0阵列,其中“-A”指装载一个已存在的阵列;“-s”指查找mdadm.conf文件中的配置信息,并以此为依据启动阵列。
#mdadm -As
该命令指启动mdadm.conf文件中的所有阵列。
#mdadm -A /dev/md0 /dev/sd[b,c,d,e]1
如果没有创建mdadm.conf文件则可以采用上面这种启动方式。
2.停止阵列
# mdadm -S /dev/md0
3.显示指定阵列的详细信息
# mdadm -D /dev/md0
mdadm是个非常强大,非常棒的的工具,还有好多功能由于时间关系,以后再说!
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/13048/showart_248388.html |
|