RAID
RAID(Redundant Array of Independent Disks)
在单机时代,采用单块磁盘进行数据存储和读写的方式,由于寻址和读写的时间消耗,I/O性能可能受到限制,且存储容量还会受到限制。另外,单块磁盘可能出现物理故障,导致数据的丢失。
1988年美国加州大学伯克利分校的D. A. Patterson教授等首次在论文中提出了RAID概念,即廉价冗余磁盘阵列(Redundant Array of Inexpensive Disks)。由于当时大容量磁盘比较昂贵,RAID的基本思想是将多个容量较小、相对廉价的磁盘进行有机组合,从而以较低的成本获得与昂贵大容量磁盘相当的容量、性能、可靠性。随着磁盘成本和价格的不断降低,“廉价”不再是名称强调的重点。因此也用Independent替代Inexpensive。于是RAID变成了独立磁盘冗余阵列(Redundant Array of Independent Disks),但这仅仅是名称的变化,实质内容没有改变。
RAID思想从提出后就广泛被业界所接纳,存储工业界投入了大量的时间和财力来研究和开发相关产品。RAID主要优势包括:
-
大容量:扩大了磁盘的容量,由多个磁盘组成的RAID系统具有海量的存储空间。现在单个磁盘的容量就可以到1TB以上,在磁盘数量足够多时,RAID系统的存储容量可以达到PB级,能够满足许多存储需求。
-
高性能:单个磁盘的I/O性能受到接口、带宽等技术的限制,性能往往很有限,容易成为系统性能的瓶颈。通过数据条带化,RAID将数据I/O分散到各个成员磁盘上,在适合的负载下可以获得比单个磁盘更高的聚合I/O性能。
-
可靠性:具有冗余的RAID等级能够提升数据可用性和可靠性,在其允许的磁盘故障数量范围内,可以避免成员磁盘故障导致的数据丢失,并支持系统继续运行。
RAID0
RAID0是一种简单的、无数据校验的数据条带化技术,将所在磁盘条带化后组成大容量的存储空间,将数据分散存储在所有磁盘中,以独立访问方式实现多块磁盘的并行读写访问。
RAID0具有低成本、高读写性能,但是它不提供数据冗余保护,一旦成员磁盘故障导致数据损坏,将无法依靠阵列恢复。因此,RAID0一般适用于对性能要求严格但对数据安全性和可靠性不高的应用,如允许丢失或可重新生成的视频、音频存储、临时数据缓存空间等。
RAID1
RAID1称为镜像,它将数据完全一致地分别写到工作磁盘和镜像磁盘,两份镜像的磁盘空间利用率为50%。RAID1在数据写入时,响应时间可能有所影响,读数据的性能也取决于实现和负载。RAID1提供了数据冗余保护,一旦工作磁盘发生故障,系统可以从正常的镜像磁盘读取数据。两份镜像的RAID1可以容忍一个成员磁盘故障,但实现成本高。
RAID2
RAID2称为纠错海明码磁盘阵列,其设计思想是利用海明码实现数据校验冗余。海明码是一种在原始数据中加入若干校验码来进行错误检测和纠正的编码技术。海明码自身具备纠错能力,因此RAID2可以在数据发生错误的情况下纠正其编码能力范围内的错误,提高数据的安全性。
但是海明码的数据冗余开销太大,而且RAID2的数据输出性能受阵列中最慢磁盘驱动器的限制。并且海明码是按位运算,RAID2数据重建需要额外处理。因此RAID2在现代实际系统中很少应用。
RAID3
RAID3是使用专用校验盘的并行访问阵列,它按字节条带化,采用一个专用的磁盘作为校验盘,其余磁盘作为数据盘。不同磁盘上同一带区的数据作XOR校验,校验值写入校验盘中。RAID3完好时可以并行从多个磁盘条带读取数据,在适合的负载下具有较高性能,同时还提供了数据容错能力。如果RAID3中某一磁盘出现故障,仍可读取数据,可以借助校验数据和其他完好数据来重建数据,但性能可能降低。
RAID3只需要一个校验盘,阵列的存储空间利用率高,再加上并行访问的特征,能够为高带宽的大量读写提供高性能,适用大容量数据的顺序访问应用,如影像处理、流媒体服务等。
RAID4
RAID4与RAID3的原理大致相同,区别在于条带化的方式不同。RAID4按照块的方式来组织数据,单个数据块完整地存储在一个磁盘上,可以独立读取不同磁盘上的数据块,但写入时仍需更新专用校验盘。
RAID5
RAID5是一种常见的RAID等级,它的原理与RAID4相似,区别在于校验数据分布在阵列中的所有磁盘上,而没有采用专门的校验磁盘。因此,RAID5缓解了RAID4中并发写操作时的单一校验盘性能瓶颈问题,但仍有校验更新开销。
RAID5的磁盘上同时存储数据和校验数据,数据块和对应的校验信息保存在不同的磁盘上,当一个成员磁盘损坏时,系统可以根据同一条带的其他数据块和对应的校验数据来重建损坏的数据。
RAID5兼顾存储性能、数据安全和存储成本等各方面因素,是一种常见的数据保护解决方案。RAID5可以满足许多存储应用需求,但是否适用取决于具体负载和可靠性要求。
磁盘故障与重建
解锁完整互动实验、进阶解析与精选参考答案。
知识测验
知识测验
选择阵列并恢复条带
每块磁盘容量为1 TB。比较双盘RAID0、双盘RAID1和三盘RAID5的可用容量与单盘故障情况。在RAID5 Lab中令D0故障,用A2=3、Ap=5重建A1。哪些阵列适合可丢失数据,哪些能提供单成员故障保护?