RAID是最初为网络服务器市场开发的解决方案,作为以较低成本创建大型存储的手段。从本质上讲,它需要多个低成本的硬盘驱动器,并通过控制器将它们组合在一起,以提供单个更大容量的驱动器。这就是RAID所代表的:廉价驱动器或磁盘的冗余阵列。为此,需要专门的软件和控制器来管理在各种驱动器之间分配的数据。
最终,标准计算机系统的处理能力使这些功能可以过滤进入个人计算机市场。
现在,RAID存储可以是基于软件或硬件的,并且可以用于三个不同的目的。这些包括容量,安全性和性能。容量是一个简单的容量,通常涉及几乎所有类型的RAID设置。例如,两个硬盘驱动器可以作为单个驱动器链接在一起,有效地使虚拟驱动器的容量增加一倍。性能是在个人计算机上使用RAID设置的另一个关键原因。在两个驱动器用作单个驱动器的相同示例中,控制器可以将数据块拆分为两个部分,然后将每个部件放在单独的驱动器上。这有效地使在存储系统上写入或读取数据的性能加倍。最后,RAID可用于数据安全性。
这是通过使用驱动器上的一些空间来实现克隆写入两个驱动器的数据。再一次,我们可以使用两个驱动器将数据写入两个驱动器。因此,如果一个驱动器发生故障,另一个驱动器仍然有数据。
根据要为计算机系统组合的存储阵列的目标,您将使用各种级别的RAID之一来实现这三个目标。
对于那些在计算机中使用硬盘驱动器的人来说,性能可能比容量更重要。另一方面,那些使用固态硬盘的人可能想要一种方法来获取较小的驱动器并将它们链接在一起以创建一个更大的驱动器。因此,让我们来看看可以与个人计算机一起使用的各种级别的RAID。
RAID 0
这是RAID的最低级别,实际上不提供任何形式的冗余,这就是为什么它被称为0级。本质上,RAID 0需要两个或更多驱动器并将它们组合在一起以形成更大容量的驱动器。这是通过称为条带化的处理器实现的。数据块被分解为数据块,然后按顺序写入驱动器。这提供了更高的性能,因为控制器可以将数据同时写入驱动器,从而有效地增加驱动器的速度。下面是一个如何在三个磁盘上工作的示例:
驱动1 | 开车2 | 开车3 | |
---|---|---|---|
第1座 | 1 | 2 | 3 |
第2块 | 4 | 5 | 6 |
第3块 | 7 | 8 | 9 |
为了使RAID 0有效地提高系统性能,您需要尝试匹配驱动器。每个驱动器应具有相同的存储容量和性能特征。 如果他们不这样做,则容量将被限制为最小驱动器的倍数和性能最慢的驱动器,因为它必须等待所有条带被写入,然后才能移动到下一组。可以使用不匹配的驱动器,但在这种情况下,JBOD设置可能更有效。 JBOD仅代表一堆驱动器,实际上只是一组驱动器,可以相互独立访问,但作为操作系统的单个存储驱动器。这通常通过使数据跨越驱动器来实现。通常这被称为SPAN或BIG。 实际上,操作将它们全部视为单个磁盘,但是块将在第一个磁盘上写入,直到它填满,然后进展到第二个磁盘,然后是第三个磁盘等。这对于在现有计算机系统中添加额外容量非常有用。使用各种尺寸的驱动器但不会增加驱动器阵列的性能。 RAID 0和JBOD设置的最大问题是数据安全性。由于您有多个驱动器,因此您有更多的故障点,因此数据损坏的可能性会增加。如果RAID 0阵列中的任何驱动器发生故障,则所有数据都将无法访问。在JBOD中,驱动器故障将导致丢失发生在该驱动器上的任何数据。因此,对于那些想要使用这种存储方法的人来说,最好有其他方法来备份他们的数据。 这是RAID的第一个真实级别,因为它为存储在阵列上的数据提供了完整的冗余级别。这是通过一个称为镜像的过程完成的。实际上,写入系统的所有数据都将复制到1级数组中的每个驱动器。这种形式的RAID通常仅使用一对驱动器来完成,因为添加更多驱动器不会增加任何额外容量,只需更多冗余。为了更好地举例说明,这里有一个图表,显示如何将其写入两个驱动器: 为了从RAID 1设置中获得最有效的使用,系统将再次使用具有相同容量和性能等级的匹配驱动器。 如果使用不匹配的驱动器,则阵列容量将等于阵列中的最小容量驱动器。例如,如果在RAID 1阵列中使用了一个半太字节和一个太字节驱动器,则该阵列在系统上的容量将只有一兆兆字节。 此级别的RAID对数据安全性非常有效,因为这两个驱动器实际上是相同的。如果两个驱动器中的一个发生故障,则另一个驱动器具有另一个驱动器的完整数据。这种类型的设置的问题通常是确定哪个驱动器出现故障,因为当两个驱动器中的一个发生故障时,存储变得无法访问,并且在插入新驱动器代替发生故障的驱动器并且恢复之前无法正常恢复存储进程运行。如前所述,由此也没有任何性能提升。实际上,RAID控制器的开销会有轻微的性能损失。 这是RAID级别0和级别1的稍微复杂的组合。实际上,控制器将需要至少四个驱动器才能在此模式下运行,因为它将要做两对驱动器。第一组驱动器是镜像阵列,克隆两者之间的数据。第二组驱动器也是镜像的,但设置为第一组驱动器。这提供了数据冗余和性能增益。下面是使用此类设置如何跨四个驱动器写入数据的示例: 说实话,这不是在计算机系统上运行的RAID的理想模式。虽然它确实提供了一些性能提升,但由于系统上的大量开销,它确实不是那么好。此外,这是一个巨大的空间浪费,因为驱动器阵列的容量只有所有驱动器组合的一半。如果使用不匹配的驱动器,性能将限制为最慢的驱动器,容量将是最小驱动器的两倍。 这是可以在消费者计算机系统中找到的最高级别的RAID,并且是增加容量和冗余的更有效的方法。它通过奇偶校验的数据条带化来实现这一目标。至少需要三个驱动器才能执行此操作,因为数据在几个驱动器上被分割成条带,但是跨越条带的一个块被留出用于奇偶校验。为了更好地解释这一点,让我们先来看看如何跨三个驱动器写入数据: 本质上,驱动器控制器需要在阵列中的所有驱动器上写入一大块数据。第一个数据位于第一个驱动器上,第二个数据位于第二个驱动器上。第三个驱动器获得奇偶校验位,这基本上是第一个和第二个上的二进制数据的比较。在二进制数学中,您只有0和1.进行布尔数学处理以比较这些位。如果两者加起来为偶数(0 + 0或1 + 1),则奇偶校验位将为零。如果两者加起来为奇数(1 + 0或0 + 1),则奇偶校验位为1。原因是如果其中一个驱动器发生故障,控制器就可以确定丢失的数据是什么。例如,如果驱动器1发生故障,只留下驱动器2和3,驱动器2的数据块为1,驱动器3的奇偶校验块为1,则驱动器1上的丢失数据块必须为零。 这提供了有效的数据冗余,允许在驱动器发生故障时恢复所有数据。现在,对于大多数消费者设置,失败仍将导致系统不存在,因为它不处于功能状态。为了使系统正常运行,必须使用新驱动器更换故障驱动器。然后必须在控制器级别完成数据重建过程,然后执行反向布尔函数以在缺失的驱动器上重新创建数据。这可能需要一些时间,特别是对于大容量驱动器,但它至少是可以恢复的。 现在,RAID 5阵列的容量取决于阵列中的驱动器数量及其容量。同样,阵列受到阵列中最小容量驱动器的限制,因此最好使用匹配的驱动器。有效存储空间等于驱动器数量减去最低容量的一倍。所以在数学方面,它是 (n-1)* Capacitymin 。因此,如果RAID 5阵列中有三个2GB驱动器,则总容量将为4GB。使用四个2GB驱动器的另一个RAID 5阵列将具有6GB容量。 现在,RAID 5的性能比某些其他形式的RAID要复杂一些,因为在将数据写入驱动器时必须完成布尔过程以创建奇偶校验位。这意味着写入性能将低于具有相同驱动器数量的RAID 0阵列。另一方面,读取性能不会像写入那样受到影响,因为布尔过程没有完成,因为它从驱动器读取直接数据。 我们已经讨论了可以在个人计算机上使用的每个RAID级别的各种优缺点,但是在创建RAID驱动器设置时,还有许多人没有意识到这个问题。在使用RAID设置之前,首先必须由硬件控制器软件或在操作系统的软件中构建。这实际上初始化了正确跟踪数据在驱动器上的写入和读取方式所需的特殊格式。 这可能听起来不像是一个问题,但如果您甚至需要更改您希望配置RAID阵列的方式。例如,假设您的数据运行不足,并希望为RAID 0或RAID 5阵列添加额外的驱动器。在大多数情况下,如果没有首先重新配置RAID阵列,您将无法删除存储在这些驱动器中的任何数据。这意味着您必须完全备份数据,添加新驱动器,重新配置驱动器阵列,格式化驱动器阵列,然后将原始数据还原到驱动器。这可能是一个非常痛苦的过程。因此,确保在第一次执行此操作时确实按照您希望的方式设置阵列。RAID 1
驱动1 开车2 第1座 1 1 第2块 2 2 第3块 3 3 RAID 1 + 0或10
驱动1 开车2 开车3 开车4 第1座 1 1 2 2 第2块 3 3 4 4 第3块 5 5 6 6 RAID 5
驱动1 开车2 开车3 第1座 1 2 p 第2块 3 p 4 第3块 p 5 6 所有RAID设置的大问题