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的主分区
[[email protected]~]# fdisk /dev/sdb #进入给其分两个主分区
n
p //创建主分区
1 //主分区为sdb1
+1G //给其空间为1G
[[email protected] ~]# 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
[[email protected] ~]# ls /dev/sdb*
/dev/sdb /dev/sdb1 /dev/sdb2
##用两种方式查看,可以清楚的看到/dev下有三个分区
2:创建RAID0
[[email protected] ~]# 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开始运行,说明创建成功
[[email protected] ~]# mdadm –Ds #对刚创建的阵列进行扫描,阵列名为 /dev/md0
ARRAY /dev/md0metadata=1.2 name=localhost.localdomain:0 UUID=0293bd32:6821c095:686fd2b9:0471cbab
[[email protected]~]# 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
[[email protected]~]# mdadm -Ds > /etc/mdadm.conf #生成raid配置文件指向 > /etc/mdadm.conf
[[email protected] ~]# cat !$ #查看生成的配置文件
cat /etc/mdadm.conf
ARRAY /dev/md0 metadata=1.2name=localhost.localdomain:0 UUID=0293bd32:6821c095:686fd2b9:0471cbab
[[email protected] ~]# fdisk /dev/md0 #对阵列进行分区
[[email protected] ~]# 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)进行格式化
[[email protected] ~]# mkfs.ext4 /dev/md0p1
正在写入inode表: 完成
Creating journal (16384 blocks): 完成
Writing superblocks and filesystemaccounting information: 完成
创建目录并挂载
[[email protected] ~]# mkdir /raid0 #创建一个与Raid0同的的文件目录
[[email protected] ~]# mount /dev/md0p1 /raid0 #/dev/md0p1挂载到/raid0下
实现开机挂载
[[email protected] ~]# vim /etc/fstab
/dev/md0p1 /raid0 /ext4 defaults 0 0
保存
查看挂载
[email protected] ~]# 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:创建分区并查看
[[email protected] ~]# fdisk /dev/sdc #创建分区
[[email protected] ~]# 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
[[email protected] ~]# 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.
[[email protected] ~]# ll /dev/md1 #查看阵列md1
brw-rw----. 1 root disk 9, 1 6月 28 20:56 /dev/md1
[[email protected] ~]# 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
[[email protected] ~]# mdadm -Ds > /etc/mdadm.conf #对生成文件进行指定
[[email protected] ~]# 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
对其进行分区,验证和格式化
[[email protected] ~]#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
[[email protected] ~]# 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下。
[[email protected] ~]# mkfs.ext4 /dev/md1p1 #格式化
正在写入inode表: 完成
Creating journal (8192 blocks): 完成
Writing superblocks and filesystemaccounting information: 完成
创建目录并挂载
[[email protected] ~]# mkdir /raid1 #创建目录
[[email protected] ~]# mount /dev/md1p1 /raid1#将其挂载在raid1目录下
[[email protected] ~]# 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下了
[[email protected] ~]# 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:模拟故障
[[email protected] ~]# 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挂掉
[[email protected] ~]# 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)了,他它直接顶替了刚才的那块运行是被的硬盘了。
[[email protected]~]# mdadm -r /dev/md1 /dev/sdc1
将出现故障的盘进行移除
mdadm: hot removed /dev/sdc1 from /dev/md1 #意思是/dev/sdc1从/dev/md1里面移除
查看
[[email protected] ~]# 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了
注:在移除之后需要重新生成以下文件,防止以后出现问题。
[[email protected] ~]# mdadm -Ds >/etc/mdadm.conf #对文件进行配置生成
[[email protected] ~]# 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)热备份也没有的.
3):配置RAID5
1:环境:
sde1,sde2,sde3,sde5,sde6 个主分区 每个1G
2:步骤:
1):停止阵列,重新激活阵列
2):移除故障盘
3):停止阵列,重新激活阵列
实战:
再添加新的1G热备盘,扩展阵列容量,从3磁盘个扩展到4个
注:2)和3)不做
3:实验步骤
1:对sde进行分区 1.2.3为主分区 4为扩展分区,5和6为逻辑分区
[[email protected] ~]# fdisk /dev/sde
[[email protected] ~]# ll /dev/sde*
brw-rw----. 1 root disk 8, 64 6月 29 11:27 /dev/sde
brw-rw----. 1 root disk 8, 65 6月 29 11:27 /dev/sde1
brw-rw----. 1 root disk 8, 66 6月 29 11:27 /dev/sde2
brw-rw----. 1 root disk 8, 67 6月 29 11:27 /dev/sde3
brw-rw----. 1 root disk 8, 68 6月 29 11:27 /dev/sde4
brw-rw----. 1 root disk 8, 69 6月 29 11:27 /dev/sde5
brw-rw----. 1 root disk 8, 70 6月 29 11:27 /dev/sde6
2:创建RAID5
[email protected] ~]# mdadm -C -v/dev/md5 -l 5 -n 3 -c 32 -x 1 /dev/sde{1,2,3,5} #1.2.3主 5是备份硬盘
mdadm: size set to 1059202K
Continue creating array? y
查看正在运行的进程
[[email protected] ~]# cat /proc/mdstat
Personalities : [raid1] [raid0] [raid6][raid5] [raid4]
md5 : active raid5 sde3[4]sde5[3](S) sde2[1] sde1[0]
2118400 blocks super 1.2 level 5, 32k chunk, algorithm 2 [3/3] [UUU]
3:生成配置文件
[[email protected] ~]# mdadm -Ds > /etc/mdadm.conf
[[email protected] ~]# cat !$
cat /etc/mdadm.conf
ARRAY/dev/md5metadata=1.2 spares=1 name=localhost.localdomain:5UUID=8475aa39:504c7c9c:71271abd:49392980
4:将md5停止并且验证
[[email protected] ~]# mdadm -S /dev/md5
mdadm: stopped /dev/md5
[[email protected] ~]# cat /proc/mdstat
Personalities : [raid1] [raid0] [raid6][raid5] [raid4]
md0 : active raid0 sdb1[0] sdb2[1]
2117632 blocks super 1.2 512k chunks
md1 : active raid1 sdc2[1] sdc3[2]
1059222 blocks super 1.2 [2/2] [UU]
#这个时候md5已经被停止运行了,故而这里不会出现md5
5:将md5激活
[[email protected] ~]# mdadm -A /dev/md5
mdadm: /dev/md5 has been started with 3drives and 1 spare.
[[email protected] ~]# cat /proc/mdstat #查看运行的进程
Personalities : [raid6] [raid5] [raid4]
md5 : active raid5 sde1[0] sde5[3](S)sde3[4] sde2[1]
2118400 blocks super 1.2 level 5, 32k chunk, algorithm 2 [3/3] [UUU]
#这个时候我们可以看到md5已经被激活了
6:给md5分区
[[email protected] ~]# fdisk/dev/md5
Command(m for help): p
Command(m for help): n
p
Partitionnumber (1-4): 1
Firstcylinder (1-529600, default 17):
Lastcylinder, +cylinders or +size{K,M,G} (17-529600, default 529600):
Command(m for help): w
查看验证
[[email protected]~]# ll /dev/md5*
brw-rw----1 root disk 9, 5 Jul 2 23:03 /dev/md5
brw-rw---- 1 root disk 259, 0 Jul 2 23:03 /dev/md5p1
7:对新分的区进行格式化
[[email protected] ~]# mkfs.ext4/dev/md5p1
Writinginode tables: done
Creatingjournal (16384 blocks): done
Writingsuperblocks and filesystem accounting information: done
8:将md5中创建的新分区进行挂载
[[email protected]~]# mkdir /raid5
[[email protected]~]# mount /dev/md5p1 /raid5
[[email protected]~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 9.7G 3.9G 5.3G 42% /
tmpfs 996M 264K 996M 1% /dev/shm
/dev/sda1 2.0G 57M 1.8G 4% /boot
/dev/sr0 3.4G 3.4G 0 100% /media/RHEL_6.2 x86_64 Disc 1
/dev/md5p1 2.0G 68M 1.9G 4% /raid5
实战:
再添加新的1G热备盘,扩展阵列容量,从3磁盘个扩展到4个
现在用四块硬盘做Raid5---则需要加一块硬盘
9:添加一块新的硬盘sde6
[[email protected] ~]# umount /raid5 #在添加之前,必须要先进行卸载
[[email protected] ~]# cat /proc/mdstat #查看进程
Personalities : [raid6] [raid5] [raid4]
md5 : active raid5 sde1[0] sde5[3](S)sde3[4] sde2[1]
2118400 blocks super 1.2 level 5, 32k chunk, algorithm 2 [3/3] [UUU]
这是添加之前,这里并没有sde6硬盘。
[[email protected] ~]# mdadm -a /dev/md5/dev/sde6 #意思是指向md5中添加一块新的硬盘sde6
mdadm: added /dev/sde6 #添加成功
[[email protected] ~]# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md5 : active raid5 sde6[5](S)sde1[0] sde5[3](S) sde3[4] sde2[1]
2118400 blocks super 1.2 level 5, 32k chunk, algorithm 2 [3/3] [UUU]
这是添加之后看到了sde6已经加进去了
10:扩展raid5阵列到4快硬盘
[[email protected] ~]# mdadm -G /dev/md5 -n 4 #“n”表示number,数量。刚创建的 时候指向的是3,现在我们指向4,表示有4快硬盘。
mdadm: Need to backup 192K of criticalsection..
#对其进行扩展,n本来是等于3现在n是等于4 这就是扩展
[[email protected]~]# mdadm -Ds > /etc/mdadm.conf #生成配置文件
[[email protected]~]# cat /proc/mdstat
Personalities: [raid6] [raid5] [raid4]
md5: active raid5 sde6[5] sde3[4] sde5[3](S) sde2[1] sde1[0]
2118400 blocks super 1.2 level 5, 32kchunk, algorithm 2 [4/4] [UUUU]
[>....................] reshape = 3.8% (40704/1059200) finish=7.1min speed=2388K/sec
#这里的进度条,表示添加的过程。
[[email protected]~]# watch -n 1 cat /proc/mdstat #这里要想看到动态的生成文件加下命令
[[email protected]~]# mdadm -Ds > /etc/mdadm.conf
[[email protected]~]# cat !$
cat/etc/mdadm.conf
ARRAY/dev/md5 metadata=1.2 spares=1 name=laoyu:5UUID=5dfd47d2:a7dda97b:1499e9e7:b950b8ca
--------------------------------------------------------------------------------------------------------------------------------- [email protected] ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 9.7G 3.9G 5.3G 42% /
tmpfs 996M 264K 996M 1% /dev/shm
/dev/sda1 2.0G 57M 1.8G 4% /boot
/dev/sr0 3.4G 3.4G 0 100% /media/RHEL_6.2 x86_64 Disc 1
/dev/md5p1 2.0G 68M 1.9G 4% /raid5
这个时候我们看到md5p1的容量任然是2G。
问题
明明添加了一块硬盘来扩容,为什么但是查询容量还是原来的容量呢?
答:文件系统不支持动态扩容的。只能使用新添加的硬盘,再做一个分区。
4):配置raid10
1:方法:
先创建raid1,再使用创建的raid1设备创建raid0
2:环境:
Raid1
Raid0
3:实验步骤
1:创建4个主分区
[[email protected] ~]# fdisk /dev/sdf
[[email protected] ~]# ls /dev/sdf*
/dev/sdf /dev/sdf1 /dev/sdf2 /dev/sdf3 /dev/sdf4
2先创建两个底层RAID1-à>>两个阵列md11和md12..这是在Raid1下创建的
[[email protected] ~]# mdadm -C -v /dev/md11 -l 1-n 2 /dev/sdf{1,2}
[[email protected] ~]# mdadm -C -v /dev/md12 -l 1-n 2 /dev/sdf{3,4}
3创建上层RAID0,创建整列md10
[[email protected] ~]#mdadm -C -v /dev/md10 -l 0 -n 2 /dev/md{11,12} #这是在raid0下创建的
mdadm:array /dev/md10 started.
[[email protected] ~]# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4][raid1] [raid0]
md10 : active raid0 md12[1] md11[0] #md10中有md12和md11---》》这是raid0
2115584 blocks super 1.2 512k chunks
md12 : active raid1sdf4[1] sdf3[0] #md12中有sdf3和sdf4-----》》这是raid1
1059254 blocks super 1.2 [2/2] [UU]
md11 : active raid1 sdf2[1] sdf1[0] #md11中有sdf1和sdf2----》》这是raid1
1059222 blocks super 1.2 [2/2] [UU]
[[email protected]~]# mdadm -Ds > /etc/mdadm.conf #生成配置文件
[[email protected]~]# cat !$
cat/etc/mdadm.conf
ARRAY/dev/md5 metadata=1.2 spares=1 name=laoyu:5UUID=5dfd47d2:a7dda97b:1499e9e7:b950b8ca
ARRAY/dev/md11 metadata=1.2 name=laoyu:11 UUID=046f9eb3:089b059e:f1166314:bece05da
ARRAY/dev/md12 metadata=1.2 name=laoyu:12 UUID=5c948c81:8cefadd6:08486120:ae771a6d
ARRAY/dev/md10 metadata=1.2 name=laoyu:10 UUID=b61c6f65:85ecaffb:2cb12f1f:d76bf506
附录
批量停止---大写的S是停止,小写s是扫描
[[email protected] ~]# mdadm -Ss
mdadm: stopped /dev/md10
mdadm: stopped /dev/md12
mdadm: stopped /dev/md11
mdadm: stopped /dev/md5
#在停止之前,要将所有的raid都卸载,不能挂载。
那么批量激活就是-As
[[email protected] ~]# mdadm -As
mdadm: /dev/md5 has been started with 3drives and 1 spare.
mdadm: /dev/md11 has been started with 2drives.
mdadm: /dev/md12 has been started with 2drives.
mdadm: /dev/md10 has been started with 2drives.
5):RAID的删除----要删除它的配置文件的
步骤
1:卸载已经挂载的raid
2:停止设备
3: 删除配置文件
4:清除物理磁盘中的raid标识
举例
创建raid:
[[email protected] ~]#fdisk /dev/sda # sda5和sda6分区自己创建一下
[[email protected] ~]#mdadm -C /dev/md1 -l 1 -n 2/dev/sda5 /dev/sda6 #创建raid
[[email protected] ~]#mdadm -Ds > /etc/mdadm.conf #生成配置文件。
开始删除:
[[email protected] ~]#umount /dev/md1 /mnt #如果,你已经挂载raid,就先卸载。
[[email protected] ~]#mdadm –Ss #停止raid设备
[[email protected] ~]#rm -rf /etc/mdadm.conf #删除raid配置文件
[[email protected] ~]#mdadm --misc --zero-superblock /dev/sda{5,6} #清除物理磁盘中的raid标识
四:实验结束
目的:在Red Hat Linux
V6.1操作系统环境下建立软RAID盘,实现磁盘阵列功能。
方法:采用Raidtools的一系列工具Mkraid、Raid0run、Raiddstop、Raidstart等实现RAID功能。
结果:解决了无配置RAID卡的PC机安装运行Linux操作系统的安全问题。
结论:既有效降低了医院局域网络服务器的投资成本,又保证了理想的网络服务功能。