RAID(独立磁盘冗余阵列)
RAID简介:
1988年美国加州大学伯克利分校的提出了RAID概念(RedundantArrayofInexpensiveDisks廉价冗余磁盘阵列),随着磁盘成本的不断降低,RAID变成了(RedundantArrayofIndependentDisks独立磁盘冗余阵列),但实质内容没有改变。SNIA、Berkeley等组织机构把RAID0~RAID6七个等级定为标准的RAID等级,标准RAID可以组合成其他RAID等级,而实际中使用最多的等级是RAID0、RAID1,RAID3、RAID5、RAID6和RAID10。RAID每一个等级代表一种实现方法和技术,等级之间并无高低之分。在实际应用中,应当根据用户的数据应用特点,综合考虑可用性、性能和成本来选择合适的RAID等级,以及具体的实现方式。
从实现角度看,RAID主要分为软RAID、硬RAID以及软硬混合RAID三种。软RAID所有功能均由操作系统和CPU来完成,效率自然最低。硬RAID配备了专门的RAID控制/处理芯片和I/O处理芯片以及阵列缓冲,不占用CPU资源,但成本很高。软硬混合RAID具备RAID控制/处理芯片,但缺乏I/O处理芯片,需要CPU和驱动程序来完成,性能和成本在软RAID和硬RAID之间。
基本原理:
RAID是由多个独立的高性能磁盘驱动器组成的磁盘子系统,从而提供比单个磁盘更高的存储性能和数据冗余的技术。RAID是一类多磁盘管理技术,其向主机环境提供了成本适中、数据可靠性高的高性能存储。RAID的两个关键目标是提高数据可靠性和I/O性能。磁盘阵列中,数据分散在多个磁盘中,然而对于计算机系统来说,就像一个单独的磁盘。通过把相同数据同时写入到多块磁盘(典型地如镜像),或者将计算的校验数据写入阵列中来获得冗余能力,当单块磁盘出现故障时可以保证不会导致数据丢失。
RAID中主要有三个关键概念和技术:镜像(Mirroring)、数据条带(DataStripping)和数据校验(Dataparity):
- 镜像,将数据复制到多个磁盘,一方面可以提高可靠性,另一方面可并发从两个或多个副本读取数据来提高读性能。显而易见,镜像的写性能要稍低,确保数据正确地写到多个磁盘需要更多的时间消耗。
- 数据条带,将数据分片保存在多个不同的磁盘,多个数据分片共同组成一个完整数据副本,这与镜像的多个副本是不同的,它通常用于性能考虑。数据条带具有更高的并发粒度,当访问数据时,可以同时对位于不同磁盘上数据进行读写操作,从而获得非常可观的I/O性能提升。
- 数据校验,利用冗余数据进行数据错误检测和修复,冗余数据通常采用海明码、异或操作等算法来计算获得。利用校验功能,可以很大程度上提高磁盘阵列的可靠性、鲁棒性和容错能力。不过,数据校验需要从多处读取数据并进行计算和对比,会影响系统性能。
不同等级的RAID采用一个或多个以上的三种技术,来获得不同的数据可靠性、可用性和I/O性能。至于设计何种RAID(甚至新的等级或类型)或采用何种模式的RAID,需要在深入理解系统需求的前提下进行合理选择,综合评估可靠性、性能和成本来进行折中的选择。
RAID 主要优势有如下几点:
(1) 大容量
这是 RAID 的一个显然优势,它扩大了磁盘的容量,由多个磁盘组成的 RAID 系统具有海量的存储空间。现在单个磁盘的容量就可以到 1TB 以上,这样 RAID 的存储容量就可以达到 PB 级,大多数的存储需求都可以满足。一般来说, RAID 可用容量要小于所有成员磁盘的总容量。不同等级的 RAID 算法需要一定的冗余开销,具体容量开销与采用算法相关。如果已知 RAID 算法和容量,可以计算出 RAID 的可用容量。通常, RAID 容量利用率在 50% ~ 90% 之间。