一、背景介绍
RAID(Redundant Array of Independent Disk 独立冗余磁盘阵列)技术是加州大学伯克利分校1987年提出,最初是为了组合小的廉价磁盘来代替大的昂贵磁盘,同时希望磁盘失效时不会使对数据的访问受损 失而开发出一定水平的数据保护技术。RAID就是一种由多块廉价磁盘构成的冗余阵列,在操作系统下是作为一个独立的大型存储设备出现。RAID可以充分发 挥出多块硬盘的优势,可以提升硬盘速度,增大容量,提供容错功能够确保数据安全性,易于管理的优点,在任何一块硬盘出现问题的情况下都可以继续工作,不会受到损坏硬盘的影响。
二、分类及区别
RAID 为 Redundant Array of Indepent Disks (独立磁盘冗余阵列) 的缩写,最常用的四种RAID为 RAID 0、RAID 1、RAID 5、RAID 10,下面以图解的方式解释这四种RAID的特点和区别。
注意:在图示中,用到以下标识:A,B,C,D,E和F - 表示数据块;p1,p2,p3 - 表示奇偶校验信息块。
RAID 0:
RAID 0⼜称为Stripe或Striping,它代表了所有RAID级别中最⾼的存储性能。RAID 0提⾼存储性能的原理是把连续的数据分散到多个磁盘上存取,这样,系统有数据请求就可以被多个磁盘并⾏的执⾏,每个磁盘执⾏属于它⾃⼰的那部分数据请求。这种数据上的并⾏操作可以充分利⽤总线的带宽,显著提⾼磁盘整体存取性能。
#⼯作原理:系统向两个磁盘组成的逻辑硬盘(RAID0 磁盘组)发出的I/O数据请求被转化为3项操作,其中的每⼀项操作都对应于⼀块物理硬盘。通过建⽴RAID 0,原先顺序的数据请求被分散到所有的三块硬盘中同时执⾏。从理论上讲,两块硬盘的并⾏操作使同⼀时间内磁盘读写速度提升了2倍。但由于总线带宽等多种因素的影响,实际的提升速率肯定会低于理论值,但是,⼤量数据并⾏传输与串⾏传输⽐较,提速效果显著显然⽏庸置疑。
#优缺点:读写性能是所有RAID级别中最⾼的。RAID 0的缺点是不提供数据冗余,因此⼀旦⽤户数据损坏,损坏的数据将⽆法得到恢复。RAID0运⾏时只要其中任⼀块硬盘出现问题就会导致整个数据的故障。⼀般不建议企业⽤户单独使⽤。
#总结: 磁盘空间使⽤率:100%,故成本最低,最少需要2块磁盘。
读性能:N*单块磁盘的读性能
写性能:N*单块磁盘的写性能
冗余:⽆,任何⼀块磁盘损坏都将导致数据不可⽤,不能应用于对数据安全性要求高的场合
RAID 1:
RAID 1通过磁盘数据镜像实现数据冗余,在成对的独⽴磁盘上产⽣互为备份的数据。当原始数据繁忙时,可直接从镜像拷贝中读取数据,因此RAID 1可以提⾼读取性能。RAID 1是磁盘阵列中单位成本最⾼的,但提供了很⾼的数据安全性和可⽤性。当⼀个磁盘失效时,系统可以⾃动切换到镜像磁盘上读写,⽽不需要重组失效的数据。
#⼯作原理:RAID1是将⼀个两块硬盘所构成RAID磁盘阵列,其容量仅等于⼀块硬盘的容量,因为另⼀块只是当作数据“镜像”。RAID1磁盘阵列显然是最可靠的⼀种阵列,因为它总是保持⼀份完整的数据备份。它的性能⾃然没有RAID0磁盘阵列那样好,但其数据读取确实较单⼀硬盘来的快,因为数据会从两块硬盘中较快的⼀块中读出。RAID1磁盘阵列的写⼊速度通常较慢,因为数据得分别写⼊两块硬盘中并做⽐较。RAID1磁盘阵列⼀般⽀持“热交换”,就是说阵列中硬盘的移除或替换可以在系统运⾏时进⾏,⽆须中断退出系统。RAID1磁盘阵列是⼗分安全的,不过也是较贵⼀种RAID磁盘阵列解决⽅案, 因为两块硬盘仅能提供⼀块硬盘的容量。RAID1磁盘阵列主要⽤在数据安全性很⾼,⽽且要求能够快速恢复被破坏的数据的场合。 在这⾥,需要注意的是,读只能在⼀块磁盘上进⾏,并不会进⾏并⾏读取,性能取决于硬盘中较快的⼀块。 写的话通常⽐单块磁盘要慢,虽然是并⾏写,即对两块磁盘的写⼊是同时进⾏的,但因为要⽐较两块硬盘中的数据,所以性能⽐单块磁盘慢。
#优缺点:RAID1通过硬盘数据镜像实现数据的冗余,保护数据安全,在两块盘上产⽣互为备份的数据,当原始数据繁忙时,可直接从镜像备份中读取数据,因此RAID1可以提供读取性能。RAID1是硬盘中单位成本最⾼的,但提供了很⾼的数据安全性和可⽤性,当⼀个硬盘失效时,系统可以⾃动切换到镜像硬盘上读/写,并且不需要重组失效的数据。
#总结:磁盘空间使⽤率:50%,故成本最⾼,最少需要2块磁盘。
读性能:只能在⼀个磁盘上读取,取决于磁盘中较快的那块盘
写性能:两块磁盘都要写⼊,虽然是并⾏写⼊,但因为要⽐对,故性能单块磁盘慢。
冗余:只要系统中任何⼀对镜像盘中有⼀块磁盘可以使⽤,甚⾄可以在⼀半数量的硬盘出现问题时系统都可以正常运⾏。
RAID 5:
RAID 5是RAID 0和RAID 1的折中⽅案。RAID 5具有和RAID0相近似的数据读取速度,只是多了⼀个奇偶校验信息,写⼊数据的速度⽐对单个磁盘进⾏写⼊操作稍慢。 同时由于多个数据对应⼀个奇偶校验信息,RAID5的磁盘空间利⽤率要⽐RAID 1⾼,存储成本相对较低,是⽬前运⽤较多的⼀种解决⽅案。
#⼯作原理: RAID5把数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上,其中任意N-1块磁盘上都存储完整的数据,也就是说有相当于⼀块磁盘容量的空间⽤于存储奇偶校验信息。因此当RAID5的⼀个磁盘发⽣损坏后,不会影响数据的完整性,从⽽保证了数据安全。当损坏的磁盘被替换后,RAID还会⾃动利⽤剩下奇偶校验信息去重建此磁盘上的数据,来保持RAID5的⾼可靠性。做raid 5阵列所有磁盘容量必须⼀样⼤,当容量不同时,会以最⼩的容量为准。最好硬盘转速⼀样,否则会影响性能, ⽽且可⽤空间=磁盘数n-1,Raid 5 没有独⽴的奇偶校验盘,所有校验信息分散放在所有磁盘上,只占⽤⼀个磁盘的容量。
#总结: 磁盘空间利⽤率:(N-1)/N,即只浪费⼀块磁盘⽤于奇偶校验, 最少3块磁盘。
读性能:(n-1)*单块磁盘的读性能,接近RAID0的读性能。
写性能:⽐单块磁盘的写性能要差(这点不是很明⽩,不是可以并⾏写⼊么?)
冗余:数据条带形式分布,以奇偶校验作冗余,只允许⼀块磁盘损坏。
RAID 10:
RAID10也被称为镜象阵列条带。象RAID0⼀样,数据跨磁盘抽取;象RAID1⼀样,每个磁盘都有⼀个镜象磁盘, 所以RAID 10的另⼀种会说法是 RAID 0+1。 RAID10提供100%的数据冗余,⽀持更⼤的卷尺⼨,但价格也相对较⾼。对⼤多数只要求具有冗余度⽽不必考虑价格的应⽤来说,RAID10提供最好的性能。使⽤RAID10,可以获得更好的可靠性,因为即使两个物理驱动器发⽣故障(每个阵列中⼀个),数据仍然可以得到保护。RAID10需要4 + 2*N 个磁盘驱动器(N >=0),⽽且只能使⽤其中⼀半(或更⼩, 如果磁盘⼤⼩不⼀)的磁盘⽤量, 例如 4 个 250G 的硬盘使⽤RAID10 阵列,实际容量是 500G。
#实现原理: Raid10其实结构⾮常简单,⾸先创建2个独⽴的Raid1,然后将这两个独⽴的Raid1组成⼀个Raid0,当往这个逻辑Raid中写数据时,数据被有序的写⼊两个Raid1中。磁盘1和磁盘2组成⼀个Raid1,磁盘3和磁盘4⼜组成另外⼀个Raid1;这两个Raid1组成了⼀个新的Raid0。如写在硬盘1上的数据1、3、5、7,写在硬盘2中则为数据1、3、5、7,硬盘中的数据为0、2、4、6,硬盘4中的数据则为0、2、4、6,因此数据在这四个硬盘上组合成Raid10,且具有raid0和raid1两者的特性。 虽然Raid10⽅案造成了50%的磁盘浪费,但是它提供了200%的速度和单磁盘损坏的数据安全性,并且当同时损坏的磁盘不在同⼀Raid1中,就能保证数据安全性。假如磁盘中的某⼀块盘坏了,整个逻辑磁盘仍能正常⼯作的。 当我们需要恢复RAID10中损坏的磁盘时,只需要更换新的硬盘,按照RAID10的⼯作原理来进⾏数据恢复,恢复数据过程中系统仍能正常⼯作。原先的数据会同步恢复到更换的硬盘中。
#总结:磁盘空间利⽤率:50%,最少需要4块磁盘。
读性能:N/2*单块硬盘的读性能
写性能:N/2*单块硬盘的写性能
三、相关问题
问:RAID0至少几块盘?
答:RAID0最少要两块硬盘才能实现。RAID 1 RAID 1,又称镜像方式,也就是数据的冗余。在整个镜像过程中,只有一半的磁盘容量是有效的(另一半磁盘容量用来存放同样的数据)。同RAID 0相比,RAID 1首先考虑的是安全性,容量减半、速度不变。
问:RAID1至少几块盘?
答:RAID1最少要两块硬盘才能实现。RAID 0+1(RAID 10) 为了达到既高速又安全,出现了RAID 10(或者叫RAID 0+1),可以把RAID 10简单地理解成由多个磁盘组成的RAID 0阵列再进行镜像。
问:RAID0+1至少几块硬盘才能实现?
答:RAID0+1至少需要4块盘。
问:RAID5需要几块硬盘?为什么损失一个盘的容量?
答:至少3块。 RAID5把数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上,其中任意N-1块磁盘上都存储完整的数据,也就是说有相当于一块磁盘容量的空间用于存储奇偶校验信息。因此当RAID5的一个磁盘发生损坏后,不会影响数据的完整性,从而保证了数据安全。当损坏的磁盘被替换后,RAID还会自动利用剩下奇偶校验信息去重建此磁盘上的数据,来保持RAID5的高可靠性。RAID 5的工作方式是将各个磁盘生成的数据校验切成块,分别存放到组成阵列的各个磁盘中去,这样就缓解了校验数据存放时所产生的瓶颈问题,但是分割数据及控制存放都要付出速度上的代价。
注意:综上分析,RAID5阵列方式可靠性和成本方面最适中,所以目前基本的业务服务器都至少配置RAID5或者RAID5+1热备的方式。