RAID5实验

RAID5 实验


RAID5 是什么:

RAID 5

RAID Level 5 是一种储存性能、数据安全和存储成本兼顾的存储解决方案。它使用的是Disk Striping(硬盘分割)技术。RAID5 至少需要三�w硬碟, RAID 5不是对存储的数据进行备份,而是把数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储於不同的磁盘上。当RAID5的一个磁盘数据发生损坏後,可以利用剩下的数据和相应的奇偶校验信息去恢复被损坏的数据。 RAID 5可以理解为是RAID 0和RAID 1的折衷方案。RAID 5可以为系统提供数据安全保障,但保障程度要比�R像低而磁盘空间利用率要比�R像高。RAID 5具有和RAID 0相近似的数据读取速度,只是因为多了一个奇偶校验信息,写入数据的速度相��的慢,若使用「回��快取」可以�效能改善不少。同时由于多个数据对应一个奇偶校验信息,RAID 5的磁盘空间利用率要比RAID 1高,存储成本相对较便宜。


\begin{align}Size & = (N - 1) \times \min \left(S_1, S_2, \dots, S_N\right)\end{align}





从上面我们可以知道RAID5至少需要有三科硬盘,由于条件的限制,我只能在虚拟机上做实验了。


这个实验我需要四块硬盘,所以我们在虚拟机上虚拟出4块硬盘。


首先我们来虚拟机添加硬盘:


6831D2B00B994F7598033A5CC090ECD1

点击Add 来添加硬盘:

F8B73C85E52C426F88EA10F0338B7933


接下来选择添加新的虚拟硬盘:


9101CAB844F144A1B302680959204683


接下来选择虚拟硬盘额类型:


64A009D5A58D4A14947C7FF1E9D6ACCD


接下来就是选择虚拟硬盘的大小了,我这里选择每块5GB的容量:


93463F868E5441D095E783A31D47873D


这里是编辑虚拟硬盘的在物理机上的文件名,我们选择默认即可:


688D674D08C34A8183F05FB31638D029


照着如此的步骤我们添加了四块虚拟硬盘,下面就是我们添加的:

B046B56678C74805B535769B769A078F


点击ok即可





下面我们来到操作系统里面看看有没有添加进去:

执行:

fdisk -l

8B4496CA262E4E6A83F602950492A3F5

34E18184A58D401E883DFB88406EF4A0


看起来是没有,但是为什么呢,因为在虚拟机添加新的硬盘后需要重新启动一下:

执行

reboot

EA35D4A0133B4E33AD1DB23CD2AB8AB2


重启完毕后我们在登录,再来执行fdisk -l 看看:

691B0BFDCEA04D53997883F082E115A7

936647FD43484D6FB0EDDFADD7FF7A69


从上面的图我们可以看到,我们新添加的硬盘已经被系统识别出来了,可以看到他们的容量都是5GB:


它们分别是:


/dev/sde

/dev/sdb

/dev/sdf

/dev/sdd





现在我们要做的事情就是分区


首先来对 /dev/sde 这个硬盘进行分区:


执行分区命令 fdisk /dev/sde


3B40130353FE4CADB1781729CCB3FC40


按照以上的步骤我们在 /dev/sde 上创建了一个主分区,我们看看分区表


77B177B8B3704AF399C27C500F5D291E


可以看到新的分区已经被创建出来了,最后我们键入 w 后按回车键保存。


其他的硬盘也是按照上面的步骤来操作


下面是分区后总的分区表:

A72D3E5F62F9467AA7C8546BE419A235

07DE9ACF699E40C080608A96CD2C6961

39251F893F4D4E82BB375C6E70A3567C





完成了以上的操作,现在我们就可以来创建RAID了:


执行:


mdadm --create /dev/md0 --level=5 --raid-devices=3 --spare-devices=1 /dev/sde1 /dev/sdb1 /dev/sdf1 /dev/sdd1

意思是创建RAID设备名为md0, 级别为RAID 5


DC6FB437B8824A8E8A28A3F8E9D8C7E9


创建完以后,我们来看看我们创建的RAID:


执行 : mdadm --detail /dev/md0


BB324CE725684E49BC6120A75D6F49CC

C16BF37AE36143CB8B004DAFA2E56014


看来我们已经创建成功了 , 下面我们让系统开机的时候自动识别raid:


执行 mdadm -D --scan > /etc/mdadm.conf


RAID默认的配置文件名是 mdadm.conf ,有一点要注意,这个文件默认是不存在的


621F20190FD2427291C6FDD349775B13


mdadm.conf文件主要由以下部分组成:DEVICES选项制定组成RAID所有设备, ARRAY选项指定阵列的设备名、RAID级别、阵列中活动设备的数目以及设备的UUID号.


接下来为/dev/md0创建文件系统:


执行 mkfs.ext4 /dev/md0


81BEEC3FF7BE4716A394C820CA41698D


我们来挂载/dev/md0 到 /mdtest 看看是否可用


执行 :


mkdir /mdtest


mount /dev/md0 /mdtest


8B2D7A9E2D8B44E2A2D03C7589DA2B0B


我们进入 /mdtest 目录 , 看看里面有什么内容


执行


cd /mdetest


ls

B6C84E5A382746B7B290CDC888CF846F


我们复制一个文件过来


cp /etc/services .


1D1663481FF840159D54D9487CBEBAAF


现在我们假设其中一个硬盘坏了,我们可以用备用的硬盘来替换坏了的硬盘,我们来模拟下硬盘损坏:


先来看看我们刚刚复制我过来文件的大小:

7DF86E7718854DD5B6D938136ECF43D2


626K



我们模拟 /dev/sde1 损坏


执行:mdadm /dev/md0 --fail /dev/sde1


A0ADF9B3E1744C3CB782B58244A1D6E7
后执行 cat /proc/mdstat

从下面可以看到我们的raid已经开始有动作了
6830E75CAB1C42DCAE95E0B2140FBD41

我们可以知道sde1已经损坏


29067E2F6F5043A1A795DC1DFB02AC70


我们移除坏了的磁盘


mdadm /dev/md0 --remove /dev/sde1


5093369B4E1E476FBFC49AF50A9F79CA


下图可以看出我们已经删除了 /dev/sde1 设备了


FD32D065A62C49BBA20FCAB60C54F3C7


现在再来看看我们刚刚复制文件的大小:

E7AE61F9751842D6AC8B647EA22DBE50


还是一样626k说明我们的raid是起作用的


现在演示增加一块磁盘,用于换上新的硬盘


mdadm /dev/md0 --add /dev/sde1


AB2C8214322D406FAE47E242B7CE7C9E


B8900A9B64F74119B32EC195CA739E1B



实验至此 , 移除raid:


按照如下步骤执行:


732FA7BD03C24AFE930AC49BA104CF80

8D66BD20A01A4A889418E2AA66E9FB1C


至此实验完毕,谢谢大家 ^_^



参考:

http://zh.wikipedia.org/zh-cn/RAID

http://g.51cto.com/article.php?domains=ckfwy&authorid=1536812&topicid=600352&gid=83

http://www.opsers.org/base/detailed-set-up-linux-software-raid-5-tutorial-environment.html



你可能感兴趣的:(linux,运维,raid,RAID5实验)