适用于中小企业(SMB)的RAID级别

虽然目前普遍被正式承认和使用的RAID级别非常多,而且这些不同的RAID所结合之后演变出的新的RAID级别也有不少,但是在中小企业中,只有极少数的RAID级别被广泛使用。

Raid0

Raid0本质上来讲根本不应该算是一种Raid级别,因为Raid0根本就没有冗余效果。Raid0只是用来指代将数据条带化分部到多块磁盘上的这种技术。它能够提高对数据的读写速度,但是对任何一个磁盘故障的情况下不提供任何保护措施。Raid0一般被用来提升针对临时文件的读写性能。对于长度大于一个Block(一个Block一般为4KB大小)的文件来说,Raid0可以并行的从多块磁盘来读写这个文件所对应的数据,所以也就提高了访问速度。然而,因为它没有冗余效果,所以它不能够在磁盘故障的情况下对数据提供保护。

Raid1

Raid1本质上也就是对每个写入操作进行镜像处理,即,将相同的数据同时写入两块或者多块磁盘。数据被写入不同的磁盘两次。Raid1原理上很简单,它提供优秀的数据保护能力,而且在磁盘故障之后,数据回拷的过程也是很迅速的。

Raid1的一个不足之处就是成本过高。它可以说是一种最消耗存储空间的Raid级别了,因为Raid1对存储空间的需求量基本上等于实际数据存储数量的两倍。所以,如果你有300GB的数据,那么你就需要600GB的磁盘空间,也就是将你的磁盘成本增加了一倍。

Raid3

Raid3引入了数据校验(Parity)的方法,一旦一块磁盘发生故障,那么系统可以使用校验数据将丢失的数据重新计算出来。在一个Raid3的Raid组中,单独的一块磁盘被用来存放校验数据,用户数据则被条带化的分部到其它的磁盘上。如果一块磁盘故障,Raid3则使用校验数据来将失败磁盘上的数据重建(Reconstruct)出来。

Raid5

对于SMB来讲,Raid5几乎可以说是最为普遍使用的一种了。它在数据保护和经济性方面取得很好的平衡。在一个Raid5的Raid组中,所有的用户数据以及校验局都被条带化平均分部到了所有的磁盘上。然而,数据校验却引入了额外的负担,所以Raid5相对于Raid10来讲,会有一定的性能惩罚。不但写入数据的时候会因为数据校验带来的惩罚而使得性能降低,而且在磁盘故障之后的数据重建过程中,也会因为这种校验惩罚而导致重建时间大增。当一块磁盘故障之后,重建尚未完成的这段时间内,此时整个Raid5组就是一个单点故障了,一旦再有一块磁盘损坏,那么数据丢不保了。

Raid6

Raid6相当于在Raid5的基础之上在增加一个额外的冗余保护。它使用两个校验磁盘而不是一个,也就是说它能够抵御两块磁盘损坏之后的数据丢失风险。随着SATA磁盘的使用率日益提高,Raid6也正在被越来越多的人所使用。SATA盘相对于SCSI盘来讲更加廉价,但是可靠性不及后者,所以对SATA盘使用Raid6是最合适不过了。

Raid10

Raid10属于一种“嵌套”模式的Raid级别。也就是说,它结合了两种另外的Raid级别来实现额外的好处。Raid10首先将数据在磁盘之间进行镜像处理,然后再将镜像之后的数据进行条带化分布。条带化带来的好处就是大大提高了性能,而镜像则可以提供冗余性。Raid10既具有Raid1的简单性和冗余性,又具有条带化的高性能。像Raid1一样,Raid10对存储空间的耗费也是很高的,但是许多系统管理员依然愿意花费高价来使用Raid10

Raid10的另一个变种是Raid01,Raid01则是先将数据条带化分布到多个磁盘之上,然后再将多个条带化之后的数据集进行镜像处理。Raid01相对于Raid10来讲在健壮性方面有所降低,所以它并不及Raid10受欢迎。除此之外,还有另外的一些Raid级别,比如Raid2,但是Raid2从来没被真正的商业化使用过,但是对于一些极少的情况下,比如针对大尺寸的连续分布的文件的存储系统中,偶尔会被使用。还有Raid4等。

如果你追求性能,那么Raid10是最好不过了。如果追求经济性,那么Raid5会在保证数据冗余性的前提下,耗费最少的磁盘数量。当你需要对数据进行额外层次的保护的时候,那么可以使用Raid6。在这些例子中,请尽量保证Raid组中拥有足够数量的热备磁盘(当其他磁盘故障之后用于立即顶替的额外磁盘)。

除非你已经拥有了很多的磁盘阵列,或者追求非常高的性能,那么任何一种Raid类型,比如Raid0,都适合SMB。