RAID原理Raid 0Raid 1Raid2Raid 33+spareRaid 55+spareRaid 6 Raid 0+1 Raid 10 串联 JBOD
RAID 原理
RAID是Redundant Array of Independent Disk缩写(独立冗余磁盘阵列,是一项能提升外部存储解决方案性能的存储虚拟化技术。它能让您根据自己在性能、容错能力、容量等方面的需要选择最佳的设备使用方式。简单地说,RAID 技术可以将一个硬盘上的任务分散或复制到多个(少则两个)磁盘上,借此来提高性能或建立数据冗余以防驱动器发生故障。您可以通过设定设备的 RAID 模式来决定设备以何种方式处理数据。
本文将介绍存储设备中所使用的各种 RAID 级别,以及每种模式下为优化硬盘在 RAID 阵列中的速度、安全性或存储容量而使用的特性。
提醒:任何 RAID 配置都不能在软件或文件系统损坏的情况下确保数据的可靠性。因此,中存储www.chinastor.cn,建议定期进行备份,以便保护数据。
RAID 配置可让多个硬盘驱动器以不同的方式(例如使用条带技术或镜像技术)组合成单一的运行单元。RAID 具备容量更大、可靠性更高、速度更快、吞吐量更大或数据集成能力更强等潜在优势(或组合优势),因此通常与同等级别的单一驱动器相比更为实惠。
RAID 级别
RAID 级别有许多种,各有各的限制和优点。选择哪种 RAID 级别较为合适完全取决于用户自身的需要。
RAID 0:条带集 -(或条带卷)将数据平均分布到两个或两个以上磁盘中,不带冗余奇偶校验信息。
RAID 1:镜像集 – 在两个或两个以上磁盘上创建一组数据的镜像或原样副本,提供针对单一磁盘故障的保护。
RAID 0+1:条带的镜像 – 此种级别的 RAID 用于在多个磁盘之间共享和复制数据。
RAID 5:带奇偶校验的条带集– 需要至少三个磁盘,将带有奇偶校验数据的数据块级条带分布到所有磁盘中,这是一种实现低价冗余的理想方法。
RAID 10:镜像的条带 – 有时也称为 RAID 1+0,它与 RAID 0+1 类似,但既然 RAID 10 是镜像的条带,所以它与 RAID 0+1 恰好相反。
串联:JBOD – “简单磁盘捆绑”,是一种将多个磁盘组合成单一虚拟硬盘的常见方法,这种方法无法享受 RAID 优势。
RAID 术语
为更好地了解 RAID 的工作方式,首先应熟悉以下术语:
条带化是指将数据分到多个驱动器上。条带 RAID 阵列通常用于将最大的容量合并到单个卷中。
镜像是指将数据复制到多个磁盘上。镜像 RAID 阵列通常能在阵列中有磁盘(至少一个)发生故障时确保数据不丢失,具体取决于阵列的 RAID 级别。
容错可让 RAID 阵列在磁盘发生故障时继续工作(即用户仍然可以使用阵列中存储的数据)。不过,并不是所有镜像 RAID 阵列都是用户友好的。例如,有些 RAID 设备必须在关闭后才能更换发生故障的磁盘,而设备支持“热插拔”式磁盘更换,因此可以在设备开启、而且数据可供访问的情况下更换故障磁盘。
标准的 RAID 级别
RAID 0(在某些设备中也称为 FAST 模式)是速度最快的一种 RAID 模式。它需要至少两个驱动器,并且会将数据分条到每个磁盘。所有磁盘的可用容量合在一起,成为计算机上的一个逻辑卷。一旦阵列中有一个物理磁盘发生故障,所有磁盘的数据都将不可访问,因为有部分数据已被写入所有磁盘。
RAID 0 应用场景
RAID 0 是要求最高速度和最大容量的用户的理想选择。要处理超大型文件的视频编缉人员可以使用 RAID 0 来编辑视频的多个流,以达到最佳播放效果。RAID 0 阵列更适于在频繁的文件处理(例如视频编辑)中使用,不宜用作唯一的存储备份解决方案,也不宜在关键任务系统中使用。
如何计算 RAID 0 的容量
RAID 0 系统中每个磁盘的容量都应相同。
在 RAID 级别 0 配置中,存储容量的计算方式为驱动器数乘以磁盘容量,即 C = n*d,其中:
C = 可用容量
n = 磁盘数
d = 磁盘容量
例如,如果一个 RAID 0 阵列中包含四个驱动器,每个驱动器的容量为 1000GB,则阵列的总容量为 4000GB:
C = (4*1000)
RAID 1(在某些 设备中也称为 SAFE 模式)是一种安全的 RAID 模式,它至少需要两个驱动器,并且驱动器成对工作。计算机上将安装一个逻辑卷,两个驱动器合并后的可用容量限制为不超过最小磁盘的容量。如果其中一个物理磁盘出现故障,可以立即从第二个磁盘上获取数据。即使一个磁盘出现故障,也不会丢失任何数据。
RAID 1 应用场景
在一个磁盘出现故障时,RAID 1 可提供最高的数据安全性,但由于数据需写入两次,因此在写入时性能会略有下降。在更注重安全性而非速度的情况下,RAID 1 是理想选择。
如何计算 RAID 1 的容量
RAID 1 系统中每个磁盘的容量都应相同。
在 RAID 级别 1 配置中,存储容量的计算方式为驱动器数乘以磁盘容量再除以 2,即
C = n*d/2
其中:
C = 可用容量
n = 磁盘数
d = 磁盘容量
例如,如果一个 RAID 1 阵列中包含四个驱动器,每个驱动器的容量为 1000GB,则阵列的总容量为 2,000GB:
C = (4*1000)/2
RAID 3 使用字节级别的条带化技术,并采用专用的奇偶校验磁盘(右侧图例中的磁盘 4),因此计算机上会安装一个卷。RAID 3 阵列能在一个磁盘出现故障的情况下确保数据不丢失。如果一个物理磁盘出现故障,该磁盘上的数据可以重建到更换磁盘上。如果数据尚未重建到更换驱动器上,而此时又有一个磁盘出现故障,那么阵列中的所有数据都将丢失。
RAID 3 应用场景
RAID 3 在要读取连续的长文件(如视频文件)的环境中可提供良好的数据安全性。由于数据是从奇偶校验块中读取,因此磁盘故障不会导致服务中断。RAID 3 适用于那些追求性能并要求持续访问数据的用户(如视频编辑人员)。对于密集使用不连续文件的用户来说,RAID 3 并非理想之选,因为专用的奇偶校验磁盘会影响随机读取性能。
如何计算 RAID 3 的容量
RAID 3 系统中每个磁盘的容量都应相同。
在 RAID 级别 3 配置中,存储容量的计算方式为驱动器数减一再乘以磁盘容量,即
C = (n-1)*d
其中:
C = 可用容量
n = 磁盘数
d = 磁盘容量
例如,如果一个 RAID 3 阵列中包含四个驱动器,每个驱动器的容量为 1000GB,则阵列的总容量为 3,000GB:
C = (4-1)*1000
RAID 3+Spare模式下,阵列中会有一个磁盘保持空置状态。如果阵列中有驱动器发生故障,故障磁盘中的数据就会自动重建到空磁盘(或称为“备用”磁盘)上。
RAID 3+Spare 应用场景
RAID 3+Spare模式下,磁盘故障不需要立即处理,因为系统会使用热备用磁盘对自己进行重建,但故障磁盘还是应尽快更换。
如何计算 RAID 3+Space的容量
RAID 3+Spare系统中每个磁盘的容量都应相同。
RAID 3+Spare配置中,存储容量的计算方式为驱动器数减二再乘以磁盘容量,即
C = (n-2)*d
其中:
C = 可用容量
n = 磁盘数
d = 磁盘容量
例如,如果一个 RAID 3+Spare阵列中包含四个驱动器,每个驱动器的容量为 1000GB,则阵列的总容量为 2,000GB:
C = (4-2)*1000
RAID 5 综合了 RAID 0 的条带化技术以及阵列数据冗余技术(阵列最少包括三个磁盘)。
RAID 3 和 RAID 5 之间的区别在于,RAID 3 配置提供的性能更高,但总容量略低。数据会在所有磁盘之间分条,并且每个数据块的奇偶校验块 (P) 写入到同一条带上。如果一个物理磁盘出现故障,该磁盘上的数据可以重建到更换磁盘上。单个磁盘出现故障时,数据不会丢失,但如果数据尚未重建到更换驱动器上,而此时又有一个磁盘出现故障,那么阵列中的所有数据都将丢失。
Raid 5 应用场景
RAID 5 综合考虑了数据安全和磁盘空间充分利用这两方面的因素。由于数据是从奇偶校验块中读取,因此磁盘故障不会导致服务中断。RAID 5 适用于归档,且适合那些追求性能并要求持续访问数据的用户(如视频编辑人员)使用。
如何计算 RAID 5 的容量
RAID 5 系统中每个磁盘的容量都应相同。
在 RAID 级别 5 配置中,存储容量的计算方式为驱动器数减一再乘以磁盘容量,即
C = (n-1)*d
其中:
C = 可用容量
n = 磁盘数
d = 磁盘容量
例如,如果一个 RAID 5 阵列中包含四个驱动器,每个驱动器的容量为 1000GB,则阵列的总容量为 3,000GB:
C = (4-1)*1000
RAID 5+Spare是一种 RAID 5 阵列,其中有一个磁盘用作备用磁盘,用于在磁盘发生故障时立即重建系统。因此,至少需要四个磁盘。
如果一个物理磁盘发生故障,磁盘上的数据仍然可以访问,因为数据是从奇偶校验块中读取的。故障磁盘上的数据将重建到热备用磁盘上。当故障磁盘更换后,更换的磁盘便成为新的热备用磁盘。单个磁盘出现故障时,数据不会丢失,但如果系统尚未将数据重建到热备用磁盘上,而此时又有一个磁盘出现故障,那么阵列中的所有数据都将丢失。
RAID 5+Spare应用场景
RAID 5+Spare的主要优点在于,在系统将数据重建至备用驱动器时用户仍可以继续访问数据。它能提供良好的数据安全,但磁盘空间由于热备用磁盘的存在(在其他磁盘出现故障之后才使用)而受到限制。磁盘故障不需要立即处理,因为系统会使用热备用磁盘对自己进行重建,但故障磁盘还是应尽快更换。
如何计算 RAID 5+Space的容量
RAID 5+Spare系统中每个磁盘的容量都应相同。
RAID 5+Spare配置中,存储容量的计算方式为驱动器数减二再乘以磁盘容量,即
C = (n-2)*d
其中:
C = 可用容量
n = 磁盘数
d = 磁盘容量
例如,如果一个 RAID 5+Spare阵列中包含四个驱动器,每个驱动器的容量为 1000GB,则阵列的总容量为 2,000GB:
C = (4-2)*1000
在 RAID 6 中,数据会在所有磁盘(最少四个)间进行分条,并且每个数据块的两个奇偶校验块(如右图中的 p 和 q)写入到同一条带上。如果一个物理磁盘出现故障,该磁盘上的数据可以重建到更换磁盘上。这种 RAID 模式最多允许两个磁盘出故障而不丢失数据,而且它能更快地重建故障磁盘上的数据。
RAID 6应用场景
在驱动器出现故障时,RAID 6 能进行有效的重建,确保了数据的可靠性。为此,安全性要求较高,而性能要求不高的用户可以选择 RAID 6。
如何计算 RAID 6 的容量
RAID 6 系统中每个磁盘的容量都应相同。
RAID 6 配置中,存储容量的计算方式为驱动器数减二再乘以磁盘容量,即
C = (n-2)*d
其中:
C = 可用容量
n = 磁盘数
d = 磁盘容量
例如,如果一个 RAID 6 阵列中包含五个驱动器,每个驱动器的容量为 1000GB,则阵列的总容量为 3,000GB:
C = (5-2)*1000
嵌套的 RAID 级别
RAID 0+1 是一种安全的 RAID 模式,由条带集的镜像组成。RAID 0+1 阵列包含的磁盘数应为四的倍数。在 RAID 0+1 阵列中,具有五个磁盘的存储产品的第五个磁盘将成为备用磁盘或空置磁盘。在右图中,阵列 B 是阵列 A 的镜像。
在 RAID 0+1 阵列中,最多允许两个磁盘出现故障而不会丢失数据,但故障磁盘必须属于同一 RAID 0 队列。在图中,也就是当磁盘 1 和磁盘 2 出现故障时,数据会保存到磁盘 3 和磁盘 4。
RAID 0+1应用场景
RAID 0+1 使用 RAID 0 条带技术来提供良好的速度,但设备的可用容量会减少一半(假设阵列中所有磁盘的容量都相同)。
如何计算 RAID 0+1 的容量
RAID 0+1 系统中每个磁盘的容量都应相同。
RAID 0+1 配置中,存储容量的计算方式为驱动器数乘以磁盘容量再除以 2,即
C = n*d/2
其中:
C = 可用容量
n = 磁盘数
d = 磁盘容量
例如,如果一个 RAID 0+1 阵列中包含四个驱动器,每个驱动器的容量为 1000GB,则阵列的总容量为 2,000GB:
C = (4*1000)/2
RAID 10(也称为 RAID 1+0)是合并了其他级别(尤其是 RAID 1 和 RAID 0)特点的另一种 RAID 级别。这是一种“镜像集条带”,意思是数据在两个镜像阵列间分条。“条带化”在阵列之间发生,而“镜像”是在相同的阵列中出现,两种技术的组合加快了重建的速度。RAID 10 阵列包含的磁盘数应为四的倍数。在 RAID 10 阵列中第五个磁盘将成为备用磁盘或空置磁盘。请参见右图。
在 RAID 10 阵列中,每个镜像对中可以有一个磁盘出现故障而不丢失数据。不过,故障磁盘所在阵列的工作磁盘会成为整个阵列中的弱点。如果镜像对中的另一个磁盘也发生故障,则会丢失整个阵列。
RAID 10应用场景
RAID 10 使用 RAID 0 条带技术来 提供良好的速度,但设备的可用容量会减少一半(假设阵列中所有磁盘的容量都相同)。
如何计算 RAID 10 的容量
RAID 10 系统中每个磁盘的容量都应相同。
RAID 10 配置中,存储容量的计算方式为驱动器数乘以磁盘容量再除以 2,即
C = n*d/2
其中:
C = 可用容量
n = 磁盘数
d = 磁盘容量
例如,如果一个 RAID 10 阵列中包含四个驱动器,每个驱动器的容量为 1000GB,则阵列的总容量为 2,000GB:
C = (4*1000)/2
其他配置
磁盘串联时,其容量将会合并,并且数据会写入阵列中的主磁盘,主磁盘写满后再写入下一个磁盘。串联无性能优势,也不能增加数据安全措施。它只是一种为扩大总容量而将两个物理磁盘组合为一个卷的方法。
通过串联可以完全使用阵列中所有磁盘的容量,并且在磁盘发生故障时大部分数据都可以保存下来。只有故障磁盘上的数据以及部分写入故障磁盘和作业磁盘的数据才会丢失。
如何计算串联容量
在串联配置中,存储容量的计算方式为驱动器数乘以磁盘容量,即 C = n*d
其中:
C = 可用容量
n = 磁盘数
d = 磁盘容量
例如,如果一个串联阵列中包含四个驱动器,每个驱动器的容量为 1000GB,则阵列的总容量为 4000GB:
C = (4*1000)
JBOD 代表“简单磁盘捆绑”。阵列中的每个磁盘,无论是属于不同设备还是同一设备,都会作为单独的磁盘安装在计算机上。
如何计算 JBOD 容量
JBOD 阵列的总容量就是每个磁盘容量之和,即
C = n*d
其中:
C = 可用容量
n = 磁盘数
d = 磁盘容量
例如,如果一个 JBOD 阵列中包含四个驱动器,每个驱动器的容量为 1000GB,则阵列的总容量为 4000GB:
C = (4*1000)