软件磁盘阵列配置-RAID5
实验目的及要求
- 掌握软件磁盘阵列(Software RAID)的基本概念以及工作原理;
- 掌握RAID几种模式的概念和每种模式的优缺点,以及不同模式之间的区别
- 掌握在linux环境下RAID四种模式(RAID0、RAID1、RAID01、RAID5)的配置
- 实验要求在virtualbox上建4个硬盘来完成创建RAID5实验,并且需要完成对磁盘失效恢复的步骤的描述
实验内容
在Virtualbox上建立四个硬盘完成RAID5实验,并完成模拟磁盘失效进行恢复的步骤。
实验步骤
一、 实验内容及过程(主要内容、连接图、操作步骤、程序代码)
(一)主要内容
在Virtualbox上建立四个硬盘完成RAID5实验,并完成模拟磁盘失效进行恢复的步骤。
(二)实验步骤
- 添加四个虚拟硬盘并进行查看
在虚拟机启动之前,先在virtualbox进行创建4个虚拟磁盘,作为实验的基本条件,这里我创建了4个大小均为1G的虚拟磁盘,如下图:
打开虚拟机,执行命令sudo fdisk -l|grep sd查看磁盘信息,从下图可以看到系统能够搜索到添加上来的四个虚拟磁盘,分别为sdb、sdc、sdd、sde:
`sudo fdisk -l|grep sd`
2. 安装mdadm,并验证硬盘
该实验需要安装mdadm软件,执行命令sudo apt-get install mdadm进行软件下载,下载安装成功后,执行命令 mdadm -E /dev/sd[b-e]检查磁盘是否存在raid信息,从下图可以看到新创建的磁盘没有raid信息:
sudo apt-get install mdadm
mdadm -E /dev/sd[b-e]
3. 创建硬盘分区并检查磁盘信息
信息显示没有raid信息之后,就可以开始对磁盘进行创建分区了,为了简单起见,对每个磁盘近创建一个大小为1000M的主分区,执行命令 sudo fdisk /dev/sdb(sdc、sdd、sde操作同理):
sudo fdisk /dev/sdb
sdc、sdd、sde操作同理,下面仅展示分区结果:
最后执行命令ls -l /dev |grep sd进行查看,可以看到创建分区是成功的:
ls -l /dev |grep sd
4. 以mdadm创建RAID
4个磁盘的分区创建成功之后,接着便进行RAID的创建,根据RAID5的概念,需要拿出一个磁盘当作spare disk,其余三个磁盘处于active状态,执行命令sudo mdadm --create /dev/md0 --level=5 --raid-devices=3 --spare-devices=1 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1,然后执行命令sudo mdadm --detail /dev/md0查看详细信息:
sudo mdadm --create /dev/md0 --level=5 --raid-devices=3 --spare-devices=1 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
sudo mdadm --detail /dev/md0
5. 格式化和挂载使用RAID
创建好RAID之后,便开始对/dev/md0进行格式化,执行命令sudo mkfs -t ext3 /dev/md0进行格式化处理,随后执行命令sudo mkdir /mnt/raid创建文件夹用于raid的挂载,挂载执行命令sudo mount /dev/md0 /mnt/raid,最后执行命令df查看文件系统信息:
sudo mkfs -t ext3 /dev/md0
sudo mkdir /mnt/raid
sudo mount /dev/md0 /mnt/raid
任意拷贝一个文件到/dev/md0去,并显示,可以看到/dev/md0已经可以作为一个正常的磁盘进行工作了,并且模式是raid5:
6. 模拟磁盘出错并恢复
执行命令 sudo mdadm --manage /dev/md0 --fail /dev/sdb1假设sdb1发生了错误,随后执行命令 sudo mdadm --detail /dev/md0再进行查看md0的详细信息:
sudo mdadm --manage /dev/md0 --fail /dev/sdb1
sudo mdadm --detail /dev/md0
执行命令sudo cat /proc/mdstat可以看到如下,仍有3块磁盘正常工作,原因是处于spare disk的sde1的状态变为active进行工作:
sudo cat /proc/mdstat
将出错的磁盘移除并加入新的磁盘sdf1,创建一块与sdb大小相等的磁盘sdf,并按照sdb相同的划分方式对sdf进行分区得到sdf1,执行命令sudo mdadm --manage /dev/md0 --add /dev/sdf1 --remove /dev/sdb1将出错的磁盘sdb1移除并将新的磁盘sdf1加入进来,然后执行命令sudo mdadm --detail /dev/md0进行查看信息:
sudo mdadm --manage /dev/md0 --add /dev/sdf1 --remove /dev/sdb1
sudo mdadm --detail /dev/md0
7. 启动自动启动RAID并自动挂载
关于启动自动启动RAID并让系统自动挂载,只需让系统在启动时能够在配置文件中获取磁盘的UUID并进行挂载,所以需要我们对系统的配置文件进行相应的修改,首先执行命令sudo mdadm --detail /dev/md0 | grep -i uuid获取md0的UUID,其次修改/etc/mdadm.conf文件内容,加入UUID的语句进行声明UUID,最后配置启动自动挂载:
sudo mdadm --detail /dev/md0 | grep -i uuid
8. 关闭RAID
如果不再使用磁盘md0,那么应该选择把它进行关闭。首先执行命令 sudo umount /dev/md0取消挂载,其次注释掉上一步写进/etc/fstab的信息,然后执行命令sudo mdadm --stop /dev/md0将磁盘直接关闭,最后注释掉上一步写在/etc/mdadm.conf里的信息:
sudo umount /dev/md0
sudo mdadm --stop /dev/md0
实验分析总结
本次实验通过配置RAID5更加深刻地认识和理解了关于Linux环境下关于文件系统的管理,实验结果基本到达预期,以下是本次实验的分析以及总结:
- RAID5最少需要三个硬盘,RAID5将数据存和奇偶校检信息放在多个硬盘上,是RAID0和RAID1的折中方案.它将含奇偶校验信息的条带数据写在多个磁盘,意味有良好的数据冗余;RAID5的优点有:良好的性能,读会比较快、支持冗余和容错、单磁盘损失,可以通过奇偶信息重建;缺点为写会稍慢,因为要同时写入校检块、重建会花费较长时间;
- 本次实验需要用到磁盘的分割、格式化、检验以及挂载,所以熟练地掌握相关命令能够提高我们的工作效率;
- Mdadm是个工具包,可以帮助我们配置管理raid设备,我们需要在创建和配置raid后在mdadm.conf文件中保存这些信息,例如我们在配置启动自动启动RAID并自动挂载时就需要用到这个文件;
- 该实验具有实际意义,能够帮助我们在以后的工作生活中避免一些因为硬盘损坏而带来的数据丢失的问题,应该在以后的工作生活多加练习。