磁盘阵列基础知识
- 格式:doc
- 大小:214.00 KB
- 文档页数:8
磁盘阵列原理磁盘阵列(RAID)是一种通过将多个磁盘驱动器合并成一个逻辑单元来提供数据冗余和性能提升的技术。
磁盘阵列利用磁盘级别的冗余来提供数据的备份和恢复能力,并通过将数据分布在多个磁盘上来提高数据访问速度。
在本文中,我们将探讨磁盘阵列的原理以及它是如何工作的。
1. 磁盘阵列的概念和分类磁盘阵列是一种将多个独立的磁盘驱动器组合在一起,形成一个逻辑单元的技术。
根据不同的需求,磁盘阵列可以被划分为多个级别,常见的包括RAID 0、RAID 1、RAID 5、RAID 6等级别。
每个级别都有其特定的数据保护和性能特性。
2. RAID 0RAID 0将数据分块并分布到多个磁盘上,以提高数据的读写性能。
它通过在多个磁盘上同时读取和写入数据来实现并行访问。
然而,RAID 0没有冗余机制,一旦其中一个磁盘损坏,所有数据将会丢失。
3. RAID 1RAID 1通过将数据复制到多个磁盘上来提供冗余能力。
每个数据块都会被复制到两个或更多的磁盘上,以确保数据的完整性。
当其中一个磁盘发生故障时,系统可以从其他磁盘中恢复数据。
4. RAID 5RAID 5采用分布式奇偶校验的方式来提供冗余能力。
它将数据分块并分布到多个磁盘上,同时计算奇偶校验信息并存储在不同的磁盘上。
当其中一个磁盘损坏时,系统可以通过计算奇偶校验信息来恢复数据。
5. RAID 6RAID 6在RAID 5的基础上增加了第二个奇偶校验信息。
这意味着RAID 6可以容忍两个磁盘的故障,提供更高的数据可靠性。
6. 磁盘阵列的工作原理磁盘阵列通过控制器来管理和操作多个磁盘驱动器。
控制器负责将数据分块并分布到多个磁盘上,同时监测磁盘的状态。
当磁盘发生故障时,控制器可以根据不同的级别(如RAID 1、RAID 5等)来执行数据的恢复操作。
7. 磁盘阵列的优势和应用磁盘阵列提供了数据的冗余和性能提升能力,可以提高数据的可靠性和访问速度。
它广泛应用于服务器、存储系统、数据库等需要高可靠性和高性能的场景。
raid(独立冗余磁盘阵列)基础知识RAID(独立冗余磁盘阵列)基础知识RAID(独立冗余磁盘阵列)是一种通过将多个磁盘驱动器组合在一起来提高数据存储性能和冗余性的技术。
RAID技术通过将数据分散存储在多个磁盘上,实现了数据的并行读写和冗余备份,从而提高了数据的可靠性和性能。
RAID技术的核心思想是将多个磁盘驱动器组合在一起,形成一个逻辑卷(Logical Volume),这个逻辑卷被操作系统看作是一个单独的磁盘。
RAID可以通过不同的方式组织磁盘驱动器,从而实现不同的性能和冗余级别。
常见的RAID级别包括RAID 0、RAID 1、RAID 5和RAID 10。
RAID 0是一种数据分布方式,它将数据均匀地分布在多个磁盘上,从而提高了数据的读写性能。
RAID 0的性能优势主要体现在读取速度方面,因为数据可以同时从多个磁盘上读取。
然而,RAID 0没有冗余备份机制,一旦其中一个磁盘发生故障,所有数据都将丢失。
RAID 1是一种数据冗余方式,它通过将数据在多个磁盘上进行镜像备份来提高数据的可靠性。
RAID 1的优势在于当一个磁盘发生故障时,系统可以从其他磁盘上读取数据,保证数据的完整性。
然而,RAID 1的缺点是存储效率较低,因为每个磁盘都需要存储完整的数据。
RAID 5是一种将数据和校验信息分布在多个磁盘上的方式,通过计算校验信息来实现数据的冗余备份。
RAID 5的优势在于能够提供较高的数据存储效率和较好的读取性能,同时具备一定的容错能力。
当一个磁盘发生故障时,可以通过校验信息恢复数据。
然而,RAID 5的写入性能相对较低。
RAID 10是RAID 1和RAID 0的结合,它将数据分散存储在多个磁盘上,并通过镜像备份提供冗余性。
RAID 10的优势在于能够提供较高的读取和写入性能,同时具备较好的容错能力。
然而,RAID 10的缺点是存储效率较低,因为每个磁盘都需要存储完整的数据。
除了上述常见的RAID级别外,还存在一些其他的RAID级别,如RAID 2、RAID 3、RAID 4和RAID 6等。
基本的RAID介绍RAID是英文Redundant Array of Independent Disks(独立磁盘冗余阵列),简称磁盘阵列.下面将各个级别的RAID介绍如下。
RAID0条带化(Stripe)存储。
理论上说,有N个磁盘组成的RAID0是单个磁盘读写速度的N 倍.RAID 0连续以位或字节为单位分割数据,并行读/写于多个磁盘上,因此具有很高的数据传输率,但它没有数据冗余,因此并不能算是真正的RAID结构.RAID1镜象(Mirror)存储。
它是通过磁盘数据镜像实现数据冗余,在成对的独立磁盘上产生互为备份的数据。
当原始数据繁忙时,可直接从镜像拷贝中读取数据,因此RAID 1可以提高读取性能。
RAID 1是磁盘阵列中单位成本最高的,但提供了很高的数据安全性和可用性。
当一个磁盘失效时,系统可以自动切换到镜像磁盘上读写,而不需要重组失效的数据。
RAID2海明码(Hamming Code)校验条带存储.将数据条块化地分布于不同的硬盘上,条块单位为位或字节,使用称为海明码来提供错误检查及恢复。
这种编码技术需要多个磁盘存放检查及恢复信息,使得RAID 2技术实施更复杂,因此在商业环境中很少使用。
RAID3奇偶校验(XOR)条带存储,共享校验盘,数据条带存储单位为字节。
它同RAID 2非常类似,都是将数据条块化分布于不同的硬盘上,区别在于RAID 3使用简单的奇偶校验,并用单块磁盘存放奇偶校验信息.如果一块磁盘失效,奇偶盘及其他数据盘可以重新产生数据;如果奇偶盘失效则不影响数据使用.RAID 3对于大量的连续数据可提供很好的传输率,但对于随机数据来说,奇偶盘会成为写操作的瓶颈。
RAID4奇偶校验(XOR)条带存储,共享校验盘,数据条带存储单位为块.RAID 4同样也将数据条块化并分布于不同的磁盘上,但条块单位为块或记录。
RAID 4使用一块磁盘作为奇偶校验盘,每次写操作都需要访问奇偶盘,这时奇偶校验盘会成为写操作的瓶颈,因此RAID 4在商业环境中也很少使用。
raid(独立冗余磁盘阵列)基础知识RAID(独立冗余磁盘阵列)基础知识一. 什么是RAID?RAID是独立冗余磁盘阵列(Redundant Array of Independent Disks)的缩写,是一种通过将多个磁盘组合在一起来提供高数据性能和冗余存储的技术。
RAID技术通过将数据分散存储在多个磁盘上,实现数据的冗余备份和提高系统性能。
二. RAID的基本原理RAID通过将数据切分成多个块,并将这些块分别存储在不同的磁盘上,以实现数据的冗余备份和提高读写性能。
常见的RAID级别包括RAID 0、RAID 1、RAID 5、RAID 6等。
1. RAID 0:条带化(Striping)RAID 0将数据切分成固定大小的块,并将这些块依次存储在多个磁盘上,提高了数据的读写性能。
然而,RAID 0没有冗余备份功能,一旦其中一个磁盘损坏,所有数据都将丢失。
2. RAID 1:镜像化(Mirroring)RAID 1将数据同时写入两个磁盘,实现了数据的冗余备份。
当其中一个磁盘损坏时,另一个磁盘仍然可以正常工作,保证数据的可靠性。
然而,RAID 1并没有提高数据的读写性能。
3. RAID 5:条带化加分布式奇偶校验(Striping with Distributed Parity)RAID 5将数据切分成固定大小的块,并在多个磁盘上存储数据和奇偶校验位。
奇偶校验位用于恢复损坏的数据。
RAID 5的读写性能较高,并且具有冗余备份功能。
然而,当多个磁盘损坏时,数据恢复的时间和复杂度较高。
4. RAID 6:双分布式奇偶校验(Double Distributed Parity)RAID 6是在RAID 5的基础上增加了第二个奇偶校验位,提高了数据的冗余备份能力。
RAID 6可以同时容忍两个磁盘的损坏,提供了更高的数据可靠性。
三. RAID的优缺点RAID技术具有以下优点:1. 提高数据的读写性能:通过条带化技术,数据可以同时从多个磁盘读取或写入,提高了系统的读写性能。
基本的RAID介绍RAID是英文Redundant Array of Independent Disks(独立磁盘冗余阵列),简称磁盘阵列。
下面将各个级别的RAID介绍如下。
RAID0条带化(Stripe)存储。
理论上说,有N个磁盘组成的RAID0是单个磁盘读写速度的N 倍。
RAID 0连续以位或字节为单位分割数据,并行读/写于多个磁盘上,因此具有很高的数据传输率,但它没有数据冗余,因此并不能算是真正的RAID结构。
RAID1镜象(Mirror)存储。
它是通过磁盘数据镜像实现数据冗余,在成对的独立磁盘上产生互为备份的数据。
当原始数据繁忙时,可直接从镜像拷贝中读取数据,因此RAID 1可以提高读取性能。
RAID 1是磁盘阵列中单位成本最高的,但提供了很高的数据安全性和可用性。
当一个磁盘失效时,系统可以自动切换到镜像磁盘上读写,而不需要重组失效的数据。
RAID2海明码(Hamming Code)校验条带存储。
将数据条块化地分布于不同的硬盘上,条块单位为位或字节,使用称为海明码来提供错误检查及恢复。
这种编码技术需要多个磁盘存放检查及恢复信息,使得RAID 2技术实施更复杂,因此在商业环境中很少使用。
RAID3奇偶校验(XOR)条带存储,共享校验盘,数据条带存储单位为字节。
它同RAID 2非常类似,都是将数据条块化分布于不同的硬盘上,区别在于RAID 3使用简单的奇偶校验,并用单块磁盘存放奇偶校验信息。
如果一块磁盘失效,奇偶盘及其他数据盘可以重新产生数据;如果奇偶盘失效则不影响数据使用。
RAID 3对于大量的连续数据可提供很好的传输率,但对于随机数据来说,奇偶盘会成为写操作的瓶颈。
RAID4奇偶校验(XOR)条带存储,共享校验盘,数据条带存储单位为块。
RAID 4同样也将数据条块化并分布于不同的磁盘上,但条块单位为块或记录。
RAID 4使用一块磁盘作为奇偶校验盘,每次写操作都需要访问奇偶盘,这时奇偶校验盘会成为写操作的瓶颈,因此RAID 4在商业环境中也很少使用。
RAID5奇偶校验(XOR)条带存储,校验数据分布式存储,数据条带存储单位为块。
RAID 5不单独指定的奇偶盘,而是在所有磁盘上交叉地存取数据及奇偶校验信息。
在RAID 5上,读/写指针可同时对阵列设备进行操作,提供了更高的数据流量。
RAID 5更适合于小数据块和随机读写的数据。
RAID 3与RAID 5相比,最主要的区别在于RAID 3每进行一次数据传输就需涉及到所有的阵列盘;而对于RAID 5来说,大部分数据传输只对一块磁盘操作,并可进行并行操作。
在RAID 5中有“写损失”,即每一次写操作将产生四个实际的读/写操作,其中两次读旧的数据及奇偶信息,两次写新的数据及奇偶信息。
当进行恢复时,比如我们需要需要恢复下图中的A0,这里就必须需要B0、C0、D0加0 parity才能计算并得出A0,进行数据恢复。
所以当有两块盘坏掉的时候,整个RAID的数据失效。
RAID6奇偶校验(XOR)条带存储,两个分布式存储的校验数据,数据条带存储单位为块。
与RAID 5相比,RAID 6增加了第二个独立的奇偶校验信息块。
两个独立的奇偶系统使用不同的算法,数据的可靠性非常高,即使两块磁盘同时失效也不会影响数据的使用。
但RAID 6需要分配给奇偶校验信息更大的磁盘空间,相对于RAID 5有更大的“写损失”,因此“写性能”非常差。
较差的性能和复杂的实施方式使得RAID 6很少得到实际应用。
RAID7这是一种新的RAID标准,其自身带有智能化实时操作系统和用于存储管理的软件工具,可完全独立于主机运行,不占用主机CPU资源。
RAID 7可以看作是一种存储计算机(Storage Computer),它与其他RAID标准有明显区别。
RAID 7等级是至今为止,理论上性能最高的RAID模式,因为它从组建方式上就已经和以往的方式有了重大的不同。
基本成形式见图,以往一个硬盘是一个组成阵列的“柱子”,而在RAID 7中,多个硬盘组成一个“柱子”,它们都有各自的通道,也正因为如此,你可以把这个图分解成一个个硬盘连接在主通道上,只是比以前的等级更为细分了。
这样做的好处就是在读/写某一区域的数据时,可以迅速定位,而不会因为以往因单个硬盘的限制同一时间只能访问该数据区的一部分,在RAID 7中,以前的单个硬盘相当于分割成多个独立的硬盘,有自己的读写通道。
工程中常用的RAID方式是RAID10和RAID5。
下面分别介绍RAID10和RAID01的区别;以及RAID10和RAID5的区别。
RAID10和RAID01的比较➢RAID10是先做镜象,然后再做条带。
➢RAID01则是先做条带,然后再做镜象。
比如以6个盘为例,RAID10就是先将盘分成3组镜象,然后再对这3个RAID1做条带。
RAID01则是先利用3块盘做RAID0,然后将另外3块盘做为RAID0的镜象。
下面以4块盘为例来介绍安全性方面的差别:1、RAID10的情况这种情况中,我们假设当DISK0损坏时,在剩下的3块盘中,只有当DISK1一个盘发生故障时,才会导致整个RAID失效,我们可简单计算故障率为1/3。
2、RAID01的情况这种情况下,我们仍然假设DISK0损坏,这时左边的条带将无法读取。
在剩下的3块盘中,只要DISK2,DISK3两个盘中任何一个损坏,都会导致整个RAID失效,我们可简单计算故障率为2/3。
因此RAID10比RAID01在安全性方面要强。
从数据存储的逻辑位置来看,在正常的情况下RAID01和RAID10是完全一样的,而且每一个读写操作所产生的IO数量也是一样的,所以在读写性能上两者没什么区别。
而当有磁盘出现故障时,比如前面假设的DISK0损坏时,我们也可以发现,这两种情况下,在读的性能上面也将不同,RAID10的读性能将优于RAID01。
RAID10和RAID5的比较为了方便对比,这里拿同样多驱动器的磁盘来做对比,RAID5选择3D+1P的RAID方案,RAID10选择2D+2D的RAID方案,如图:1、安全性方面的比较其实在安全性方面,勿须质疑,肯定是RAID10的安全性高于RAID5。
我们也可以从简单的分析来得出。
当盘1损坏时,对于RAID10,只有当盘1对应的镜象盘损坏,才导致RAID 失效。
但是对于RAID5,剩下的3块盘中,任何一块盘故障,都将导致RAID失效。
在恢复的时候,RAID10恢复的速度也快于RAID5。
2、空间利用率的比较RAID10的利用率是50%,RAID5的利用率是75%。
硬盘数量越多,RAID5的空间利用率越高。
3、读写性能方面的比较主要分析分析如下三个过程:读,连续写,离散写。
在介绍这三个过程之前,先介绍一个特别重要的概念:cache。
cache已经是整个存储的核心所在,就是中低端存储,也有很大的cache存在,包括最简单的raid卡,一般都包含有几十,甚至几百兆的raid cache。
cache的主要作用是什么呢?体现在读与写两个不同的方面,如果作为写,一般存储阵列只要求写到cache就算完成了写操作,所以,阵列的写是非常快速的,在写cache的数据积累到一定程度,阵列才把数据刷到磁盘,可以实现批量的写入,至于cache数据的保护,一般都依赖于镜相与电池(或者是UPS)。
cache的读一样不可忽视,因为如果读能在cache中命中的话,将减少磁盘的寻道,因为磁盘从寻道开始到找到数据,一般都在6ms以上,而这个时间,对于那些密集型io的应用可能不是太理想。
但是,如果cache能命中,一般响应时间则可以在1ms以内。
两者应该相差3个数量级(1000倍)。
1)读操作方面的性能差异RAID10可供读取有效数据的磁盘个数为4,RAID5可供读取有效数据的磁盘个数也为4个(校验信息分布在所有的盘上),所以两者的读的性能应该是基本一致的。
2)连续写方面的性能差异在连续写操作过程,如果有写cache存在,并且算法没有问题的话,RAID5比RAID10甚至会更好一些,虽然也许并没有太大的差别。
(这里要假定存储有一定大小足够的写cache,而且计算校验的cpu不会出现瓶颈)。
因为这个时候的RAID校验是在cache中完成,如4块盘的RAID5,可以先在内存中计算好校验,同时写入3个数据+1个校验。
而RAID10只能同时写入2个数据+2个镜相。
如上图所示,4块盘的RAID5可以在同时间写入1、2、3到cache,并且在cache计算好校验之后,这里假定是6,同时把三个数据写到磁盘。
而4块盘的RAID10不管cache是否存在,写的时候,都是同时写2个数据与2个镜相。
根据前面对缓存原理的介绍,写cache是可以缓存写操作的,等到缓存写数据积累到一定时期再写到磁盘。
但是,写到磁盘阵列的过程是迟早也要发生的,所以RAID5与RAID10在连续写的情况下,从缓存到磁盘的写操作速度会有较小的区别。
不过,如果不是连续性的强连续写,只要不达到磁盘的写极限,差别并不是太大。
3)离散写方面的性能差异例如oracle 数据库每次写一个数据块的数据,如8K;由于每次写入的量不是很大,而且写入的次数非常频繁,因此联机日志看起来会像是连续写。
但是因为不保证能够添满RAID5的一个条带,比如32K(保证每张盘都能写入),所以很多时候更加偏向于离散写入(写入到已存在数据的条带中)。
我们从上图看一下离散写的时候,RAID5与RAID10工作方式有什么不同。
如上图:我们假定要把一个数字2变成数字4,那么对于RAID5,实际发生了4次io:先读出2与校验6,可能发生读命中然后在cache中计算新的校验写入新的数字4与新的校验8。
如上图我们可以看到:对于RAID10,同样的单个操作,最终RAID10只需要2个io,而RAID5需要4个io.这里我忽略了RAID5在那两个读操作的时候,可能会发生读命中操作的情况。
也就是说,如果需要读取的数据已经在cache中,可能是不需要4个io的。
这也证明了cache对RAID5 的重要性,不仅仅是计算校验需要,而且对性能的提升尤为重要。
当然,并不是说cache对RAID10就不重要了,因为写缓冲,读命中等,都是提高速度的关键所在,只不过RAID10对cache的依赖性没有RAID5那么明显而已。
4)磁盘的IOPS对比假定一个case,业务的iops是10000,读cache命中率是30%,读iops为60%,写iops 为40%,磁盘个数为120,那么分别计算在raid5与raid10的情况下,每个磁盘的iops为多少。
raid5:单块盘的iops = (10000*(1-0.3)*0.6 + 4 * (10000*0.4))/120= (4200 + 16000)/120= 168这里的10000*(1-0.3)*0.6表示是读的iops,比例是0.6,除掉cache命中,实际只有4200个iops。