RAID Level 5 是一种储存性能、数据安全和存储成本兼顾的存储解决方案。它使用的是Disk Striping(硬盘分割)技术。RAID5 至少需要三顆硬碟, RAID 5不是对存储的数据进行备份,而是把数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储於不同的磁盘上。当RAID5的一个磁盘数据发生损坏後,可以利用剩下的数据和相应的奇偶校验信息去恢复被损坏的数据。 RAID 5可以理解为是RAID 0和RAID 1的折衷方案。RAID 5可以为系统提供数据安全保障,但保障程度要比鏡像低而磁盘空间利用率要比鏡像高。RAID 5具有和RAID 0相近似的数据读取速度,只是因为多了一个奇偶校验信息,写入数据的速度相當的慢,若使用「回寫快取」可以讓效能改善不少。同时由于多个数据对应一个奇偶校验信息,RAID 5的磁盘空间利用率要比RAID 1高,存储成本相对较便宜。
从上面我们可以知道RAID5至少需要有三科硬盘,由于条件的限制,我只能在虚拟机上做实验了。
这个实验我需要四块硬盘,所以我们在虚拟机上虚拟出4块硬盘。
首先我们来虚拟机添加硬盘:
点击Add 来添加硬盘:
接下来选择添加新的虚拟硬盘:
接下来选择虚拟硬盘额类型:
接下来就是选择虚拟硬盘的大小了,我这里选择每块5GB的容量:
这里是编辑虚拟硬盘的在物理机上的文件名,我们选择默认即可:
照着如此的步骤我们添加了四块虚拟硬盘,下面就是我们添加的:
点击ok即可
下面我们来到操作系统里面看看有没有添加进去:
执行:
fdisk -l
看起来是没有,但是为什么呢,因为在虚拟机添加新的硬盘后需要重新启动一下:
执行
reboot
重启完毕后我们在登录,再来执行fdisk -l 看看:
从上面的图我们可以看到,我们新添加的硬盘已经被系统识别出来了,可以看到他们的容量都是5GB:
它们分别是:
/dev/sde
/dev/sdb
/dev/sdf
/dev/sdd
现在我们要做的事情就是分区
首先来对 /dev/sde 这个硬盘进行分区:
执行分区命令 fdisk /dev/sde :
按照以上的步骤我们在 /dev/sde 上创建了一个主分区,我们看看分区表
可以看到新的分区已经被创建出来了,最后我们键入 w 后按回车键保存。
其他的硬盘也是按照上面的步骤来操作
下面是分区后总的分区表:
完成了以上的操作,现在我们就可以来创建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
创建完以后,我们来看看我们创建的RAID:
执行 : mdadm --detail /dev/md0
看来我们已经创建成功了 , 下面我们让系统开机的时候自动识别raid:
执行 mdadm -D --scan > /etc/mdadm.conf
RAID默认的配置文件名是 mdadm.conf ,有一点要注意,这个文件默认是不存在的
mdadm.conf文件主要由以下部分组成:DEVICES选项制定组成RAID所有设备, ARRAY选项指定阵列的设备名、RAID级别、阵列中活动设备的数目以及设备的UUID号.
接下来为/dev/md0创建文件系统:
执行 mkfs.ext4 /dev/md0
我们来挂载/dev/md0 到 /mdtest 看看是否可用
执行 :
mkdir /mdtest
mount /dev/md0 /mdtest
我们进入 /mdtest 目录 , 看看里面有什么内容
执行
cd /mdetest
ls
我们复制一个文件过来
cp /etc/services .
现在我们假设其中一个硬盘坏了,我们可以用备用的硬盘来替换坏了的硬盘,我们来模拟下硬盘损坏:
先来看看我们刚刚复制我过来文件的大小:
626K
我们模拟 /dev/sde1 损坏
执行:mdadm /dev/md0 --fail /dev/sde1
我们可以知道sde1已经损坏
我们移除坏了的磁盘
mdadm /dev/md0 --remove /dev/sde1
下图可以看出我们已经删除了 /dev/sde1 设备了
现在再来看看我们刚刚复制文件的大小:
还是一样626k说明我们的raid是起作用的
现在演示增加一块磁盘,用于换上新的硬盘
mdadm /dev/md0 --add /dev/sde1
实验至此 , 移除raid:
按照如下步骤执行:
至此实验完毕,谢谢大家 ^_^
参考:
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