廉价磁盘冗余阵列(RAID, Redundant Array of Inexpensive Disks)简称硬盘阵列,其基本思想就是把多个相对便宜的硬盘组合起来,成为一个硬盘阵列组,使性能达到甚至超过一个价格昂贵、容量巨大的硬盘。根据选择的版本不同,RAID比单颗硬盘有以下一个或多个方面的好处:增强资料整合度,增强容错功能,增加处理量或容量。另外,磁盘阵列对于电脑来说, 看起来就像一个单独的硬盘或逻辑存储单元。分为RAID-0,RAID-1,RAID-1E,RAID-5,RAID-6,RAID-7,RAID-10,RAID-50。 简单来说,RAID把多个硬盘组合成为一个逻辑磁区,因此,操作系统只会把它当作一个硬盘。RAID常被用在服务器电脑上,并且常使用完全相同的硬盘作为组合。由于硬盘价格的不断下降与RAID功能更加有效地与主板整合,它也成为了玩家的一个选择,特别是需要大容量储存空间的工作,如:视讯与音讯制作。 基本RAID分类 JBOD
(JBOD, Just a Bunch Of Disks)在某些分类上,JBOD并不算是RAID的等级。只是将多个磁盘空间合并成一个大的逻辑磁盘,不具有错误备援机制。资料的存放机制是由第一颗磁盘开始依序往后存放,即操作系统看到的是一个大磁盘(由许多小磁盘组成)。但如果磁盘损毁,则该颗硬盘上的所有数据将无法救回。若第一颗硬盘损坏,通常无法作救援(因大部分文件系统将文件表存在磁盘前端,即第一颗),失去文件表即失去一切数据。
RAID 0
将多个磁盘合并成一个大的磁盘,不具有冗余,并行I/O,速度最快。RAID 0亦称为带区集。它是将多个磁盘并列起来,成为一个大磁盘。在存放数据时,其将数据按磁盘的个数来进行分段,然后同时将这些数据写进这些盘中,所以在所有的级别中,RAID 0的速度是最快的。但是RAID 0没有冗余功能,如果一个磁盘(物理)损坏,则所有的数据都会丢失。
理论上越多的磁盘效能就等于“单一磁盘效能”ד磁盘数”,但实际上受限于总线I/O瓶颈及其它因素的影响,RAID效能会随边际递减,也就是说,假设一个磁盘的效能是50MB每秒,两个磁盘的RAID 0效能约96MB每秒,三个磁盘的RAID 0也许是130MB每秒而不是150MB每秒,所以两个磁盘的RAID 0最能明显感受到效能的提升。
但如果是以软件方式来实作RAID,则磁盘的空间则不见得受限于此(例如Linux Software RAID),透过软件实作可以经由不同的组合而善用所有的磁盘空间。
RAID 1
两组以上的N个磁盘相互作镜像,它是通过磁盘数据镜像实现数据冗余,在成对的独立磁盘上产生互为备份的数据。当原始数据繁忙时,可直接从镜像拷贝中读取数据,因此RAID 1可以提高读取性能。RAID 1是磁盘阵列中单位成本最高的,但提供了很高的数据安全性和可用性。当一个磁盘失效时,系统可以自动切换到镜像磁盘上读写,而不需要重组失效的数据。 但无论用多少磁盘做RAID 1,仅算一个磁盘的容量,是所有RAID上磁盘利用率最低的一个级别。
RAID 5
RAID Level 5 是一种储存性能、数据安全和存储成本兼顾的存储解决方案。它使用的是Disk Striping(硬盘分割)技术。RAID 5 至少需要三颗硬盘, RAID 5不对存储的数据进行备份,而是把数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上。当RAID5的一个磁盘数据发生损坏后,利用剩下的数据和相应的奇偶校验信息去恢复被损坏的数据。 RAID 5可以理解为是RAID 0和RAID 1的折衷方案。RAID 5可以为系统提供数据安全保障,但保障程度要比镜像低而磁盘空间利用率要比镜像高。RAID 5具有和RAID 0相近似的数据读取速度,只是多了一个奇偶校验信息,写入数据的速度相当的慢,若使用“回写快取”可以让效能改善不少。同时由于多个数据对应一个奇偶校验信息,RAID 5的磁盘空间利用率要比RAID 1高,存储成本相对较便宜。
RAID 10/01
RAID 10/01细分为RAID 1+0或RAID 0+1。 RAID 1+0是先镜射再分割资料,再将所有硬盘分为两组,视为是RAID 0的最低组合,然后将这两组各自视为RAID 1运作。 RAID 0+1则是跟RAID 1+0的程序相反,是先分割再将资料镜射到两组硬盘。它将所有的硬盘分为两组,变成RAID 1的最低组合,而将两组硬盘各自视为RAID 0运作。 效能上,RAID 0+1比RAID 1+0有着更快的读写速度。 可靠性上,当RAID 1+0有一个硬盘受损,其余三个硬盘会继续运作。RAID 0+1只要有一个硬盘受损,同组RAID 0的另一只硬盘亦会停止运作,只剩下两个硬盘运作,可靠性较低。
因此,RAID 10远较RAID 01常用,零售主板绝大部份支援RAID 0/1/5/10,但不支援RAID 01。 参考文献: http://baike.baidu.com/view/7102.htm http://sapling.me/unixlinux/linux_mdadm_howto.html http://www.wangchao.net.cn/bbsdetail_1788074.html
磁盘阵列的创建
步骤说明:新建分区(4个)做raid5+热备à格式选择fdà保存退出à创建软阵列à格式化ext4文件类型à挂载à{开2个控制台,一个wathc –n “iostat /dev/sda{8,9,10,11}”,一个watch –n 0.5 “cat /proc/mdstat”}à模拟故障
1. 新建分区
2. 创建磁盘阵列 [root@yangcan ~]#mdadm -C /dev/md5 -l 5 -n 3 -x 1 /dev/sda{8,9,10,11} 创建磁盘阵列md5, -l是级别(0,1,5,6) -n:做raid的磁盘数量 -x :做热备份的磁盘个数 -C :创建阵列 -S:停止阵列中的磁盘 -A:组合、拼凑 -D: 显示阵列信息 -f: 停止阵列中的磁盘,模拟故障 -r:移除故障的磁盘 -a:新加磁盘到阵列中
3. 格式化:mke2fs –T ext4 /dev/md5
[root@yangcan /]# mount /dev/md5 /mdadm/ [root@yangcan /]#echo "/dev/md5 /mdadm ext4 defaults 1 2" >> /etc/fstab 5. 查看阵列信息 [root@yangcan mdadm]# mdadm -D /dev/md5
此时/dev/sda8作为热备盘
6. 登录tty2控制台:watch –n 0.5 “cat /proc/mdstat”},查看md的状态
7. 登录tty3控制台:wathc –n “iostat /dev/sda{8,9,10,11}”,查看每个磁盘的I/O情况
8. 测试新建的阵列,我们随便新建一些文件
9. 模拟故障,挂掉sda5盘,查看tty2的输出信息。 watch –n 0.5 “cat /proc/mdstat” [root@yangcan mdadm]# mdadm /dev/md5 -f /dev/sda11
-------之后-----
此时sda5,f掉了,热备盘sda8加入阵列。完成之后,sda6,Sda7,sda8重新组成阵列 与此同时,tty3控制台下,sda8在拼命的写数据进去。
当在模拟磁盘故障的时候,在/mdadm,依然可以正常查看\编辑文件。
10. 我们-f之后,要移除故障盘,同时查看md5的信息
11. 重新把故障盘加到阵列,加入之前必须清空已有磁盘的信息。
12. 配置完成之后,查看/dev/md/md-device-map里的信息,只是临时产生的,当你停止阵列时候,里面的信息就为空了!
13. 配置/etc/mdadm.conf
或者使用
创建一个新的阵列后,一定要通过上面的指令运行得到它的配置文件,否则,阵列停用后将无法启用。
14. Umount挂载,测试mdadm.conf
15. 停用-重新启动阵列
16. 监控磁盘阵列 /etc/rc.d/init.d/mdmonitor
17. 删除阵列 umount /dev/md5 mdadm --stop –S /dev/md5 mdadm --zero-superblock /dev/sda[567] rm /etc/mdadm.conf 删除磁盘阵列后必须修改/etc/fstab,以免开机无法挂载分区而无法启动。 (责任编辑:IT) |