Raid技术

Raid基本概念

RAID,为Redundant Arrays of Independent Disks的简称,中文为廉价冗余磁盘阵列。在1987年由美国柏克莱大学提出RAID(Redundant Arrayof Inexpensive Disks)理论,作为高性能的存储系统,巳经得到了越来越广泛的应用。RAID阵列技术允许将一系列磁盘分组,以实现为数据保护而必需的数据冗余,以及为提高读写性能而形成的数据条带分布。RAID最初用于高端服务器市场,不过随着计算机技术的快速发展,RAID技术已经渗透到计算机遍布的各个领域。如今,在家用电脑主板中,RAID控制芯片也随处可见。

在这里插入图片描述

RAID 级别

镜像提供高可靠性,但是昂贵。分条提供高数据传输率,但并未改善可靠性。通过磁盘分条和“奇偶”位(下面将要讨论),在低代价下提供冗余可以有多种方案。这些方案有不同的性价折中,并分成不同的级别,称为RAID级别。这里讨论各种级别,图 1 显示了它们(图中,P 表示纠错位,而 C 表示数据的第二副本)。

在这里插入图片描述
对于图中所示的各种情况,4 个磁盘用于存储数据,额外磁盘用于存储冗余信息以便故障恢复。

RAID 级别 0

RAID 级别 0 为具有块分条但没有冗余(如镜像或奇偶位)的磁盘阵列,如图 1a) 所示。

RAID 级别 1

RAID 级别 1 指磁盘镜像。 图 1b) 显示了这种镜像组织。

RAID 级别 2

RAID 级别 2 也称为内存方式的差错纠正(ECC)组织。内存系统长期以来实现了基于奇偶位的错误检测。内存系统内的每个字节都有一个关联的奇偶位,以记录字节中为 1 的个数是偶数(parity = 0)或是奇数(parity = 1)。

如果字节的 1 个位发生了损坏(或是 1 变成 0 或是 0 变成 1),则字节的奇偶校验位改变,因此与所存储的奇偶校验位就不匹配。类似地,如果存储的奇偶校验位损坏了,则它不匹配计算的奇偶校验位。因此,单个位差错可为内存系统所检测。差错纠正方案存储两个或多个额外位,并且当单个位出错时可以重建数据。

ECC 方法通过将字节分散在磁盘上,可以直接用于磁盘阵列。例如,每个字节的第 1 位可以存在磁盘 1 上,第 2 位在磁盘 2 上,等等,直到第 8 位存在磁盘 8 上;而纠错位存在其他磁盘上。这个方案如图 1c) 所示,其中标记为 P 的磁盘存储了差错纠正位。

如果有一个磁盘故障了,则可从其他磁盘中读取字节的其余位和相关差错纠正位,以重构损坏的数据。请注意,对于 4 个磁盘的数据,RAID 级别 2 只用了 3 个额外磁盘,而 RAID 级别 1 则需要 4 个额外磁盘。

RAID 级别 3

RAID 级别 3 或位交错奇偶校验结构,改进了级别 2。它考虑了如下事实:与内存系统不同,磁盘控制器能够检测到一个扇区是否正确读取,这样单个奇偶位可以用于差错检测和差错纠正。

方案如下:如果一个扇区损坏了,则我们就知道它是哪个扇区;而且通过计算其他磁盘扇区的相应位的奇偶值,可以得出损坏的位是 1 还是 0。如果剩余位的奇偶校验等于存储奇偶值,则丢失位为 0;否则,为 1。

RAID 级别 3 与级别 2 一样好,但是在额外磁盘的数量方面要更便宜(它只有一个额外磁盘),因此级别 2 在实际中并不使用。级别 3 如图 1d) 所示。

与 RAID 级别 1 相比,RAID 级别 3 有两个优点:
第一,多个普通磁盘只需一个奇偶磁盘,而级别 1 的每个磁盘都需一个镜像磁盘,因此级别 3 降低了额外存储。
第二,由于采用 N 路分散数据,字节的读写分布在多个磁盘上,所以单块读写的传输速度是 RAID 级别 1 的 N 倍。从负面来说,由于每个磁盘都要参与每次 I/O 请求,RAID 级别 3 的每秒 I/O 次数将更少。

RAID 级别 3 的(其他奇偶检验的 RAID 级别也有的)另一性能问题是,需要计算和写入奇偶校验位。与非奇偶检验位 RAID 阵列相比,这种开销导致写入更慢。

