RAID-磁盘阵列
历史来源
1988 年美国加州大学伯克利分校的 D. A. Patterson 教授等首次在论文 “A Case of Redundant Array of Inexpensive Disks” 中提出了 RAID 概念 ,即廉价冗余磁盘阵列( Redundant Array of Inexpensive Disks )
生动解释RAID0、RAID0+1、RAID1、RAID5
原文链接:
RAID0、RAID0+1、RAID1、RAID5这四种展示
关键目标
RAID 技术作为高性能、高可靠的存储技术
RAID 的两个关键目标是:
1. 提高数据可靠性
通过把相同数据同时写入到多块磁盘(典型地如镜像),或者将计算的校验数据写入阵列中来获得冗余能力,当单块磁盘出现故障时可以保证不会导致数据丢失。
在这样的冗余机制下,可以用新磁盘替换故障磁盘, RAID 会自动根据剩余磁盘中的数据和校验数据重建丢失的数据,保证数据一致性和完整性。
2. I/O 性能
数据分散保存在 RAID 中的多个不同磁盘上,并发数据读写要大大优于单个磁盘,因此可以获得更高的聚合 I/O 带宽。当然,磁盘阵列会减少全体磁盘的总可用存储空间,牺牲空间换取更高的可靠性和性能。
关键技术
1. 镜像(Mirroring)
原理: 将数据复制到多个磁盘
优势:一方面可以提高可靠性,另一方面可并发从两个或多个副本读取数据来提高读性能。
不足:镜像的写性能要稍低, 确保数据正确地写到多个磁盘需要更多的时间消耗。
2. 数据条带(Data Stripping)
原理:将数据分片保存在多个不同的磁盘,多个数据分片共同组成一个完整数据副本。
优势:通常用于性能考虑。数据条带具有更高的并发粒度,当访问数据时,可以同时对位于不同磁盘上数据进行读写操作, 从而获得非常可观的 I/O 性能提升 。
3. 数据校验(Data Parity)
原理:利用冗余数据进行数据错误检测和修复,冗余数据通常采用海明码、异或操作等算法来计算获得。
优势:很大程度上提高磁盘阵列的可靠性、鲁棒性和容错能力。
不足:数据校验需要从多处读取数据并进行计算和对比,会影响系统性能。
主要优势
1. 大容量
扩大了磁盘的容量,由多个磁盘组成的 RAID 系统具有海量的存储空间。
一般来说, RAID 可用容量要小于所有成员磁盘的总容量。不同等级的 RAID 算法需要一定的冗余开销,具体容量开销与采用算法相关。
可以通过RAID算法和容量计算出RAID的可用容量,利用率通常在50%~90%之间
2. 可靠性
理论上,若单个磁盘故障将导致整个 RAID 不可用,那么由多个磁盘组成的 RAID 系统在可靠性方面应该比单个磁盘要差。
RAID 采用镜像和数据校验等数据冗余技术,打破了这个假定。
3. 高性能
RAID 的高性能受益于数据条带化技术,RAID 将数据 I/O 分散到各个成员磁盘上,从而获得比单个磁盘成倍增长的聚合 I/O 性能。
4. 可管理性
实际上, RAID 是一种虚拟化技术。
它对多个物理磁盘驱动器虚拟成一个大容量的逻辑驱动器。
-
对于外部主机系统来说:
RAID 是一个单一的、快速可靠的大容量磁盘驱动器。这样,用户就可以在这个虚拟驱动器上来组织和存储应用系统数据。 -
从用户应用角度看:
可使存储系统简单易用,管理也很便利。
由于 RAID 内部完成了大量的存储管理工作,管理员只需要管理单个虚拟驱动器,可以节省大量的管理工作。
RAID 可以动态增减磁盘驱动器,可自动进行数据校验和数据重建,这些都可以 大大简化管理工作。