RAID级别你选谁(下)
一般常用的RAID阶层,分别是RAID 0、RAID1、RAID 3、RAID 4以及RAID 5,再加上二合一型 RAID 0+1﹝或称RAID 10﹞。我们先把这些RAID级别的优、缺点做个比较:
RAID级别 相对优点 相对缺点
RAID 0 存取速度最快 没有容错
RAID 1 完全容错 成本高
RAID 3 写入性能最好 没有多任务功能
RAID 4 具备多任务及容错功能 Parity 磁盘驱动器造成性能瓶颈
RAID 5 具备多任务及容错功能 写入时有overhead
RAID 0+1/RAID 10 速度快、完全容错 成本高
接下来,我们分别针对RAID 3、RAID 5以及RAID 0+1/RAID 10作深入的讨论。
RAID 3特点与应用
RAID 3 是将数据先做XOR 运算,产生Parity Data后,在将数据和Parity Data以并行存取模式写入成员磁盘驱动器中,因此具备并行存取模式的优点和缺点。进一步来说,RAID 3每一笔数据传输,都更新整个Stripe﹝即每一个成员磁盘驱动器相对位置的数据都一起更新﹞,因此不会发生需要把部分磁盘驱动器现有的数据读出来,与新数据作XOR运算,再写入的情况发生﹝这个情况在RAID 4和RAID 5会发生,一般称之为Read、Modify、Write Process,我们姑且译为为读、改、写过程﹞。因此,在所有RAID级别中,RAID 3的写入性能是最好的。
RAID 3的 Parity Data 一般都是存放在一个专属的Parity Disk,但是由于每笔数据都更新整个Stripe,因此,RAID 3的 Parity Disk 并不会如RAID 4的 Parity Disk,会造成存取的瓶颈。
RAID 3的并行存取模式,需要RAID 控制器特别功能的支持,才能达到磁盘驱动器同步控制,而且上述写入性能的优点,以目前的Caching 技术,都可以将之取代,因此一般认为RAID 3的应用,将逐渐淡出市场。
RAID 3 以其优越的写入性能,特别适合用在大型、连续性档案写入为主的应用,例如绘图、影像、视讯编辑、多媒体、数据仓储、高速数据撷取等等。
RAID 4特点与应用
RAID 4 是采取独立存取模式,同时以单一专属的Parity Disk 来存放Parity Data。RAID 4的每一笔传输﹝Strip﹞资料较长,而且可以执行Overlapped I/O,因此其读取的性能很好。
但是由于使用单一专属的Parity Disk 来存放Parity Data,因此在写入时,就会造成很大的瓶颈。因此,RAID 4并没有被广泛地应用。
RAID 5特点与应用
RAID 5也是采取独立存取模式,但是其Parity Data 则是分散写入到各个成员磁盘驱动器,因此,除了具备Overlapped I/O 多任务性能之外,同时也脱离如RAID 4单一专属Parity Disk的写入瓶颈。但是,RAI?D 5在座资料写入时,仍然稍微受到"读、改、写过程"的拖累。
由于RAID 5 可以执行Overlapped I/O 多任务,因此当RAID 5的成员磁盘驱动器数目越多,其性能也就越高,因为一个磁盘驱动器再一个时间只能执行一个 Thread,所以磁盘驱动器越多,可以Overlapped 的Thread 就越多,当然性能就越高。但是反过来说,磁盘驱动器越多,数组中可能有磁盘驱动器故障的机率就越高,整个数组的可靠度,或MTDL (Mean Time to Data Loss) 就会降低。
由于RAID 5将Parity Data 分散存在各个磁盘驱动器,因此很符合XOR技术的特性。例如,当同时有好几个写入要求发生时,这些要写入的数据以及Parity Data 可能都分散在不同的成员磁盘驱动器,因此RAID 控制器可以充分利用Overlapped I/O,同时让好几个磁盘驱动器分别作存取工作,如此,数组的整体性能就会提高很多。
基本上来说,多人多任务的环境,存取频繁,数据量不是很大的应用,都适合选用RAID 5 架构,例如企业档案服务器、WEB 服务器、在线交易系统、电子商务等应用,都是数据量小,存取频繁的应用。
RAID 0+1﹝RAID 10﹞
RAID 0+1/RAID 10,综合了RAID 0 和 RAID 1的优点,适合用在速度需求高,又要完全容错,当然经费也很多的应用。RAID 0和RAID 1的原理很简单,合起来之后还是很简单,我们不打算详细介绍,倒是要谈谈,RAID 0+1到底应该是RAID 0 over RAID 1,还是RAID 1 over RAID 0,也就是说,是把多个RAID 1 做成RAID 0,还是把多个RAID 0 做成RAID 1?
RAID 0 over RAID 1
假设我们有四台磁盘驱动器,每两台磁盘驱动器先做成RAID 1,再把两个RAID 1做成RAID 0,这就是RAID 0 over RAID 1:
(RAID 1) A = Drive A1 + Drive A2 (Mirrored)
(RAID 1) B = Drive B1 + Drive B2 (Mirrored)
RAID 0 = (RAID 1) A + (RAID 1) B (Striped)
RAID 1 over RAID 0
假设我们有六台磁盘驱动器,每两台磁盘驱动器先做成RAID 0,再把两个RAID 0做成RAID 1,这就是RAID 0 over RAID 1:
(RAID 0) A = Drive A1 + Drive A2 (Striped)
(RAID 0) B = Drive B1 + Drive B2 (Striped)
RAID 1 = (RAID 1) A + (RAID 1) B (Mirrored)
在这种架构之下,如果 (RAID 0) A有一台磁盘驱动器故障,(RAID 0) A就算毁了,当然RAID 1仍然可以正常工作;如果这时 (RAID 0) B也有一台磁盘驱动器故障,(RAID 0) B也就算毁了,此时RAID 1的两磁盘驱动器都算故障,整个RAID 1资料就毁了。
因此,RAID 0 OVER RAID 1应该比RAID 1 OVER RAID 0具备比较高的可靠度。所以我们建议,当采用RAID 0+1/RAID 10架构时,要先作RAID 1,再把数个RAID 1做成RAID 0
本文地址:http://com.8s8s.com/it/it28508.htm