Linux RAID5项目
(一) 实验任务及思路:
1) 构建基于4块磁盘的RAID 5磁盘阵列,有效空间为60G;
2) 在构建好的阵列上构建EXT 4文件系统并挂载到网站文档目录下;
3) 新建网站,先模拟1块磁盘故障,在Client端访问网站;再模拟2块磁盘故障,继续访问网站,观察两次访问结果,以检测RAID 5的工作性能。
(二)实验拓扑:
(三)实验要求:
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 //查看主机名
[root@web /]#ifconfig eth0 //查看第一块网卡ip地址
[root@web /]#netstat -anpt | grep 80 //查看web服务器工作状态
[root@web /]#service iptables stop //关闭防火墙
[root@web /]#setenforce 0 //关闭安全linux
查看win客户机ip地址
2. 做软raid5阵列并将其挂载到web服务器根目录:
[root@web /]#fdisk -l //查看磁盘设备情况
[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阵列的状态
[root@web /]#mdadm -D /dev/md0 //查看raid5状态
由图可看出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服务器网站根目录
[root@web /]#mount /dev/md0 /var/www/html/ //将RAID 5阵列挂载到根目录
[root@web /]# df -h //查看磁盘大小
[root@web /]# ls/var/www/html/ //查看根目录里是空的
[root@web /]# vi/var/www/html/index.html //在根目录中新建网页
[root@web /]#service httpd restart //重新启动web服务器
在浏览器中访问web服务器,其是正常工作的
3. 模拟一块硬盘损毁(且有热备盘顶替)时,raid5阵列运行情况:
[root@web /]#mdadm /dev/md0 -f /dev/sdb //模拟RAID5阵列中/dev/sdb 磁盘损坏
[root@web /]# cat/proc/mdstat
[root@web /]#mdadm -D /dev/md0
由图可看出/dev/sdb 磁盘损坏,/dev/sde顶替sdb加入raid5阵列
[root@web /]# df-h /dev/md0
Raid5阵列大小还是60G
依然可以访问web服务器
[root@web /]#mdadm /dev/md0 -r /dev/sdb //将/dev/sdb 移除
[root@web/]#mdadm -D /dev/md0
[root@web /]#mdadm /dev/md0 -a /dev/sdb //将/dev/sdb加入阵列
[root@web /]#mdadm -D /dev/md0
/devsdb 成为热备
4. 模拟两块硬盘损毁(或损毁一块硬盘没有热备盘顶替)时,raid5阵列运行情况:
[root@web /]#mdadm /dev/md0 -f /dev/sdc //模拟第一块硬盘/dev/sdc损坏
[root@web /]# cat/proc/mdstat
[root@web /]#mdadm -D /dev/md0
/dev/sdc 损坏,/dev/sdb 在重建raid5
[root@web /]# cat/proc/mdstat
[root@web /]#mdadm -D /dev/md0
数据恢复后,也就完成重建,/dev/sdb正处于工作状态
[root@web /]#mdadm /dev/md0 -f /dev/sdd //模拟第二块硬盘/dev/sdd损坏
[root@web /]# cat/proc/mdstat
[root@web /]#mdadm -D /dev/md0
[root@web /]# df-h /dev/md0
有上面几幅图可看出,在没有备份硬盘加入时,就不会恢复完整数据,但raid5阵列依旧存在,阵列大小还是60G,web服务器已经可以访问
[root@web /]# cat/var/www/html/index.html //查看index.html的内容
[root@web /]#mdadm /dev/md0 -r /dev/sdc //将/dev/dsc移除
[root@web /]#mdadm /dev/md0 -a /dev/sdc //将/dev/sdc加入raid5阵列
[root@web /]# cat/proc/mdstat
[root@web /]#mdadm -D /dev/md0
5. 模拟三块硬盘损毁(或损毁两块硬盘没有热备盘顶替)时,raid5阵列运行情况:
[root@web /]#mdadm /dev/md0 -f /dev/sde
[root@web /]# cat/proc/mdstat
[root@web /]#mdadm -D /dev/md0
只有一块硬盘在工作,其他三块硬盘都损坏
[root@web /]# cat/var/www/html/index.html
依然可以读取数据和访问web服务器
[root@web /]# df-h /dev/md0
磁盘大小依然不变
[root@web /]# vi/var/www/html/index.html //编辑index.html
由图看出无法在网页文档中写入数据,raid5阵列中的文件成为只读文件
[root@web /]# cp-r /var/www/html/index.html /tmp //将index.html复制到/tmp目录
[root@web /]# ls/tmp
[root@web /]# cat/tmp/index.html
[root@web /]#mdadm /dev/md0 -r /dev/sde
[root@web /]#mdadm /dev/md0 -a /dev/sde
由上可以得出当raid5阵列中只有一块磁盘在工作时,raid5阵列已经不能恢复正常工作,只有重新做阵列,但是可以读取和备份数据
(五) 结果验证:
1. 一块硬盘损毁(且有热备盘顶替)时,访问web服务器结果
依然可以访问web服务器
2. 两块硬盘损毁(或损毁一块硬盘没有热备盘顶替)时,访问web服务器结果
依然可以访问web服务器
3. 三块硬盘损毁(或损毁两块硬盘没有热备盘顶替)时,访问web服务器结果
依然可以读取数据和访问web服务器
通过实验结果我们可以得出:不论raid5阵列损毁几块硬盘,只要raid5阵列还在,就不影响数据的读取,web服务器依旧可以访问。
(六) 问题及分析:
根据raid5数据分布原理:当raid5阵列有一块硬盘损毁后,可利用剩下的数据和相应的校验码信息可以算出损毁硬盘中的数据,进而恢复完整数据,所以raid5之允许有一块硬盘损毁。可是通过实验,我们发现不论损毁几块硬盘,只有raid5阵列还存在,依然可以读取数据,这是不正常的,这种情况可能是linux系统做出的保护措施。