磁盘阵列
RAID 概念
磁盘阵列(Redundant Arrays of Independent Disks,RAID),有“独立磁盘构成的具有冗余能力的阵列”之意。
磁盘阵列是由很多价格较便宜的磁盘,组合成一个容量巨大的磁盘组,利用个别磁盘提供数据所产生加成效果提升整个磁盘系统效能。
利用这项技术,将数据切割成许多区段,分别存放在各个硬盘上。
[1]
磁盘阵列还能利用同位检查(Parity Check)的观念,在数组中任意一个硬盘故障时,仍可读出数据,在数据重构时,将数据经计算后重新置入新硬盘中。
RAID级别
1、RAID 0 最少磁盘数量:2
Striped Disk Array without Fault Tolerance(没有容错设计的条带磁盘阵列)
原理:RAID 0是最早出现的RAID模式,即Data Stripping数据分条技术。
RAID 0是组建磁盘阵列中最简单的一种形式,只需要2块以上的硬盘即可,成本低,可以提高整个磁盘的性能和吞吐量。
优点:极高的磁盘读写效率,没有效验所占的CPU资源,实现的成本低。
缺点:如果出现故障,无法进行任何补救。
没有冗余或错误修复能力,如果一个磁盘(物理)损坏,则所有的数据都无法使用。
用途:RAID 0一般只是在那些对数据安全性要求不高的情况下才被人们使用。
2、RAID 1 最少磁盘数量:2
Mirroring and Duplexing (相互镜像)
原理:RAID 1称为磁盘镜像,原理是把一个磁盘的数据镜像到另一个磁盘上,也就是说数据在写入一块磁盘的同时,会在另一块闲置的磁盘上生成镜像文件,在不影响性能情况下最大限度的保证系统的可靠性和可修复性上。
优点:理论上两倍的读取效率,系统中任何一对镜像盘中至少有一块磁盘可以使用,甚至可以在一半数量的硬盘出现问题时系统都可以正常运行,当一块硬盘失效时,系统会忽略该硬盘,转而使用剩余的镜像盘读写数据,具备很好的磁盘冗余能力。
缺点:对数据的写入性能下降,磁盘的利用率最高只能达到50%(使用两块盘的情况下),是所有RAID级别中最低的。
用途:RAID 1多用在保存关键性的重要数据的场合。
3、RAID 0+1 最少磁盘数量:4 且必须为偶数( 两个RAID0 组成RAID1)
原理:从RAID 0+1名称上我们便可以看出是RAID0与RAID1的结合体。
在我们单独使用RAID 1也会出现类似单独使用RAID 0那样的问题,所以我们用两个RAID0 组成RAID1,兼顾了RAID0和RAID1的优点。
优点:对数据的读写都有提升,并且对数据具有冗余能力,RAID0+1允许坏多个盘,但只能在坏在同一个RAID0中,不允许两个RAID0都有坏盘。
缺点:损坏一个盘时,全部的盘都会被牵制,空间利用率低仅有1/2。
4、RAID 1+0 最少磁盘数量:4 且必须为偶数( 两个RAID1 组成RAID 0)
原理:从RAID 1+0名称上我们便可以看出是RAID0与RAID1的结合体。
在我们单独使用RAID 1也会出现类似单独使用RAID 0那样的问题,所以我们用两个RAID1 组成RAID0,兼顾了RAID0和RAID1的优点。
优点:对数据的读写性能都有很大的提升,RAID1+0允许坏多个盘,但是一定不能是一组磁盘中的。
缺点:空间利用率低仅有1/2,扩展性有限。
5、RAID 1+0 和RAID 0+1 的区别。
在RAID 0+1技术中,当一块物理磁盘出现故障将导致整个虚拟磁盘损失,因此相当于四块物理磁盘的有效故障。
如果其它四块物理磁盘有一块丢失,数据将发生丢失。
虽然从原理上可以从剩余磁盘数据中重建,但目前市场上的RAID控制器都不能做到数据完全恢复。
而在RAID 10的情况下,当一块独立的物理磁盘故障后(如图四),由于有一块对应镜像磁盘保护数据(除非对应的特定镜像硬盘也同时发生故障),因此不会对性能带来影响,从而显著高于RAID 0+1的容错性。
此外,磁盘故障后的恢复成本RAID 10技术也远低于RAID 0+1。
在RAID 10技术中只需要重建一块物理磁盘,而RAID 0+1技术必须重建由四块物理磁盘组成的虚拟磁盘,从这点也能够体现出RAID 10相对RAID 0+1的优势。
6、RAID 5 最少硬盘数量:3 分布式奇偶校验的独立磁盘结构
原理:RAID5把数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上,其中任意N-1块磁盘上都存储完整的数据。
当RAID5的一个磁盘数据发生损坏后,利用剩下的数据和相应的奇偶校验信息去恢复被损坏的数据。
优点:读取速度快,安全性好。
缺点:容量为最小硬盘容量×(n-1),会损失一块硬盘的空间。
7、RAID 50 最少硬盘数量:6
原理:RAID50是RAID5与RAID0的结合。
此配置在RAID5的子磁盘组的每个磁盘上进行包括奇偶信息在内的数据的剥离。
每个RAID5子磁盘组要求三个硬盘。
RAID50具备更高的容错能力,因为它允许某个组内有一个磁盘出现故障,而不会造成数据丢失。
而且因为奇偶位分部于RAID5子磁盘组上,故重建速度有很大提高。
优点:更高的容错能力,具备更快数据读取速率的潜力。
缺点:磁盘故障会影响吞吐量。
故障后重建信息的时间比镜像配置情况下要长。
最少硬盘数量:6 (要求磁盘数量为偶数)
最大容量:[(磁盘数量/2)-1] x磁盘容量
优点:你想要让你的数据获得真正的安全,完全不必担忧磁盘故障吗?可以试试RAID 15 或者RAID 51。
它们都提供了超强的容错能力。
即使大量磁盘损坏的情况下仍然不会丢失数据。
但是容错能力取决于出现故障的是哪一块磁盘。
如果你在每个镜像组中损失一块硬盘,系统仍然可以正常运转。
但是如果有四块硬盘损坏了,而它们恰好是两个镜像组中的四块硬盘,你就会丢失整个RAID 5阵列中的数据。
缺点:在这种情况下,强大的容错能力是以降低磁盘存储空间效能为代价的。
如果你的阵列是由6块硬盘组成的最小的RAID 15阵列,整个阵列存储容量的66%都会被用于管理,这就意味着你只能使用34%的存储容量。
随着阵列中磁盘数量的增加,效能比例也会有所增加,但是永远都不会达到50%。
这是由阵列的结构决定的,也是因为RAID硬件本身要耗占部分资源,这种模式造价昂贵,而且非常复杂,难以实施。
图:RAID 1+5在多块硬盘出现故障的时候仍然能够工作
最少硬盘数量:6 (要求磁盘数量为偶数)
最大容量:[(磁盘数量/2)-1] x磁盘容量
优点:提供了非常强大的容错能力。
整个阵列甚至可以在损失了好几块硬盘的情况下仍然正常工作,当然,这也取决于损坏的是哪些硬盘。
在由6块硬盘组成的最小阵列中,你最多可以损失4块硬盘(一个RAID 5阵列中的全部磁盘和第二个RAID 5阵列中的一块磁盘),还能够保持系统正常运转。
缺点:超强的容错能力是以大量的管理空间和昂贵的支持为代价的。
图:RAID 5+1被管理占据了大量的空间
10、分类比较。