Linux下的RAID配置和管理
一:实验环境
1):虚拟机
2):虚拟机上配置lingux系统
3):利用linux系统实现Raid的配置
4):在虚拟机中加入6快硬盘
二:实验目标
1):熟练掌握几种常用的Raid
2):对于Raid0 Raid1和Raid5三种Raid要熟练掌握配置命令
3):理解几种常用Raid的区别与用处
4):对几种不常用的Raid要做认识
5):理解并记住各Raid的实验要求
三:实验步骤
1):配置raid0
1:环境:
添加一个sdb硬盘,分两个1G的主分区。sdb1和sdb2
2:步骤
给sdb硬盘创建两个1G的主分区
创建RAID0
导出阵列配置文件
格式化并挂载到指定目录
修改/etc/fstab永久挂载
3:实验步骤
1):给sdb硬盘创建两个1G的主分区
[root@xuegod63~]# fdisk /dev/sdb #进入给其分两个主分区
n
p //创建主分区
1 //主分区为sdb1
+1G //给其空间为1G
[root@localhost ~]# ll /dev/sdb* #查看分区,“*”代表sdb后的所有分区。
brw-rw----. 1 root disk 8, 16 6月 28 20:13 /dev/sdb
brw-rw----. 1 root disk 8, 17 6月 28 20:13 /dev/sdb1
brw-rw----. 1 root disk 8, 18 6月 28 20:13 /dev/sdb2
[root@localhost ~]# ls /dev/sdb*
/dev/sdb /dev/sdb1 /dev/sdb2
##用两种方式查看,可以清楚的看到/dev下有三个分区
2:创建RAID0
[root@localhost ~]# mdadm -C -v /dev/md0 -l0 -n 2 /dev/sdb1 /dev/sdb2
#创建一个名字为md0的阵列, 等级为0 有两块硬盘 1:/dev/sdb1 2: /dev/sdb2
mdadm: chunk size defaults to 512K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started. //创建的阵列md0开始运行,说明创建成功
[root@localhost ~]# mdadm –Ds #对刚创建的阵列进行扫描,阵列名为 /dev/md0
ARRAY /dev/md0metadata=1.2 name=localhost.localdomain:0 UUID=0293bd32:6821c095:686fd2b9:0471cbab
[root@localhost~]# mdadm -D /dev/md0 #查看阵列的具体信息
Number Major Minor RaidDevice State
0 8 17 0 active sync /dev/sdb1
1 8 18 1 active sync /dev/sdb2
[root@localhost~]# mdadm -Ds > /etc/mdadm.conf #生成raid配置文件指向 > /etc/mdadm.conf
[root@localhost ~]# cat !$ #查看生成的配置文件
cat /etc/mdadm.conf
ARRAY /dev/md0 metadata=1.2name=localhost.localdomain:0 UUID=0293bd32:6821c095:686fd2b9:0471cbab
[root@localhost ~]# fdisk /dev/md0 #对阵列进行分区
[root@localhost ~]# ll /dev/md0* #进行分区
brw-rw----. 1 root disk 9, 0 6月 28 20:32 /dev/md0
brw-rw----. 1 root disk 259, 0 6月 28 20:32 /dev/md0p1 #红色处,即为新分出的区
3:格式化并挂载到指定目录
对刚分的新区(/dev/md0p1)进行格式化
[root@localhost ~]# mkfs.ext4 /dev/md0p1
正在写入inode表: 完成
Creating journal (16384 blocks): 完成
Writing superblocks and filesystemaccounting information: 完成
创建目录并挂载
[root@localhost ~]# mkdir /raid0 #创建一个与Raid0同的的文件目录
[root@localhost ~]# mount /dev/md0p1 /raid0 #/dev/md0p1挂载到/raid0下
实现开机挂载
[root@localhost ~]# vim /etc/fstab
/dev/md0p1 /raid0 /ext4 defaults 0 0
保存
查看挂载
root@localhost ~]# df -h
文件系统 容量 已用 可用 已用%% 挂载点
/dev/sda2 9.7G 3.2G 6.1G 35% /
tmpfs 1000M 264K 1000M 1% /dev/shm
/dev/sda1 194M 28M 157M 15% /boot
/dev/md0p1 2.0G 68M 1.9G 4% /raid0
挂载成功
Raid0创建成功
2):配置RAID1
1:环境:
创建分区:sdc1,sdc2,sdc3 大小为1G:2:
2:步骤
创建RAID1
添加1G热备盘
模拟磁盘故障,自动顶替故障盘
卸载阵列
3:实验步骤
1:创建分区并查看
[root@localhost ~]# fdisk /dev/sdc #创建分区
[root@localhost ~]# ll /dev/sdc* #查看所分的四个区
brw-rw----. 1 root disk 8, 32 6月 28 20:46 /dev/sdc
brw-rw----. 1 root disk 8, 33 6月 28 20:46 /dev/sdc1
brw-rw----. 1 root disk 8, 34 6月 28 20:46 /dev/sdc2
brw-rw----. 1 root disk 8, 35 6月 28 20:46 /dev/sdc3
2:创建Raid1
[root@localhost ~]# mdadm-C -v /dev/md1 -l 1 -n 2 -x 1 /dev/sdc1 /dev/sdc2 /dev/sdc3
#创建一个名字为md1的阵列, 等级为1有3块硬盘 1:/dev/sdc1 2和3
mdadm: size set to 1059222K
Continue creating array? Y # 选择Y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md1 started.
[root@localhost ~]# ll /dev/md1 #查看阵列md1
brw-rw----. 1 root disk 9, 1 6月 28 20:56 /dev/md1
[root@localhost ~]# cat /proc/mdstat #创建的md0和md1都在运行
Personalities : [raid0] [raid1]
md1 : active raid1 sdc3[2](S)sdc2[1] sdc1[0]
1059222 blocks super 1.2 [2/2] [UU]
md0 : active raid0 sdb2[1]sdb1[0]
2117632 blocks super 1.2 512k chunks
[root@localhost ~]# mdadm -Ds > /etc/mdadm.conf #对生成文件进行指定
[root@localhost ~]# cat !$
cat /etc/mdadm.conf
ARRAY /dev/md0 metadata=1.2name=localhost.localdomain:0 UUID=0293bd32:6821c095:686fd2b9:0471cbab
ARRAY /dev/md1 metadata=1.2 spares=1name=localhost.localdomain:1 UUID=f7c34545:ecab8452:d826598e:e68c64f3
对其进行分区,验证和格式化
[root@localhost ~]#fdisk /dev/md1 #分区
p
Partition number (1-4): 1
First cylinder (1-264805, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G}(1-264805, default 264805):
Using default value 264805
Command (m for help): w
[root@localhost ~]# ll /dev/md1* #验证
brw-rw----. 1 root disk 9, 1 6月 28 21:13 /dev/md1
brw-rw----. 1 root disk 259, 1 6月 28 21:13 /dev/md1p1
#对于md1阵列的分区,会自动分出md1p1的区,在md1下。
[root@localhost ~]# mkfs.ext4 /dev/md1p1 #格式化
正在写入inode表: 完成
Creating journal (8192 blocks): 完成
Writing superblocks and filesystemaccounting information: 完成
创建目录并挂载
[root@localhost ~]# mkdir /raid1 #创建目录
[root@localhost ~]# mount /dev/md1p1 /raid1#将其挂载在raid1目录下
[root@localhost ~]# df –h #查看已经挂载的
文件系统 容量 已用 可用 已用%% 挂载点
/dev/sda2 9.7G 3.2G 6.1G 35% /
tmpfs 1000M 288K 1000M 1% /dev/shm
/dev/sda1 194M 28M 157M 15% /boot
/dev/md0p1 2.0G 68M 1.9G 4% /raid0
/dev/md1p1 1019M 34M 934M 4% /raid1
#我们看到我md1p1已经挂载到raid1下了
[root@localhost ~]# cat /proc/mdstat #验证查看下正在运行的进程
Personalities : [raid0] [raid1]
md1 : active raid1 sdc3[2](S) sdc2[1]sdc1[0]
1059222 blocks super 1.2 [2/2] [UU]
3:模拟故障
[root@localhost ~]# vim /etc/mdadm.conf
ARRAY /dev/md1 metadata=1.2 spares=1name=localhost.localdomain:1 UUID=f7c34545:ecab8452:d826598e:e68c64f3
空闲-spares –备用的硬盘
没有出故障前
Every 1.0s: cat /proc/mdstat Sun Jun 28 21:41:432015
Personalities : [raid0] [raid1]
md1 : active raid1 sdc3[2](s) sdc2[1] sdc1[0]
1059222 blocks super 1.2 [2/2] [UU]
#这里我们可以清楚的看到md1阵列是在正常运行的。sdc3[2](s)这一块一热备盘,用来做备份的
让/dev/md1 下的/dev/sdc1挂掉
[root@localhost ~]# mdadm -f /dev/md1 /dev/sdc1
mdadm: set /dev/sdc1 faulty in /dev/md1
处故障后
Every 1.0s: cat /proc/mdstat Sun Jun 28 21:44:15 2015
Personalities : [raid0] [raid1]
md1 : active raid1 sdc3[2] sdc2[1] sdc1[0](F)
1059222 blocks super 1.2 [2/2] [UU]
这个时候,我们可以看到sdc1[0]后面有个(F) 这就表示此盘运行失败,而我们又看到刚才的热备盘sdc3[2](s)现在后面一句没有(S)了,他它直接顶替了刚才的那块运行是被的硬盘了。
[root@localhost~]# mdadm -r /dev/md1 /dev/sdc1
将出现故障的盘进行移除
mdadm: hot removed /dev/sdc1 from /dev/md1 #意思是/dev/sdc1从/dev/md1里面移除
查看
[root@localhost ~]# watch -n 1 cat/proc/mdstat
Every 1.0s: cat /proc/mdstat Sun Jun 28 21:50:15 2015
Personalities : [raid0] [raid1]
md1 : active raid1 sdc3[2] sdc2[1]
1059222 blocks super 1.2 [2/2] [UU]
这里不再出现有故障的sdc1了
注:在移除之后需要重新生成以下文件,防止以后出现问题。
[root@localhost ~]# mdadm -Ds >/etc/mdadm.conf #对文件进行配置生成
[root@localhost ~]# cat !$
cat /etc/mdadm.conf
ARRAY /dev/md0 metadata=1.2name=localhost.localdomain:0 UUID=0293bd32:6821c095:686fd2b9:0471cbab
ARRAY /dev/md1 metadata=1.2name=localhost.localdomain:1 UUID=f7c34545:ecab8452:d826598e:e68c64f3
/dev/md1这里的(spares=1)热备份也没有的.