这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 四大RAID存储详解

共1条 1/1 1 跳转至

四大RAID存储详解

助工
2014-11-04 19:11:41     打赏

随着NAS和SAN存储应用的出现,使用物理存储的技巧和利用这些技巧来满足系统需求快速地消失了。这并不是一件好事。因为我们将存储卸载到外置设备上的做法并没有改变这样一个事实,我们需要从根本上了解我们的存储情况,通过配置存储来满足系统的特定需求。


  最近五到十年似乎出现这样一种误解,认为RAID可以等同于系统备份。而事实并非如此。RAID只是容错的一种形式。


  备份和容错从概念上来讲是完全不同的。备份让我们可以在灾难发生之后实施恢复。而容错旨在降低灾难发生的几率。容错就像是在悬崖上搭建一个防护网,而备份就像是悬崖下面建造一座医院。你恐怕永远也不希望既没有防护网也没有医院,但他们是完全不同的两个事物。


  一旦我们为驱动器部署了RAID,不管是本地附加还是在存储网络中的远程应用,现在我们有四种主要的RAID解决方案可以用于业务中:RAID 1(镜像)、RAID 5(带校验的磁盘条带)、RAID 6(带双重校验的磁盘条带)以及RAID 10(带有条带的镜像)。


  还有其他类型的等解决方案,例如RAID 0,但如果你真正了解你的驱动器子系统需求,那么你就知道这些只能用于少数环境中。另外人们使用的还有RAID 50和RAID 51,但是更加少见,而且效率并不那么高。十年前,RAID 1和RAID 5是很常见的,但是今天我们已经有了更多的选择。


  下面让我们来逐个分析这些选择并讨论一些基本的数据。在我们的例子中,我们将使用“n”来代表阵列中的驱动器数量,“s”代表任何单个驱动器的大小,以此来表示一个阵列的可用存储空间,更直观地进行存储容量对比。


  RAID 1


  这种类型的RAID是对驱动器进行镜像。你有两个驱动器,它们同时在一起做所有事情,因此称做“镜像”。因为这个过程非常简单,所以镜像是非常稳定的,但是如果你之前从来没有使用过RAID的话,这就要求你必须购买是实际需要两倍的驱动器,因为第二个驱动器作为冗余之用。


  RAID 1的好处在于你可以确保写入到磁盘中的每个字位都被写入两遍以达到保护的目的。因此,使用RAID 1我们的存储容量应该是(n*s/2)。RAID 1比非RAID驱动器性能要略高一些,写入速度接近于非RAID系统,而读取速度几乎是大多数情况下的两倍,因为在读取操作过程中驱动器可以并行地进行访问,从而提高了吞吐量。RAID 1限制于两个驱动器。


  RAID 5


  带校验的磁盘条带。在这种类型的RAID中,数据以复杂条带的形式写入到阵列中的所有驱动器中,同时所有驱动器中都有分布数校验块。这样RAID 5就可能使用三个或者更多磁盘组成的任意大小的阵列,只牺牲相当于一个磁盘的存储容量用于校验。但是这种校验是分布式的,并不单独存在于任何一个物理磁盘中。


  RAID 5由于在大型阵列中牺牲的存储容量较少,所以它具有成本效益的特点,从而被人们所广泛使用。与镜像不同的是,带有校验的条带要求必须在磁盘之间进行针对每个写入条带的计算,这造成了一部分的开销。因此,吞吐量并不总是一个容易计算的项目,它在很大程度上取决于系统在做校验计算时候的计算能力。


  计算RAID 5的容量非常简单:就是((n-1)*s)。RAID 5阵列可以避免这列中任何单个磁盘的丢失。


  RAID 6


  带双重校验的磁盘条带。RAID 6与RAID 5非常相似,但它的每个条带使用两个校验块,而不是一个,这加强了应对磁盘故障的保护能力。


  RAID 6是RAID家族中的新成员。RAID 6是其他几个RAID类型实现标准化几年之后增加的。RAID 6比较特殊,因为它可以承受阵列中任意两个驱动器的故障,同时防止数据丢失。但是为了配合额外的冗余度,RAID 6阵列需要牺牲阵列中相当于两个驱动器的容量,并要求真列中最少有四个驱动器。RAID 6的容量可以用((n-2)*s)来计算。


  RAID 10


  带条带的镜像。从技术上来说,RAID 10是一种混合的RAID,包括存在于一个非校验条带(RAID 0)中的一对RAID镜像。


  当一个阵列中只有两个驱动器的时候,很多厂商会称其为RAID 10(或者RAID 10+),但从技术上来说这应该是RAID 1,因为阵列中至少有四个驱动器才会发生条带化。对于RAID 10来说,驱动器必须是一对一对添加的,因此阵列中的驱动器数量只可能是偶数。


  RAID 10可以在丢失近半数驱动器组的情况下正常运转,同是最多只能承受每个驱动器中一个驱动器发生故障或者丢失。RAID 10不包含校验计算,这使得它相对RAID 5和RAID 6来说具有一定的性能优势,而且阵列对计算能力的要求也更低。RAID 10提供了超过任何一种常见类型RAID的读取性能,因为在读取操作中阵列中的所有驱动器都可同时使用。但是RAID 10的写入性能要低很多。RAID 10的容量计算方法和RAID 1相同,都是(n*s/2)。


共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]
站长统计