RAID技术详解

  • 内容
  • 评论
  • 相关

磁盘驱动器继续变得更小更便宜,如今在一台计算机系统上连接许多磁盘从经济上来说已经可行了。一个系统拥有大量磁盘,就有机会改善数据的读写速率,因为磁盘操作可以并行进行。此外,这种设置提供能力,以提高数据存储的可靠性,因为冗佘信息可以存储在多 个磁盘上。因此,单个磁盘的故障不会导致数据丢失。

多种磁盘组织技术统称为磁盘冗余阵列(RAID)技术,通常用于处理性能与可靠性问题。过去,RAID 是由小且便宜的磁盘组成,可作为大且昂贵的磁盘的有效替代品。现在,RAID 的使用主要是因为高可靠性和高数据传输率,而不是经济原因。因此,RAID 中的 I 表示“独立”(independent)而不是“廉价”(inexpensive)。

通过冗余提高可靠性

首先分析 RAID 的可靠性。N 个磁盘内的某个磁盘故障的机会远远高于单个特定磁盘故障的机会。假设单个磁盘的平均故障时间为 100 000 小时,那么 100 个磁盘中的某个磁盘的平均故障时间为 100 000/100 = 1000 小时或 41.66 天,这并不长!如果只存储数据的一个副本,则每个磁盘故障会导致丢失大量数据,这样高的数据丢失率是不可接受的。

可靠性问题的解决是引入冗余。存储额外信息,这是平常不需要的,但是在磁盘故障时可以用于重建丢失的信息。因此,即使磁盘故障,数据也不会丢失。

最为简单(但最昂贵)的引入冗余的方法是,重复每个磁盘。这种技术称为镜像。由于镜像,每个逻辑磁盘由两个物理磁盘组成,并且每次写入都在两个磁盘上进行。这称为镜像卷。如果卷中的某个磁盘故障,则可以从另一卷中读取。只有在第一个损坏磁盘没有替换之前第二个磁盘又出错,才会丢失数据。

镜像卷的平均故障时间(这里的故障是数据丢失)取决于两个因素。一个是,单个磁盘的平均故障时间。另一个是平均维修时间,这是用于替换损坏磁盘并恢复其上数据的平均时间。假设两个磁盘的故障是独立的;即一个磁盘故障与另一个磁盘故障没有关联。那么,如果单个磁盘的平均故障时间为 100 000 小时,并且平均修补时间为 10 小时,则镜像磁盘系统的平均数据丢失时间为 100 0 002/(2X10)= 500X106 小时或 57 000 年。

需要注意,磁盘故障的独立性假设并不真正成立。电源故障和自然灾害,如地震、火灾、水灾,可能导致同时损坏两个磁盘。另外,成批生产磁盘的制造缺陷可以导致相关故障。随着磁盘老化,故障概率增加,从而增加了在替代第一磁盘时第二个磁盘故障的概率。然而,尽管所有这些考虑,镜像磁盘系统仍比单个磁盘系统提供更高的可靠性。

电源故障是一个特别的关注点,因为它们比自然灾害更为常见。即使使用磁盘镜像,如果对两个磁盘写入同样的块,而在两块完全写入之前电源故障,则这两块可能处于不一致的状态。

这个问题的一种解决方法是,先写一个副本,再写下一个。另一个是,为 RAID 阵列添加固态非易失性 RAM 的缓存。这种写回高速缓存在电源故障时会得到保护。这样,假设 NVRAM 有某种错误避免和纠错功能,如 ECC 和镜像,写入可以认为在这一阶段已完成。

通过并行处理提高性能

现在分析多个磁盘的并行访问如何改善性能。通过磁盘镜像,读请求的处理速度可以加倍,因为读请求可以送到任一磁盘(只要成对的两个磁盘都能工作,情况几乎总是这样的)。例如,每次读取的传输速率是与单个磁盘系统相同,但是每单位时间的读取次数翻了一番。

采用多个磁盘,通过将数据分散在多个磁盘上,也可以改善传输率。最简单形式是,数据分条包括将每个字节分散在多个磁盘上,这种分条称为位级分条

例如,如果有 8 个磁盘,则可以将每个字节的位i写到磁盘 i 上。这 8 个磁盘可作为单个磁盘使用,其扇区为正常扇区的 8 倍,更为重要的是它具有 8 倍的访问率。每个磁盘参与每个访问(读或写);这样每秒所能处理的访问数量与单个磁盘的一样,但是每次访问的数据在同样时间内为单个磁盘系统的8倍。

位级分条可以推广到其他磁盘数量,它或者是 8 的倍数或者除以 8。例如,如果采用 4 个磁盘阵列,则每个字节的位 i 和位 4+i 可存在磁盘 i 上。此外,分条不必按位级来进行。

例如,对于块级分条,文件的块可以分散在多个磁盘上;对于 n 个磁盘,文件的块 i 可存在磁盘 (i mod n)+ 1 上。其他分条级别,如单个扇区或单块扇区的字节,也是可能的。块级分条是最常见的。

磁盘系统的并行化,通过分条实现,有两个主要目标:

  1. 通过负载平衡,增加了多个小访问(即页面访问)的吞吐量。
  2. 降低大访问的响应时间。

RAID 级别

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


RAID的级别
图 1 RAID的级别

本文标题:RAID技术详解

本文地址:https://www.hosteonscn.com/3649.html

评论

0条评论

发表评论

邮箱地址不会被公开。 必填项已用*标注