2014年5月21日星期三

Cloud_021:RAID基础知识

RAID(Redundant Array of Inexpensive Disks),廉价磁盘冗余阵列。
RAID使用多块物理硬盘组成一个具有加速读写、自动备份、数据损毁恢复等功能的逻辑硬盘。
为了满足不同工作环境的需要,RAID技术分为了以下RAID 0-7计合8种,每种阵列都各自有其自身优点与缺点。

1. RAID 0
RAID 0 是数据分条(Data Stripping)阵列,其主要的特点是存取的数据都被分割成为条状(stripped)分布存放在各个物理磁盘上。
优点:并行存取,从而获得双倍或多倍存取速度。
其中最简单的RAID 0阵列,使用两块硬盘提供双倍传输速度,假如阵列卡能支持多块硬盘组成RAID 0,那么则可以获得N倍(N为加入阵列的硬盘数量)传输速度。
缺点:数据安全比较脆弱,只要阵列内某一硬盘出现故障,所有的数据将全部丢失。
因此,RAID 0 不可应用于需要数据高可用性的关键应用。
为了在数据脆弱性与速度之间取得较好的平衡,实际使用时RAID 0通常只使用两块硬盘,获得双倍传输速度同时稳定性下降一半,用于存放视频点播文件、临时文件等对安全性要求不高的数据。
 2. RAID 1
RAID 1 是数据镜像(Data Mirror)阵列,其主要特点在提供了较为优异的数据安全保障。
整个阵列至少需要两块硬盘组建,在写入时同时将数据备份至另一块硬盘,所以即使其中一块硬盘出现故障而造成数据损坏时,文件也不会丢失。
但是其代价就是的阵列内半数硬盘用于即时镜像备份,容量为阵列内硬盘总容量的一半,而且速度没有任何提升。
因此,RAID1虽然不能提高存储性能,但由于其具有的高数据安全性,使其尤其适用于存放重要数据,如服务器和数据库存储等领域。


3. RAID 0+1
RAID 0+1 把RAID 0的快速存取特点与RAID 1数据安全的优点结合起来,先做分条,再做镜像。
这种阵列最少需要4个硬盘才能创建,其中两块硬盘用来存取数据(分条并行存取),其余两块硬盘用于镜像前面两块硬盘的数据。
以4块硬盘(Disk1~4)为例,当Disk1损坏时,在剩下的3块盘中,只要Disk3或Disk4两个硬盘中任何一个损坏,都会导致整个RAID失效,因此故障率为2/3。
具体原因分析:Disk1坏了,此时无法从Disk1和Disk2组成的RAID0上存取数据,只能从Disk3和Disk4构成的RAID0上存取数据,所以如果Disk3或Disk4也坏了,那么整个RAID也就失效了。

4. RAD 1+0
RAID 1+0 把RAID 1数据安全与RAID 0的快速存取特点的优点结合起来,先做镜像,再做分条。
以4块硬盘(Disk1~4)为例,当Disk1损坏时,在剩下的3块盘中,只有当Disk2一个盘发生故障时,才会导致整个RAID失效,因此故障率为1/3。
具体原因分析:Disk1坏了,Disk2是Disk1的镜像,只能从Disk2上存取数据,所以如果Disk2也坏了,那么整个RAID也就失效了。


5. RAID 0+1与RAID 1+0的异同
在正常的情况下RAID 0+1和RAID 1+0是完全一样的,而且每一个读写操作所产生的I/O数量也是一样的,所以在读写性能上两者没什么区别。
当有磁盘出现故障时,比如前面假设的Disk1损坏时,安全性上RAID 0+1比RAID 1+0要差一些,读写性能RAID 0+1比RAID 1+0要强一些。
原因是当Disk1损坏时,RAID 0+1中Disk3和Disk4组成的RAID 0还有效;而RAID 1+0中Disk3和Disk4组成的RAID 1还有效。
RAID 0+1和RAID 1+0的特点使其特别适用于既有大量数据需要存取,同时又对数据安全性要求严格的领域,如银行、金融、商业超市、仓储库房、各种档案管理等。


6. RAID 3
RAID 3把数据分成多个“块”,按照一定的容错算法,存放在N+1个硬盘上,实际数据占用的有效空间为N个硬盘的空间总和,而第N+1个硬盘上存储的数据是校验容错信息,当这N+1个硬盘中的其中一个硬盘出现故障时,可以从其它N个硬盘中的数据也可以恢复原始数据。
由于RAID 3采用了一块物理硬盘专门来存放校验的数据,其它硬盘同时并行工作。
这样,不管是对哪一个硬盘的数据进行修改,校验的数据硬盘也会同时跟着改动,这就导致了校验硬盘工作负担过重,影响数据的存储效率。
对于那些经常需要执行大量写入操作的应用来说,校验盘的负载将会很大,无法满足程序的运行速度,从而导致整个RAID系统性能的下降。
鉴于这种原因,RAID 3更加适合应用于那些写入操作较少,读取操作较多的应用环境。

7. RAID 5
RAID 5也采用了校验的数据存储方式,所不同的是,RAID 5把校验数据也切成“块”存放在各个硬盘上,这样就可以解决校验数据存放的瓶颈问题。
由于RAID 5的阵列卡价格较为高昂,所以该种阵列目前仅在大型企业中使用。

8. RAID 1+0 与RAID 5的异同
以4块硬盘为例:
(1)安全性
RAID 1+0的安全性高于RAID 5。
具体原因分析:
当Disk1损坏时,对于RAID1+0,只有当Disk1对应的镜象盘Disk2也损坏时,才会导致整个RAID失效。
当Disk1损坏时,对于RAID5,剩下的3块盘中,任何一块盘损坏,都将导致RAID失效。
在恢复数据的时候,RAID 1+0的恢复速度也快于RAID 5。
(2)空间利用率
RAID 1+0的利用率是50%,RAID5的利用率是75%。
硬盘数量越多,RAID 5的空间利用率越高,因为RAID 5相当于只有1块物理硬盘做校验。
(3)读写性能
RAID1+0可供读取有效数据的磁盘是4个,RAID 5可供读取有效数据的磁盘也是4个(校验信息分布在所有的盘上),所以两者的读的性能应该是基本一致的。
在连续读写方面,RAID 5比RAID 1+0好一些。因为,RAID 5 可以同时写入3个数据+1个校验;而RAID 1+0只能同时写入2个数据+2个镜像。
在离散读写方面,RAID 1+0比RAID 5好一些。因为,同样的单个操作,RAID 5 需要4个IO,RAID 1+0 需要2个IO。

参考文献:
1. http://www.linuxidc.com/Linux/2012-02/53267.htm
2. http://diy.pconline.com.cn/cpu/study_cpu/1008/2197524.html
3. http://wenku.baidu.com/link?url=6qffQXzwGBp9tLddOOoWWLMw80LX_6JrYdJ-qpG1XpQhQPHDOYlNFOpgiWPeRkB2VwTft4F6bY0TeDke5FSA5UxDqQpp7kQOtLdWtEFyw0C
4. http://baike.baidu.com/view/1367898.htm?fr=aladdin
5. http://blog.csdn.net/dinglang_2009/article/details/7960598

没有评论: