独立磁盘冗余阵列(RAID,redundant array of independent disks)是把相同的数据存储在多个硬盘的不同的地方(因此,冗余地)的方法。通过把数据放在多个硬盘上,输入输出操作能以平衡的方式交叠,改良性能。因为多个硬盘增加了平均故障间隔时间(MTBF),储存冗余数据也增加了容错。
磁盘阵列其样式有三种,一是外接式磁盘阵列柜、二是内接式磁盘阵列卡,三是利用软件来仿真。
外接式磁盘阵列柜最常被使用大型服务器上,具可热抽换(Hot Swap)的特性,不过这类产品的价格都很贵。
内接式磁盘阵列卡,因为价格便宜,但需要较高的安装技术,适合技术人员使用操作。
利用软件仿真的方式,由于会拖累机器的速度,不适合大数据流量的服务器。
提高传输速率。RAID通过在多个磁盘上同时存储和读取数据来大幅提高存储系统的数据吞吐量(Throughput)。在RAID中,可以让很多磁盘驱动器同时传输数据,而这些磁盘驱动器在逻辑上又是一个磁盘驱动器,所以使用RAID可以达到单个磁盘驱动器几倍、几十倍甚至上百倍的速率。这也是RAID最初想要解决的问题。因为当时CPU的速度增长很快,而磁盘驱动器的数据传输速率无法大幅提高,所以需要有一种方案解决二者之间的矛盾。RAID最后成功了。
通过数据校验提供容错功能。普通磁盘驱动器无法提供容错功能,如果不包括写在磁盘上的CRC(循环冗余校验)码的话。RAID容错是建立在每个磁盘驱动器的硬件容错功能之上的,所以它提供更高的安全性。在很多RAID模式中都有较为完备的相互校验/恢复的措施,甚至是直接相互的镜像备份,从而大大提高了RAID系统的容错度,提高了系统的稳定冗余性。
RAID 0
RAID 0阵列即(Data Stripping)数据分条阵列,其主要的特点是存取的数据都被分割成为条状(stripped)分布存放在各个物理磁盘上。这样处理的优点是可以并行存取,从而获得双倍或多倍存取速度。其中最简单的RAID 0阵列,使用两块硬盘提供双倍传输速度,假如阵列卡能支持多块硬盘组成RAID 0,那么则可以获得N倍(N为加入阵列的硬盘数量)传输速度。
这种阵列的缺点是数据安全比较脆弱,只要阵列内某一硬盘出现故障,所有的数据将全部丢失。因而,为了在数据脆弱性与速度之间取得较好的平衡,实际使用时RAID 0通常只使用两块硬盘,获得双倍传输速度同时稳定性下降一半,用于存放视频点播文件、临时文件等对安全性要求不高的数据。
在不担心数据安全的情况下,RAID0是最佳的选择。
RAID 1
RAID 1阵列即(Data Mirror)数据镜像阵列,其主要特点在提供了较为优异的数据安全保障。整个阵列至少需要两块硬盘组建,在写入时同时将数据备份至另一块硬盘,所以即使其中一块硬盘出现故障而造成数据损坏时,文件也不会丢失。但是其代价就是的阵列内半数硬盘用于即时镜像备份,容量为阵列内硬盘总容量的一半,而且速度没有任何提升。
在优先考虑数据安全且不需要保证磁盘性能与容量的情况下,RAID1是最佳选择。
RAID 5
可以理解为是RAID 0和RAID 1的折衷方案,但没有完全使用RAID 1镜像理念,而是使用了“奇偶校验信息”来作为数据恢复的方式,至少需要三块硬盘。Raid5有效容量为总容量的(n-1)/n。
在经济情况不太充裕的情况下既想保障磁盘性能与容量又想保障数据的安全,RAID5是最佳的选择。
RAID 10
结合了RAID 0速度快和RAID 1 的高可靠性双重特性;缺点是至少需要4块硬盘。
RAID 10以RAID 0为执行阵列,以RAID 1为数据保护阵列。其实结构非常简单,首先创建2个独立的Raid1,然后将这两个独立的Raid1组成一个Raid0,当往这个逻辑Raid中写数据时,数据被有序的写入两个Raid1中。虽然Raid10方案造成了50%的磁盘浪费,但是它提供了200%的速度和单磁盘损坏的数据安全性,并且当同时损坏的磁盘不在同一Raid1中,就能保证数据安全性。
原文地址:http://itone.blog.51cto.com/4120609/1410010