《磁盘阵列知识点梳理汇总.docx》由会员分享,可在线阅读,更多相关《磁盘阵列知识点梳理汇总.docx(22页珍藏版)》请在优知文库上搜索。
1、前言RAID,独立硬盘冗余阵列(RAlD,RedundantArrayofIndependentDisks),简称磁盘阵列。其基本思想就是把多个相对便宜的硬盘组合起来,成为一个硬盘阵列组,使性能达到甚至超过一个价格昂贵、容量巨大的硬盘。根据选择的版本不同,RAID比单颗硬盘有以下一个或多个方面的好处:增强数据集成度,增强容错功能,增加处理量或容量。另外,磁盘阵列对于电脑来说,看起来就像一个单独的硬盘或逻辑存储单元。RAID基础知识基本原理RAID(RedundantArrayofIndependentDisks)即独立磁盘冗余阵列,通常简称为磁盘阵列。简单地说,RAID是由多个独立的高性能磁盘
2、驱动器组成的磁盘子系统,从而提供比单个磁盘更高的存储性能和数据冗余的技术。RAID是一类多磁盘管理技术,其向主机环境提供了成本适中、数据可靠性高的高性能存储。SNIA对RAID的定义是:一种磁盘阵列,部分物理存储空间用来记录保存在剩余空间上的用户数据的冗余信息。当其中某一个磁盘或访问路径发生故障时,冗余信息可用来重建用户数据。磁盘条带化虽然与RAID定义不符,通常还是称为RAID(即RID0)0RAID的初衷是为大型服务器提供高端的存储功能和冗余的数据安全。在整个系统中,RAID被看作是由两个或更多磁盘组成的存储空间,通过并发地在多个磁盘上读写数据来提高存储系统的I/O性能。大多数RAID等级
3、具有完备的数据校验、纠正措施,从而提高系统的容错性,甚至镜像方式,大大增强系统的可靠性,RedUndant也由此而来。RAID的两个关键目标是提高数据可靠性和I/O性能。磁盘阵列中,数据分散在多个磁盘中,然而对于计算机系统来说,就像一个单独的磁盘。通过把相同数据同时写入到多块磁盘(典型地如镜像),或者将计算的校验数据写入阵列中来获得冗余能力,当单块磁盘出现故障时可以保证不会导致数据丢失。有些RAID等级允许更多地磁盘同时发生故障,比如RAID6,可以是两块磁盘同时损坏。在这样的冗余机制下,可以用新磁盘替换故障磁盘,RAID会自动根据剩余磁盘中的数据和校验数据重建丢失的数据,保证数据一致性和完整
4、性。数据分散保存在RAID中的多个不同磁盘上,并发数据读写要大大优于单个磁盘,因此可以获得更高的聚合I/O带宽。当然,磁盘阵列会减少全体磁盘的总可用存储空间,牺牲空间换取更高的可靠性和性能。比如,RAIDl存储空间利用率仅有50%,RAID5会损失其中一个磁盘的存储容量,空间利用率为(n-l)no磁盘阵列可以在部分磁盘(单块或多块,根据实现而论)损坏的情况下,仍能保证系统不中断地连续运行。在重建故障磁盘数据至新磁盘的过程中,系统可以继续正常运行,但是性能方面会有一定程度上的降低。一些磁盘阵列在添加或删除磁盘时必须停机,而有些则支持热交换(HotSwapping),允许不停机下替换磁盘驱动器。这
5、种高端磁盘阵列主要用于要求高可能性的应用系统,系统不能停机或尽可能少的停机时间。一般来说,RAID不可作为数据备份的替代方案,它对非磁盘故障等造成的数据丢失无能为力,比如病毒、人为破坏、意外删除等情形。此时的数据丢失是相对操作系统、文件系统、卷管理器或者应用系统来说的,对于RAID系统来身,数据都是完好的,没有发生丢失。所以,数据备份、灾备等数据保护措施是非常必要的,与RAID相辅相成,保护数据在不同层次的安全性,防止发生数据丢失。RAID中主要有三个关键概念和技术:镜像(MirrOring)、数据条带(DataStripping)和数据校验(Dataparity)。镜像,将数据复制到多个磁盘
6、,一方面可以提高可靠性,另一方面可并发从两个或多个副本读取数据来提高读性能。显而易见,镜像的写性能要稍低,确保数据正确地写到多个磁盘需要更多的时间消耗。数据条带,将数据分片保存在多个不同的磁盘,多个数据分片共同组成一个完整数据副本,这与镜像的多个副本是不同的,它通常用于性能考虑。数据条带具有更高的并发粒度,当访问数据时,可以同时对位于不同磁盘上数据进行读写操作,从而获得非常可观的I/O性能提升。数据校验,利用冗余数据进行数据错误检测和修复,冗余数据通常采用海明码、异或操作等算法来计算获得。利用校验功能,可以很大程度上提高磁盘阵列的可靠性、鲁棒性和容错能力。不过,数据校验需要从多处读取数据并进行
7、计算和对比,会影响系统性能。不同等级的RAlD采用一个或多个以上的三种技术,来获得不同的数据可靠性、可用性和I/O性能。至于设计何种RAID(甚至新的等级或类型)或采用何种模式的RAlD,需要在深入理解系统需求的前提下进行合理选择,综合评估可靠性、性能和成本来进行折中的选择。RAID思想从提出后就广泛被业界所接纳,存储工业界投入了大量的时间和财力来研究和开发相关产品。而且,随着处理器、内存、计算机接口等技术的不断发展,RAID不断地发展和革新,在计算机存储领域得到了广泛的应用,从高端系统逐渐延伸到普通的中低端系统。RAID技术如此流行,源于其具有显著的特征和优势,基本可以满足大部分的数据存储需
8、求。总体说来,RAID主要优势有如下几点:(1)大容量这是RAID的一个显然优势,它扩大了磁盘的容量,由多个磁盘组成的RAID系统具有海量的存储空间。现在单个磁盘的容量就可以到ITB以上,这样RAID的存储容量就可以达到PB级,大多数的存储需求都可以满足。一般来说,RAID可用容量要小于所有成员磁盘的总容量。不同等级的RAlD算法需要一定的冗余开销,具体容量开销与采用算法相关。如果已知RAID算法和容量,可以计算出RAID的可用容量。通常,RAID容量利用率在50%90%之间。(2)高性能RAID的高性能受益于数据条带化技术。单个磁盘的I/O性能受到接口、带宽等计算机技术的限制,性能往往很有限
9、,容易成为系统性能的瓶颈。通过数据条带化,RAID将数据I/O分散到各个成员磁盘上,从而获得比单个磁盘成倍增长的聚合I/O性能。(3)可靠性可用性和可靠性是RAID的另一个重要特征。从理论上讲,由多个磁盘组成的RAID系统在可靠性方面应该比单个磁盘要差。这里有个隐含假定:单个磁盘故障将导致整个RAID不可用。RAID采用镜像和数据校验等数据冗余技术,打破了这个假定。镜像是最为原始的冗余技术,把某组磁盘驱动器上的数据完全复制到另一组磁盘驱动器上,保证总有数据副本可用。比起镜像50%的冗余开销,数据校验要小很多,它利用校验冗余信息对数据进行校验和纠错。RAlD冗余技术大幅提升数据可用性和可靠性,保
10、证了若干磁盘出错时,不会导致数据的丢失,不影响系统的连续运行。(4)可管理性实际上,RAID是一种虚拟化技术,它对多个物理磁盘驱动器虚拟成一个大容量的逻辑驱动器。对于外部主机系统来说,RAID是一个单一的、快速可靠的大容量磁盘驱动器。这样,用户就可以在这个虚拟驱动器上来组织和存储应用系统数据。从用户应用角度看,可使存储系统简单易用,管理也很便利。由于RAID内部完成了大量的存储管理工作,管理员只需要管理单个虚拟驱动器,可以节省大量的管理工作。RAID可以动态增减磁盘驱动器,可自动进行数据校验和数据重建,这些都可以大大简化管理工作。关键技术镜像镜像是一种冗余技术,为磁盘提供保护功能,防止磁盘发生
11、故障而造成数据丢失。对于RAID而言,采用镜像技术典型地将会同时在阵列中产生两个完全相同的数据副本,分布在两个不同的磁盘驱动器组上。镜像提供了完全的数据冗余能力,当一个数据副本失效不可用时,外部系统仍可正常访问另一副本,不会对应用系统运行和性能产生影响。而且,镜像不需要额外的计算和校验,故障修复非常快,直接复制即可。镜像技术可以从多个副本进行并发读取数据,提供更高的读I/O性能,但不能并行写数据,写多个副本会会导致一定的I/O性能降低。镜像技术提供了非常高的数据安全性,其代价也是非常昂贵的,需要至少双倍的存储空间。高成本限制了镜像的广泛应用,主要应用于至关重要的数据保护,这种场合下数据丢失会造
12、成巨大的损失。另外,镜像通过“拆分”能获得特定时间点的上数据快照,从而可以实现一种备份窗口几乎为零的数据备份技术。数据条带磁盘存储的性能瓶颈在于磁头寻道定位,它是一种慢速机械运动,无法与高速的CPU匹配。再者,单个磁盘驱动器性能存在物理极限,I/O性能非常有限。RAID由多块磁盘组成,数据条带技术将数据以块的方式分布存储在多个磁盘中,从而可以对数据进行并发处理。这样写入和读取数据就可以在多个磁盘上同时进行,并发产生非常高的聚合I/O,有效提高了整体I/O性能,而且具有良好的线性扩展性。这对大容量数据尤其显著,如果不分块,数据只能按顺序存储在磁盘阵列的磁盘上,需要时再按顺序读取。而通过条带技术,
13、可获得数倍与顺序访问的性能提升。数据条带技术的分块大小选择非常关键。条带粒度可以是一个字节至几KB大小,分块越小,并行处理能力就越强,数据存取速度就越高,但同时就会增加块存取的随机性和块寻址时间。实际应用中,要根据数据特征和需求来选择合适的分块大小,在数据存取随机性和并发处理能力之间进行平衡,以争取尽可能高的整体性能。数据条带是基于提高I/O性能而提出的,也就是说它只关注性能,而对数据可靠性、可用性没有任何改善。实际上,其中任何一个数据条带损坏都会导致整个数据不可用,采用数据条带技术反而增加了数据发生丢失的概念率。数据校验镜像具有高安全性、高读性能,但冗余开销太昂贵。数据条带通过并发性来大幅提
14、高性能,然而对数据安全性、可靠性未作考虑。数据校验是一种冗余技术,它用校验数据来提供数据的安全,可以检测数据错误,并在能力允许的前提下进行数据重构。相对镜像,数据校验大幅缩减了冗余开销,用较小的代价换取了极佳的数据完整性和可靠性。数据条带技术提供高性能,数据校验提供数据安全性,RAID不同等级往往同时结合使用这两种技术。采用数据校验时,RAID要在写入数据同时进行校验计算,并将得到的校验数据存储在RAID成员磁盘中。校验数据可以集中保存在某个磁盘或分散存储在多个不同磁盘中,甚至校验数据也可以分块,不同RAID等级实现各不相同。当其中一部分数据出错时,就可以对剩余数据和校验数据进行反校验计算重建
15、丢失的数据。校验技术相对于镜像技术的优势在于节省大量开销,但由于每次数据读写都要进行大量的校验运算,对计算机的运算速度要求很高,必须使用硬件RAID控制器。在数据重建恢复方面,检验技术比镜像技术复杂得多且慢得多。海明校验码和异或校验是两种最为常用的数据校验算法。海明校验码是由理查德海明提出的,不仅能检测错误,还能给出错误位置并自动纠正。海明校验的基本思想是:将有效信息按照某种规律分成若干组,对每一个组作奇偶测试并安排一个校验位,从而能提供多位检错信息,以定位错误点并纠正。可见海明校验实质上是一种多重奇偶校验。异或校验通过异或逻辑运算产生,将一个有效信息与一个给定的初始值进行异或运算,会得到校验
16、信息。如果有效信息出现错误,通过校验信息与初始值的异或运算能还原正确的有效信息。常见RAID类型常见5种RAlD类型对比,n位磁盘数量。RAID等级RAIDORAID1RAID5RAID6RAID10别名条带镜像分布奇偶校验条带双重奇偶校验条带镜像加条带容错性无有有有有冗余类型无有有有有热备盘无有有有有读性能高低高高高随机写性能高低一般低一般连续写性能高低低低一般需要磁盘数n12n(n1)n3n42n(n2)4可用容量全部50%(n-1)n(n-2)n50%RAID等级标准RAID等级SNIA、Berkeley等组织机构把RAIDO、RAIDl、RAID2、RAID3、RAID4、RAID5、RAID