Linux RAID5项目

(一)  实验任务及思路:

1) 构建基于4块磁盘的RAID 5磁盘阵列,有效空间为60G;

2) 在构建好的阵列上构建EXT 4文件系统并挂载到网站文档目录下;

3) 新建网站,先模拟1块磁盘故障,在Client端访问网站;再模拟2块磁盘故障,继续访问网站,观察两次访问结果,以检测RAID 5的工作性能。

(二)实验拓扑:

224520nvjsmmhszvzbszjl.png

(三)实验要求:

1)    Web为网站服务器,操作系统为64位的RHEL6.5,主机名为web.benet.com,网卡连接到VMnet1上,IP地址为192.168.1.100/24;

2)    该虚拟机上除系统盘之外,另外添加4块大小为30G的虚拟磁盘。

3)    准备好64位的RHEL6.5操作系统ISO镜像文件。

4)    Client主机为普通用户机,操作系统没有限制,网卡连接到VMnet1上,IP地址为192.168.1.200/24。

(四) 配置文件:

1.    Linux  web服务器和win客户机基本配置

[root@web /]#hostname  //查看主机名

224520q99wg8wee0ufyey0.png

[root@web /]#ifconfig eth0  //查看第一块网卡ip地址

224521rvwv3s9yxtv3amis.png

[root@web /]#netstat -anpt | grep 80 //查看web服务器工作状态

224521bpvj11gif34zf1pr.png

[root@web /]#service iptables stop  //关闭防火墙

[root@web /]#setenforce 0  //关闭安全linux

查看win客户机ip地址

224522gcap3af96aafiyf8.png

2.      做软raid5阵列并将其挂载到web服务器根目录:

224523ghhhhldt8occhoh5.png

[root@web /]#fdisk -l  //查看磁盘设备情况

224523ao5ocx030p0bz0ko.png


[root@web /]#mdadm -C /dev/md0 -a yes -l 5 -n 3 -x 1 /dev/sd[b-e]  //创建raid 5 ,用3块硬盘做raid 5阵列,1块做热备

[root@web /]# cat/proc/mdstat  //查看所有运行RAID5阵列的状态

224524hxk0stjpfj9fogff.png

[root@web /]#mdadm -D /dev/md0  //查看raid5状态

224524twzwjcuuyuqx5mmq.png

224525r1xm81rpwutmrm8b.png

由图可看出raid级别为raid5,阵列大小约60G/dev/sdb /dev/sdc  /dev/sdd 正组成raid5阵列,/dev/sde做热备

[root@web /]#mkfs.ext4 /dev/md0  //格式化RAID5,文件系统为ext4

[root@web /]# vi/etc/httpd/conf/httpd.conf  //查看web服务器配置文件,找web服务器网站根目录

224525xhyvccgephet28d4.png

[root@web /]#mount /dev/md0 /var/www/html/   //RAID 5阵列挂载到根目录

[root@web /]# df -h  //查看磁盘大小

224526i484j83majmq5m55.png

[root@web /]# ls/var/www/html/  //查看根目录里是空的

[root@web /]# vi/var/www/html/index.html  //在根目录中新建网页

224526mugiciuqctw2uv1w.png

224526zgfk423zxf0z04te.png

[root@web /]#service httpd restart  //重新启动web服务器

224527b9v6v9kyfkkapcvo.png

224528bilw8h1usw8vc1w0.png

在浏览器中访问web服务器,其是正常工作的

3.      模拟一块硬盘损毁(且有热备盘顶替)时,raid5阵列运行情况:

[root@web /]#mdadm /dev/md0 -f /dev/sdb  //模拟RAID5阵列中/dev/sdb 磁盘损坏

224528wqsqqmwvp7iqr773.png

[root@web /]# cat/proc/mdstat   

224529pw8ddmz028qgq6di.png

[root@web /]#mdadm -D /dev/md0

224529h6jh273q8mqda3j1.png

由图可看出/dev/sdb 磁盘损坏,/dev/sde顶替sdb加入raid5阵列

[root@web /]# df-h /dev/md0

224530nbs5s8evi2rjbi28.png

Raid5阵列大小还是60G

224530awdnnh4n9018nd4a.png

依然可以访问web服务器

[root@web /]#mdadm /dev/md0 -r /dev/sdb  ///dev/sdb 移除

224530weak3coh071xoc3q.png

[root@web/]#mdadm -D  /dev/md0

   224531yau68ezamplncaaa.png

[root@web /]#mdadm /dev/md0 -a /dev/sdb   ///dev/sdb加入阵列

224531m36v7frcbz61p6g7.png

[root@web /]#mdadm -D /dev/md0

224532raa990wruv9akbbh.png

/devsdb 成为热备

4.      模拟两块硬盘损毁(或损毁一块硬盘没有热备盘顶替)时,raid5阵列运行情况:

