RAID级别:RAID 0,RAID1,RAID 10,RAID 5,RAID 6

时间:2020-03-21 11:46:44  来源:igfitidea点击:

硬盘驱动器是连接到计算机系统(或者服务器计算机)的最复杂的设备之一。
硬盘的复杂性是由于它是一种用于存储的机械设备。
磁盘驱动器的大多数内部部件是移动部件,它们移动其磁头以为用户获取数据。

由于这种运动,磁盘驱动器很有可能发生故障。
磁盘驱动器的进步导致移除了机械部件,从而制成了固态驱动器,通常称为SSD。
但是,SSD驱动器仍存在一些缺点,因此,我们无法完全替换机械磁盘驱动器。
完全不建议在服务器计算机上使用单个硬盘,因为这将是单点故障(严重的数据丢失风险)。

RAID解决了其中大多数问题,因为它具有快速,容错和高性能的解决方案。

RAID代表独立磁盘的冗余阵列。
该名称表示磁盘驱动器是独立的,并且有多个。
在这些驱动器之间如何分配数据取决于所使用的RAID级别。

RAID的主要优点是,在操作系统中,磁盘阵列可以显示为单个磁盘。

RAID是容错的,因为在大多数RAID级别中,数据在多个磁盘中都是冗余的,因此,即使一个磁盘发生故障,有时甚至是两个磁盘发生故障,数据也将是安全的,并且操作系统甚至不会意识到该故障。
由于可以从磁盘中恢复没有故障的数据,因此可以防止DATA丢失。

在进入不同级别的RAID之前,让我们了解RAID中使用的不同术语。

什么是RAID中条带化(Stripping)

在单个磁盘上写入数据的速度较慢,但是通过将数据分散在多个磁盘上来写入数据的速度更快(因为将数据以小块的形式写入到不同的磁盘中,并且还通过不同的磁盘以小块的形式来获取数据)

从不同的磁盘中获取数据时,CPU不必等待,因为吞吐量将是所有磁盘的总和。

每个磁盘驱动器都分成小块(有时从4kb到512kb)。

什么是RAID校验?

奇偶校验是一种有趣的方法,用于其中一个磁盘发生故障的情况下重建数据。
尽管了解奇偶校验很有趣,但是奇偶校验是如何工作的,我们会在互联网上找到很少有关奇偶校验的文档。

奇偶校验使用一种非常著名的数学二进制运算,称为“ XOR”。

XOR是一种数学运算,用于从两个输入产生一个输出。
异或者运算的一些示例如下。

1'st运算数2'nd运算数xor 输出
110
101
011
000

我们可以在执行XOR二进制运算时简单地制定一条规则,即如果运算符存在差异,则XOR输出为1.

在上面显示的示例表中,将“ 1'st operator”和“ 2nd operator”列视为RAID阵列中的硬盘,将第三列“ XOR OUPUT”视为奇偶校验磁盘。

现在,如果其中一个磁盘发生故障,则可以借助奇偶校验磁盘和另一个未发生故障的磁盘轻松地在发生故障的磁盘上构造数据。

RAID的平价可以有两种类型。

  • 专用奇偶校验(专用奇偶校验磁盘上的数据位的异或者)
  • 分布式奇偶校验(在所有数据磁盘上分布的数据位的异或者)

RAID 5进行分布式奇偶校验,因此可以在一个磁盘故障中幸免。

RAID 5执行双重分布式奇偶校验,因此可以保证两个磁盘故障。

实际上,raid级别0并不是RAID,因为raid主要是为冗余而构建的,而raid 0尽管提供了高性能,但它不提供任何类型的冗余。

RAID等级1(RAID 1)

RAID 1大量使用了镜像。
该驱动器中的所有数据都复制到另一个驱动器。
它可以用于容错能力最为重要的情况。

RAID 1中的最大驱动器数量可以是32,从2的起始数量开始(需要偶数磁盘)。

RAID 1中不使用条带化和奇偶校验

对于RAID 1,可以参考本文的raid镜像部分中显示的图。

RAID等级5(RAID 5)

RAID 5级使用条带化,因此数据分布在阵列中使用的多个磁盘上,并且借助奇偶校验还提供了冗余。

RAID 5是兼顾性能和冗余的最佳成本效益解决方案。
条带化的数据存储方法始终可以提高性能,并且在此RAID级别中使用的奇偶校验是分布式奇偶校验。

RAID 5所需的最小磁盘数为3,最大磁盘数可达32(取决于所使用的RAID控制器)。

要注意的一个重要事实是,RAID5中的阅读率比写作好得多。
这是因为可以通过使用所有磁盘的组合速率来完成读取。

作为参考,我们可以查看本文的Raid中的奇偶校验部分中显示的分布式奇偶校验图。

RAID等级6(RAID 6)

RAID等级6与RAID等级5非常相似,但它又有一个另外的优势。

添加的优点是它可以承受2次驱动器故障,而不是1次。
这是借助奇偶校验再次实现的。
在RAID级别6中,使用双重分布式奇偶校验来实现此级别的冗余。

如果我们看到上面的图表,则数据在RAID 1中具有重复集是多余的,并且也被剥离到多个RAID 1组中以实现性能。

这最适合大量的IO使用,并且还提供100%的冗余。
所需的最小驱动器数为4.
这非常昂贵,因为我们可以清楚地看到,每个RAID 1阵列专用一个磁盘来实现冗余。

但是对于性能和冗余而言,这是一个绝佳的选择。

不同RAID级别的摘要

  • RAID 0使用条带化来实现高性能。 RAID 0无法视为RAID,因为它不提供容错能力。
  • RAID 1使用镜像来实现冗余。
  • RAID 5使用条带化和奇偶校验来实现冗余。它非常适合繁重的读取和低写入操作。
  • RAID 6使用条带化和双重奇偶校验来实现冗余。
  • RAID 10是raid 1和raid 0的组合。由于镜像,它还提供了大量的冗余,并且由于数据在多个raid 1组之间进行条带化,因此还提供了性能。