今天长见识了!

未来的新机器想要组一个磁盘阵列。之前只知道磁盘阵列可以提升读写速度,对磁盘阵列的类型也不甚了解。刚才Google了一下,恶补了有关RAID磁盘阵列的知识。

-------------------------------------------------------------------分-----隔-----线--------------------------------------------------------------------------------------------------

每一个RAID级别都有不同的分布模式,其系统的可靠性也有所不同,并影响系统的性能和冗余度。因此,准确分析RAID系统的可靠性或容错能力,有助于建设投资少、可靠性高的存储系统。
何谓可靠性 [table][tr][td]
[/td][/tr][/table]?
可靠性在理论上讲是概率问题。
一套系统从投入使用开始,连续运行一段时间后会出现故障,通过维修或更换部件后再投入运行;第二次连续运行一段时间后,可能又出现故障……设Ti为运行时间,ti为停运时间,∑T表示平均运行时间,它是T1、T2……Tn的代数平均值,∑t表示平均停运时间,它是t1、t2……tn的代数平均值。如果令R为可靠性,则R=∑T/(∑T+∑t)。设F为故障率,则F=∑t/(∑T+∑t),且R+F=1。
为分析方便,本文仅讨论由相同的RAID级和相同容量的硬盘驱动器组成的磁盘阵列,并且假设硬盘驱动器在100%运行情况下,3年内的可靠性r为0.95。
RAID及其可靠性
RAID是利用若干硬盘驱动器加上控制器按一定的组合方式组成的一个大容量、快速响应和高可靠的存储子系统。硬盘驱动器的不同组合方式形成了不同级别的RAID阵列。
1.RAID 0——数据分割
RAID 0通过2个以上的硬盘驱动器组成一个磁盘阵列,读入和写出的数据流被分割为大小相同的块或条,然后平均分配给各硬盘驱动器来完成传输。虽然组成RAID的磁盘条(Stripe Block)被显示为同一逻辑磁盘,但实际却由几个硬盘驱动器并行处理,使整个系统的性能大大提高。RAID 0阵列的实际容量为M×n(M为硬盘驱动器的容量,n为硬盘驱动器的数量,下同),磁盘利用率为100%。

RAID 0在所有RAID级别中效率最高,但却是惟一不具有容错性的。由于它将数据分成块存储在不同的硬盘驱动器内,从而极大地增加了数据的安全隐患,且这种隐患随着系统中硬盘驱动器总数量的增多而加大,因为如果其中有一个硬盘驱动器中的数据被破坏,整个数据就不能被正确读出了。显然,系统的可靠性值就是每一个单独硬盘驱动器可靠性的乘积,即R=rn,对于12块相同硬盘驱动器组成的RAID 0阵列,有R=0.95^12=54%。
2.RAID 1——磁盘镜像
如果说RAID 0是追求性能而放弃可靠性的话,那么,RAID 1正好相反,它是追求可靠性而放弃性能的一种解决方案。其做法就是通过磁盘镜像使所有在给定硬盘驱动器上写入的数据都被复制到另一个硬盘驱动器上。RAID 1至少由2个硬盘驱动器组成,其实际容量为M×n/2,磁盘利用率为50%。
在RAID 1中,2个硬盘驱动器组成一个镜像对,在一对镜像盘中,如果1个发生错误不会损失任何数据,因为数据可以从镜像盘中恢复。但如

果2个硬盘驱动器都发生了错误,数据则将丢失。
2个硬盘驱动器组成的RAID 1阵列其可靠性计算如下:
1个硬盘驱动器出现错误的概率为1-r,2个同时出现错误的概率为(1-r)×(1-r),则有R=1-(1-r)×(1-r)=r(2-r)。
对于n(n为2的倍数)个硬盘驱动器组成的RAID 1阵列,每2个硬盘驱动器组成一组,共有n/2组,则R=(r(2-r))n/2 。
12块相同硬盘驱动器组成的RAID 1阵列,其可靠性为R=(0.95×(2-0.95))12/2= 99%。
3.RAID 0+1——带镜像的数据分割
RAID 0+1结合了前两种方式的优点。它在具有RAID 0的高性能的同时也具有RAID 1的冗余和镜像能力。在该模式下,数据被分割到一个磁盘组,然后被镜像到另一个磁盘组上,从而导致了良好的输入、输出性能和较高的可靠性。RAID 0+1阵列的实际容量为M×n/2,磁盘利用率为50%。RAID 0+1至少由4个硬盘驱动器构成。其主要缺点是价格昂贵。
在RAID 0+1中,如果一个磁盘组的所有硬盘驱动器出现了错误,该磁盘组的数据将会丢失,不过所有数据都可以从镜像磁盘组中恢复。但是,如果剩余的磁盘组(镜像)的任何一个硬盘驱动器在第一个磁盘组数据被恢复之前出现了错误,那么所有的数据都会丢失。

在n(n为2的倍数)个硬盘驱动器组成的RAID 0+1阵列中,将硬盘分成2组,每组n/2个硬盘。类似RAID 1的计算,有R=1-(1-r′)×(1-r′),其中r′为每组的可靠性。类似RAID 0的计算,有r′=rn/2,则 R=1-(1-rn/2)×(1-rn/2)=rn/2 (2- rn/2)。
对于12块相同硬盘驱动器组成的RAID 0+1阵列,R =0.9512/2×(2-0.9512/2 )=93%。
4.RAID 10——镜像分割
RAID 10(或称RAID 1+0)与RAID 0+1不同,它是用硬盘驱动器先组成RAID 1阵列,然后在RAID 1阵列之间再组成RAID 0阵列。RAID 10模式同RAID 0+1模式一样具有良好的数据传输性能,但却比RAID 0+1具有更高的可靠性。RAID 10阵列的实际容量为M×n/2,磁盘利用率为