为了减轻这种性能损失,许多 RAID 存储阵列的控制器带有专门计算奇偶校验位的硬件。这种控制器将奇偶校验位计算从 CPU 转移到阵列。这种阵列还有 NVRAM 缓存,以便在计算奇偶校验位时存储块,并且缓存从控制器到磁盘的写入。这种组合使得奇偶校验 RAID 几乎与非奇偶校验的一样快。事实上,做奇偶校验的带有缓存的 RAID 可以胜过非缓存非奇偶校验的 RAID。

RAID 级别 4

RAID 级别 4 或块交错奇偶校验结构采用块级分条,这与 RAID 0 一样,此外在一个单独的磁盘上保存其他 N 个磁盘的块的奇偶校验块。这种方案如图 1e) 所示。如果有一个磁盘故障,则通过奇偶校验块和其他磁盘的相应块恢复故障磁盘的块。

每个块的读只访问一个磁盘,可以允许其他磁盘处理其他请求。因此,虽然每个访问的数据传输速率更慢,但是多个读访问可以并行处理,导致了更高的总体 I/O 速率。大的读取传输速率很高,因为可以并行读取所有磁盘。大的写入也有很高传输速率,因为可以并行写入数据和奇偶校验。

小的独立写入不能平行执行。操作系统写入的数据小于一块要求,读取块,修改新数据,并写回。奇偶校验块也必须更新。这称为读-改-写周期。因此,单个写需要 4 次磁盘访问:两次读入两个旧块,两次写入两个新块。

RAID 级别 5

RAID 级别 5 或块交错分布奇偶校验结构,不同于级别 4,它将数据和奇偶校验分散在所有 N+1 个磁盘上,而不是将数据存在 N 个磁盘上并且奇偶校验存在单个磁盘上。

对于每块,一个磁盘存储奇偶校验,而其他的存储数据。例如,对于 5 个磁盘的阵列,第 n 块的奇偶校验保存在磁盘 (n mod 5) + 1 上;其他 4 个磁盘的第 n 块保存该奇偶块对应的真正数据。这种方案如图 1f) 所示,其中 P 分布在所有磁盘上。奇偶校验块不能保存同一磁盘的块的奇偶校验,因为磁盘故障会导致数据及奇偶校验的丢失,因此无法恢复损失。

通过将奇偶校验分布在所有磁盘上,RAID 5 避免了 RAID 4 方案的对单个奇偶校验磁盘的潜在过度使用。RAID 5 是最常见的奇偶校验 RAID 系统。

RAID 级别 6

RAID 级别 6,也称为 P+Q 冗余方案,与 RAID 级别 5 非常类似,但是保存了额外冗余信息以防范多个磁盘故障。除了使用奇偶校验,可以使用差错纠正码,如 Read-Solomon 码。

在图 1g) 所示的方案中,每 4 位的数据使用了 2 位的冗余数据,而不是像级别 5 那样的一个奇偶位,这个系统可以容忍两个磁盘故障。

RAID 10

RAID10其实就是RAID1与RAID0的一个合体。
在这里插入图片描述

RAID10兼备了RAID1和RAID0的有优点。首先基于RAID1模式将磁盘分为2份,当要写入数据的时候,将所有的数据在两份磁盘上同时写入,相当于写了双份数据,起到了数据保障的作用。且在每一份磁盘上又会基于RAID0技术讲数据分为N份并发的读写,这样也保障了数据的效率。

但也可以看出RAID10模式是有一半的磁盘空间用于存储冗余数据的,浪费的很严重,因此用的也不是很多。

RAID 应用选择

RAID 等级的选择主要有三个因素,即数据可用性、 I/O 性能和成本。 目前,在实际应用中常见的主流 RAID 等级是 RAID0 , RAID1 , RAID3 , RAID5 , RAID6 和 RAID10 ,它们之间的技术对比情况如表 1 所示。如果不要求可用性,选择 RAID0 以获得高性能。如果可用性和性能是重要的,而成本不是一个主要因素,则根据磁盘数量选择 RAID1 。如果可用性,成本和性能都同样重要,则根据一般的数据传输和磁盘数量选择 RAID3 或 RAID5 。在实际应用中,应当根据用户的数据应用特点和具体情况,综合考虑可用性、性能和成本来选择合适的 RAID 等级。
在这里插入图片描述

参考资料

RAID技术详解
RAID磁盘阵列是什么(一看就懂)

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yolo2016

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值