[root@web /]#mdadm /dev/md0 -f /dev/sdc  //模拟第一块硬盘/dev/sdc损坏

224532jkijixxz5q65xlxs.png

[root@web /]# cat/proc/mdstat

224532jo85g43o1c57z47c.png

[root@web /]#mdadm -D /dev/md0

224533t7k1edsxcz8bekdb.png

/dev/sdc 损坏,/dev/sdb 在重建raid5

[root@web /]# cat/proc/mdstat

224533g70z38xwxxxvzwjx.png

[root@web /]#mdadm -D /dev/md0

224534pkmsl93l3qfmqflz.png

数据恢复后,也就完成重建,/dev/sdb正处于工作状态

[root@web /]#mdadm /dev/md0 -f /dev/sdd  //模拟第二块硬盘/dev/sdd损坏

224534hui83wu7izfd4wr7.png

[root@web /]# cat/proc/mdstat

224535t4z3mmb9459havte.png

[root@web /]#mdadm -D /dev/md0

224535sn6a3jvorfu668np.png

[root@web /]# df-h /dev/md0

224536qdv9u2uuwqfuv9cz.png

224536beg86iizbz18v881.png

有上面几幅图可看出,在没有备份硬盘加入时,就不会恢复完整数据,但raid5阵列依旧存在,阵列大小还是60Gweb服务器已经可以访问

[root@web /]# cat/var/www/html/index.html  //查看index.html的内容

224537wtolq2qog292ugxu.png

[root@web /]#mdadm /dev/md0 -r /dev/sdc  ///dev/dsc移除

224537ji11p8l6qipsf77i.png

[root@web /]#mdadm /dev/md0 -a /dev/sdc  ///dev/sdc加入raid5阵列

224538xf3ptlauenp3f0tt.png

[root@web /]# cat/proc/mdstat

224538jsix374613x4lvr1.png

224539ta67bo7a7l3otoau.png

[root@web /]#mdadm -D /dev/md0

224539hcymyj111xm087co.png

224540hz1nbb515hjlnux9.png

5.      模拟三块硬盘损毁(或损毁两块硬盘没有热备盘顶替)时,raid5阵列运行情况:

[root@web /]#mdadm /dev/md0 -f /dev/sde

224540ltd2dvavq5dv31qq.png

[root@web /]# cat/proc/mdstat

224541w2xgxoyeaisiggfa.png

[root@web /]#mdadm -D /dev/md0

224541w6tzn6rtqzn6d8dz.png

只有一块硬盘在工作,其他三块硬盘都损坏

[root@web /]# cat/var/www/html/index.html

224542ezczamzaamcmd2j9.png

224542m1qpsq3a5w3fj6tz.png

依然可以读取数据和访问web服务器

[root@web /]# df-h /dev/md0

224543afniij9bzbieiiin.png

磁盘大小依然不变

[root@web /]# vi/var/www/html/index.html  //编辑index.html

224543wnglluvoh9zh9ibn.png

由图看出无法在网页文档中写入数据,raid5阵列中的文件成为只读文件

[root@web /]# cp-r /var/www/html/index.html /tmp  //index.html复制到/tmp目录

[root@web /]# ls/tmp

224544ux02sg16d6a2zv4s.png

[root@web /]# cat/tmp/index.html

224544y6sgu6xzps7akcus.png

[root@web /]#mdadm /dev/md0 -r /dev/sde  

224544fyyg8ql4rdz88na4.png

[root@web /]#mdadm /dev/md0 -a /dev/sde

224545hd8fev8qdqq5qf5e.png

由上可以得出当raid5阵列中只有一块磁盘在工作时,raid5阵列已经不能恢复正常工作,只有重新做阵列,但是可以读取和备份数据

(五)   结果验证:

1.      一块硬盘损毁(且有热备盘顶替)时访问web服务器结果

224545kf3nf77y8jky8y80.png

依然可以访问web服务器

2.      两块硬盘损毁(或损毁一块硬盘没有热备盘顶替)访问web服务器结果

224546w1hty3nuzbqzqyx0.png

依然可以访问web服务器

3.      三块硬盘损毁(或损毁两块硬盘没有热备盘顶替)时访问web服务器结果

224546ttxzrzdxrg6zaur1.png

依然可以读取数据和访问web服务器

通过实验结果我们可以得出:不论raid5阵列损毁几块硬盘,只要raid5阵列还在,就不影响数据的读取,web服务器依旧可以访问。

(六)  问题及分析:

根据raid5数据分布原理:当raid5阵列有一块硬盘损毁后,可利用剩下的数据和相应的校验码信息可以算出损毁硬盘中的数据,进而恢复完整数据,所以raid5之允许有一块硬盘损毁。可是通过实验,我们发现不论损毁几块硬盘,只有raid5阵列还存在,依然可以读取数据,这是不正常的,这种情况可能是linux系统做出的保护措施。