50%。RAID 10也需要至少4个硬盘驱动器构成,因而价格昂贵。
RAID 10的可靠性同RAID 1一样,但由于RAID 10硬盘驱动器之间有数据分割,因而数据传输性能优良。
5.RAID 3——带有奇偶校验的比特级的数据分割
在RAID 3中,RAID控制器将计算奇偶(错误修正)信息,并且将它存储到指定的奇偶校验用硬盘驱动器。而数据则被分割成字节或比特大小的块,存储到剩余的硬盘驱动器上。RAID 3提供了较高的数据传输速率,但写入时所需的时间长,因为对每一个写入操作都需要计算奇偶校验信息,并写入奇偶校验用硬盘驱动器。RAID 3阵列至少需要3块硬盘驱动器,其实际容量为M×(n-1),磁盘利用率为(n-1)/n 。
在由n个硬盘驱动器组成的RAID 3磁盘阵列中,如果有一个硬盘驱动器出现故障,数据不会丢失;如果奇偶校验硬盘驱动器出现故障,存储的数据不会丢失,但冗余将丢失;如果一个数据硬盘驱动器出现了故障,RAID控制器使用剩余的数据盘和奇偶校验盘重新计算丢失的数据,系统性能将有稍微的降低,直到出现错误的硬盘驱动器被修复。但如果出现错误的硬盘驱动器被修复以前又出现了错误,那么RAID 3阵列中的所有数据将会丢失。
其可靠性的推导如下:
3个硬盘驱动器均正常的概率为r3,其中2个硬盘驱动器正常、1个故障的概率为C32×r2(1-r),于是有R=r3+3r2(1-r) 。
对于n个硬盘驱动器组成的RAID 3阵列,则类似有R=rn+Cnn-1rn-1(1-r)=rn-1(n-r(n-1))。
对于由12块相同硬盘驱动器组成的RAID 3阵列,有:
R =0.95 (12-1)×(12-0.95×(12-1))=88%。
6.RAID 5——带有奇偶校验分割的数据分割
RAID 5与RAID 3很相似,不同之处在于RAID 5的奇偶校验信息也同数据一样被分割保存到所有的硬盘驱动器,而不是写入一个指定的硬盘驱动器,从而消除了单个奇偶校验硬盘驱动器的瓶颈问题。RAID 5磁盘阵列的性能比RAID 3有所提高,但仍然需要至少3块硬盘驱动器。其实际容量为M×(n-1),磁盘利用率为(n-1)/n 。
由3块硬盘驱动器组成的RAID 5磁盘阵列如图5所示。

与RAID 3一样,在RAID 5阵列中,当一个硬盘驱动器发生错误时,所有的数据仍然是可用的,丢失的数据将从剩余的硬盘驱动器和奇偶校验信息中重新计算得到,但当2个以上的硬盘驱动器同时出现失败,则所有数据将会丢失。
RAID 5的可靠性与RAID 3相同。
各种RAID级别的磁盘阵列性能比较
对于由12块硬盘驱动器组成的不同RAID阵列,其可靠性期望值见附表。

这些可靠性期望值显示了使用镜像的RAID阵列比使用奇偶校验的RAID 阵列更可靠。表现良好的当属RAID 10,一个分割和镜像的混合体,具有在三年内没有任何数据丢失的最高可能性为99%,而RAID 0因为不使用镜像,它丢失数据的可能性最高为46%。当然,在实际应用中,为选择合适的RAID阵列,应综合考虑RAID阵列的可靠性、数据传输性能、组建成本,以及磁盘阵列的用途和应用环境等因素。

[ 本帖最后由 pilotlin_76 于 2007-8-28 17:08 编辑 ]

鉴于组建RAID 0阵列不仅磁盘空间利用率只剩下50%,而且对性能提升没有任何帮助,基本可以不考虑。RAID 0+1或者其他形式成本又比较高。也不在考虑之列。

对于普通桌面/游戏应用用户来说,数据安全性并不是十分重要。组建一个2磁盘的RAID 0阵列是一个不错的选择。因为按照以上公式,2磁盘的RAID 0阵列3年内不丢失数据的概率为0.95^2=0.9。即可以得到90%的可靠性,还算是一个比较可以接受的数字了。

我去查过报价,一个320G的迈拓硬盘是650大洋,160G的则只需要440。

如果你的主板支持磁盘阵列,组建一个双160G硬盘的RAID 0阵列只需880大洋。比单个320G的硬盘多花230元,牺牲一点点数据安全性,在读/写硬盘时就可以获得80%的性能提升。

况且硬盘选购还有一个原则。就是单个硬盘的盘片数量要尽可能少。因为硬盘的可靠性会随着盘片的增加而下降,现今的硬盘单碟容量最高是160G,我看中的那种正好只有单片。我对两个160G的硬盘组成的阵列可靠性还是有信心的。

RAID 0 的图片画错了 …

组上之后最好不要分区…就1个C盘 …

不然出了问题数据不容易恢复

就让我来当一回小白鼠吧,等装好了再把结果告诉大家:lol :lol :lol

没必要使用raid 0,当内存足够大时,虚拟内存用得少,游戏中就不会频繁读盘,load的时候增加一点时间又有何妨

[

不分区?数据很难管理的啊。

两个盘的RAID 0故障率应该不会那么高吧?

额。。。这些图让我想到了并联串联的电路。。。

技术贴么~~~~~