Raid的学习和基础知识(2)
/dev/sdd1 1 204 208880 fd Linux raid autodetect
看到上面三个磁盘上分别建了一个分区,分区大小都一样;
4.1.2 创建RAID 5;
创建完/dev/sdb1、/dev/sdc1、/dev/sdd1、/dev/sde1四个分区后,下面就可以来创建RAID 5了,其中设定/dev/sde1作为备用设备,其余为活动设备,备用设备的作用是一旦某一设备损坏可以立即使用备用设备替换。操作命令如下:
mdadm: array /dev/md0 started.
其中“--spare-devices=1”表示当前阵列中备用设备只有一块,即作为备用设备的“/dev/sde1”,若有多块备用设备,则将 “--spare-devices”的值设置为相应的数目。成功创建完成RAID设备后,通过如下命令可以查看到RAID的详细信息:
root@xiaop-laptop:/# mdadm --detail /dev/md0
/dev/md0:
Version : 00.90.01
Creation Time : Mon Jan 22 10:55:49 2007
Raid Level : raid5
Array Size : 208640 (203.75 MiB 213.65 MB)
Device Size : 104320 (101.88 MiB 106.82 MB)
Raid Devices : 3
Total Devices : 4
Preferred Minor : 0
Persistence : Superblock is persistent
Update Time : Mon Jan 22 10:55:52 2007
State : clean
Active Devices : 3
Working Devices : 4
Failed Devices : 0
Spare Devices : 1
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
3 8 65 -1 spare /dev/sde1
UUID : b372436a:6ba09b3d:2c80612c:efe19d75
Events : 0.6
4.1.3 创建RAID的配置文件;
RAID的配置文件名为“mdadm.conf”,默认是不存在的,所以需要手工创建,该配置文件存在的主要作用是系统启动的时候能够自动加载软 RAID,同时也方便日后管理。“mdadm.conf”文件内容包括:由DEVICE选项指定用于软RAID的所有设备,和ARRAY选项所指定阵列的 设备名、RAID级别、阵列中活动设备的数目以及设备的UUID号。生成RAID配置文件操做如下:
但是当前生成“mdadm.conf”文件的内容并不符合所规定的格式,所以也是不生效的,这时需要手工修改该文件内容为如下格式:
root@xiaop-laptop:/# vi /etc/mdadm.conf
DEVICE /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
ARRAY /dev/md0 level=raid5 num-devices=3 UUID=b372436a:6ba09b3d:2c80612c:efe19d75
如果没有创建RAID的配置文件,那么在每次系统启动后,需要手工加载软RAID才能使用,手工加载软RAID的命令是:
root@xiaop-laptop:/# mdadm --assemble /dev/md0 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
mdadm: /dev/md0 has been started with 3 drives and 1 spare.
4.1.4 创建文件系统;
接下来就只需要在RAID设备上创建文件系统就可使用了,在RAID设备上创建文件系统和在分区或磁盘上创建文件系统的方法一样。在设备“/dev/md0”上创建ext3的文件系统命令如下:
创建完文件系统后,将该设备挂载上就可正常的使用了。如果要创建其它级别的RAID,其步骤和创建RAID 5基本都一样,区别在于指定“--level”值的时候,需要将该值设置为相应的级别。
4.2 维护软RAID;
软RAID虽然很大程度上能保证数据的可靠性,但是在日常的工作中,有时可能需要对RAID进行调整以及不排除RAID设备物理介质损坏的可能等相关问题
,当遇到这些情况时,那么同样可以通过“mdadm”命令来完成这些操作。下面也将通过一个实例来介绍更换RAID故障磁盘的完整过程。
4.2.1 模拟故障磁盘;
【实例2】
以前面的【实例1】为基础,假定其中的“/dev/sdc1”设备出现故障时,更换一个新的磁盘,整个过程的详细说明如下:
在实际中,当软RAID检测到某个磁盘有故障时,会自动标记该磁盘为故障磁盘,并停止对故障磁盘的读写操作,所以这里需要将/dev/sdc1标记为出现故障的磁盘,命令如下:
mdadm: set /dev/sdc1 faulty in /dev/md0
由于【实例1】中的RAID 5设置了一个备用设备,所以当有标记为故障磁盘的时候,备用磁盘会自动顶替故障磁盘工作,阵列也能够在短时间内实现重建。通过“/proc/mdstat”文件可查看到当前阵列的状态,如下:
root@xiaop-laptop:/# cat /proc/mdstatPersonalities : [raid5]
md0 : active raid5 sde1[3] sdb1[0] sdd1[2] sdc1[4](F)
208640 blocks level 5, 64k chunk, algorithm 2 [3/2] [U_U]
[=====>...............] recovery = 26.4% (28416/104320) finish=0.0min speed=28416K/sec
unused devices: <none>
以上信息表明阵列正在重建,当一个设备出现故障或被标记故障时,相应设备的方括号后将被标以(F),如“sdc1[4](F)”,其中“[3/2]”的第 一位数表示阵列所包含的设备数,第二位数表示活动的设备数,因为目前有一个故障设备,所以第二位数为2;这时的阵列以降级模式运行,虽然该阵列仍然可用, 但是不具有数据冗余;而“[U_U]”表示当前阵列可以正常使用的设备是/dev/sdb1和/dev/sdd1,如果是设备“/dev/sdb1”出现 故障时,则将变成[_UU]。
重建完数据后,再次查看阵列状态时,就会发现当前的RAID设备又恢复了正常,如下:
root@xiaop-laptop:/# cat /proc/mdstatPersonalities : [raid5]
md0 : active raid5 sde1[1] sdb1[0] sdd1[2] sdc1[3](F)
208640 blocks level 5, 64k chunk, algorithm 2 [3/3] [UUU]
unused devices: <none>
4.2.2 移除故障磁盘;
既然“/dev/sdc1”出现了故障,当然要移除该设备,移除故障磁盘的操作如下:
mdadm: hot removed /dev/sdc1
其中“—remove”表示移除指定RAID设备中的某个磁盘,也可用“-r”来代替该参数。
4.2.3 添加新硬盘;
在添加新的硬盘前,同样需要对新硬盘进行创建分区的操作,例如,添加新硬盘的设备名为“/dev/sdc1”,则具体操作如下:
mdadm: hot added /dev/sdc1
其中“--add”与前面的“--remove”其义刚好相反,用于将某个磁盘添加到指定的设备中,也可用“-a”代替该参数。
由于【实例1】中的RAID 5设置了一个备用设备,所以不需要做任何操作RAID 5也能正常运行,但是如果这时某块磁盘再出现故障的话,会导致RAID 5没有数据冗余功能,这对于存放重要的数据的设备来说显得太不安全了。那么这时增加到RAID 5中的“/dev/sdc1”则作为备用设备出现在阵列中,如下:
root@xiaop-laptop:/# mdadm --detail /dev/md0/dev/md0:
……
……
Number Major Minor RaidDevice State
0 8 17 0 active sync /dev/sdb1
1 8 65 1 active sync /dev/sde1
2 8 49 2 active sync /dev/sdd1
3 8 33 -1 spare /dev/sdc1
UUID : b372436a:6ba09b3d:2c80612c:efe19d75
Events : 0.133
- 最新评论