Linux RAID5项目

(一)  实验任务及思路:

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

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

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

(二)实验拓扑:

Linux RAID5_RAID5

(三)实验要求:

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  //查看主机名

Linux RAID5_RAID5_02

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

Linux RAID5_Linux_03

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

Linux RAID5_Linux_04

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

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

查看win客户机ip地址

Linux RAID5_Linux_05

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

Linux RAID5_RAID5_06

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

Linux RAID5_RAID5_07


[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阵列的状态

Linux RAID5_Linux_08

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

Linux RAID5_Linux_09

Linux RAID5_Linux_10

由图可看出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服务器网站根目录

Linux RAID5_RAID5_11

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

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

Linux RAID5_RAID5_12

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

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

Linux RAID5_Linux_13

Linux RAID5_Linux_14

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

Linux RAID5_RAID5_15

Linux RAID5_RAID5_16

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

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

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

Linux RAID5_RAID5_17

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

Linux RAID5_RAID5_18

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

Linux RAID5_RAID5_19

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

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

Linux RAID5_Linux_20

Raid5阵列大小还是60G

Linux RAID5_Linux_21

依然可以访问web服务器

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

Linux RAID5_Linux_22

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

   Linux RAID5_RAID5_23

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

Linux RAID5_RAID5_24

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

Linux RAID5_Linux_25

/devsdb 成为热备

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

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

Linux RAID5_RAID5_26

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

Linux RAID5_Linux_27

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

Linux RAID5_Linux_28

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

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

Linux RAID5_Linux_29

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

Linux RAID5_RAID5_30

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

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

Linux RAID5_Linux_31

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

Linux RAID5_RAID5_32

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

Linux RAID5_Linux_33

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

Linux RAID5_Linux_34

Linux RAID5_RAID5_35

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

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

Linux RAID5_Linux_36

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

Linux RAID5_RAID5_37

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

Linux RAID5_RAID5_38

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

Linux RAID5_Linux_39

Linux RAID5_RAID5_40

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

Linux RAID5_Linux_41

Linux RAID5_Linux_42

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

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

Linux RAID5_RAID5_43

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

Linux RAID5_Linux_44

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

Linux RAID5_RAID5_45

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

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

Linux RAID5_RAID5_46

Linux RAID5_RAID5_47

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

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

Linux RAID5_RAID5_48

磁盘大小依然不变

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

Linux RAID5_Linux_49

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

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

[root@web /]# ls/tmp

Linux RAID5_Linux_50

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

Linux RAID5_Linux_51

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

Linux RAID5_RAID5_52

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

Linux RAID5_RAID5_53

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

(五)   结果验证:

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

Linux RAID5_Linux_54

依然可以访问web服务器

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

Linux RAID5_Linux_55

依然可以访问web服务器

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

Linux RAID5_Linux_56

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

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

(六)  问题及分析:

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