早在我还是一个服务技术新手的时候,我对系统管理一无所知,我们一直想要了解的话题之一就是RAID——廉价冗磁盘阵列(Redundant Array of Inexpensive Disks)。
它是解决我们所有存储难题的钥匙。有了RAID,我们可以扩大文件系统,获得更好的吞吐量甚至是增加冗余性,让我们幸免于磁盘丢失事件,尤其是在那些经常发生此类事件的日子里。
随着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)。
在当今的企业中,很少有IT部门有迫切的需要考虑除了上述这四种RAID之外的驱动器配置,不管他们是否已经部署RAID软件或者硬件。以前,RAID阵列决策中最主要的一个考虑因素是可用容量。这是因为以前驱动器不仅昂贵而且容量很小。
现在,驱动器都很大因此存储容量基本不是什么问题,至少不再像几年前那样,而且成本也大幅度降低,购买更多驱动器以获得更高冗余度也不是什么难事。当容量是主要考虑因素的时候,RAID 5是一个比较受欢迎的选择,因为相比其他阵列类型来说,RAID 5损失的容量最少。
现在我们还有其他方面的顾虑,主要集中在数据安全和性能方面。多花一些钱来加强数据保护应该是一个显而易见的选择。RAID 5只能接受损失一个驱动器。对于只有三个驱动器的阵列来说,这相比RAID 1所提供的保护能力来说还要更危险一些。
我们可以接受三个驱动器中丢失任何一个驱动器。与丢失两个驱动器中任何一个相比这并没有那么令人害怕。但如果是一个大型阵列呢,例如16个驱动器?能够安全地损失16个驱动器中的一个,这的确会让我们质疑可靠性。
这时候RAID 6填补了这一空白。RAID 6常被用于大型阵列中,损失的存储容量和性能非常小,而且接受丢失任何两个驱动器。带校验码的条带化RAID的支持者经常引用这些数字来安抚管理层,称RAID 5/6可以提供足够“物廉价美”的存储子系统。但是用户还有其他因素需要考虑。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
翻译
相关推荐
-
RAID类型详解
RAID可以实现更好的存储性能,带来更高的可用性。市场上有许多种不同的RAID类型,阅读本篇RAID各类型的详解有助于了解其最适合的场景领域。
-
揭秘:合适的RAID恢复服务
当RAID还原需要的技巧超出内部已掌握的时候,RAID还原服务提供商可能就是解决之道,只要选择合适的一家即可。
-
存储虚拟化优势何在?
随着虚拟化不断渗透进存储设计和管理,有关于存储虚拟化的优势却并不明显,这么做是为了什么以及如何去做都成了问题。
-
RAID大起底:哪些优势多少类型?
不同类型的RAID有什么不同以及它们优缺点?使用多于最低要求的驱动器有什么好处?是额外的容量,更多的驱动损耗,还是容错?在什么情况下,RAID类型,特别是RAID 10,能够支持多个硬盘同时故障?在RAID10重建失效驱动器过程中,有何技巧?