图文并茂说明raid0,raid1, raid5, raid6,raid10等原理
什么是RAID?
RAID(Redundant Arrays of Independent Disks,一说Redundant Arrays of Inexpensive Disks),中文名称叫独立磁盘冗余阵列(廉价磁盘冗余阵列),简称磁盘阵列。它的作用呢,是在多块硬盘组成的阵列系统中,牺牲一块至多块硬盘的容量,来对数据的存储提供一定的容错能力。
简单的说,RAID是一种把多块独立的硬盘(物理硬盘)按不同的方式组合起来形成一个硬盘组(逻辑硬盘),从而提供比单个硬盘更高的存储性能和提供数据备份技术。组成磁盘阵列的不同方式成为RAID级别(RAIDLevels)。数据备份的功能是在用户数据一旦发生损坏后,利用备份信息可以使损坏数据得以恢复,从而保障了用户数据的安全性。在用户看起来,组成的磁盘组就像是一个硬盘,用户可以对它进行分区,格式化等等。总之,对磁盘阵列的操作与单个硬盘一模一样。不同的是,磁盘阵列的存储速度要比单个硬盘高很多,而且可以提供自动数据备份。
RAID0(条带存储)
假设阵列中一共有n块硬盘,RAID0是将需要存储的数据以“条带(Stripe)”为单位分成n份,然后分别写入n块硬盘中。因此,RAID0将提供非常优秀的读写性能。打个简单的比方,如果你要读写一个2G的文件,在普通硬盘上,要以单盘的速度读取/写入2G的数据;而如果在4盘RAID0阵列中,每个盘只需读取/写入500MB的数据,四个盘可以并行读取/写入,因此理论的读写速度将是单块硬盘的4倍。
但是严格的说,RAID0并不能算Redundant Array(冗余阵列),因为它并不提供冗余的容错机制。只要阵列中有一块硬盘坏掉,由于这块硬盘保存着所有数据(每个文件)的某一部分,因此所有数据都将无法读取,整个阵列中的数据将宣告报废。虽然RAID0的空间利用率可以达到1,但是容错率却是为0。因此,一般会辅以其他RAID类型来实现数据的冗余容错。
RAID0 特点总结:
(1)最少需要2块磁盘组成;
(2)数据条带化分散存储到所有磁盘中;
(3)不需要进行数据镜像备份和数据校验运行,存储性能最佳;
(4)无数据冗余策略,磁盘组任一磁盘失效会导致整个逻辑磁盘的数据无法正常访问,数据安全保护能力不高。
(5)磁盘空间利用率:100%。
RAID1(镜像存储)
RAID1是最安全的阵列方案,但也是空间利用率最低的方案。RAID1将所有数据原封不动copy一份,放于另一块硬盘中。如果你用4块1T的硬盘组成RAID1阵列,可用空间甚至只有1T!因为剩下的3块硬盘中的数据与第一块硬盘一模一样。当然这也提供了坏n-1块硬盘的数据保障,只要任意一块硬盘是好的,就算剩余硬盘全部坏掉也可以读取数据。因此空间利用率只有1/n,而容错率高达(n-1)/n。但是由于空间利用率实在太低,一般来讲只用2块硬盘组成RAID1,再辅以其他RAID类型共同协作。
至于RAID1阵列组的性能,读取性能取决于阵列中最快的硬盘(谁读的快就用谁的数据,反正数据都一样),而写入性能则取决于阵列中最慢的硬盘(要等所有硬盘写入结束,才完成写入操作)。
RAID1 特点总结:
(1)最少需要2块磁盘组成;
(2)通过磁盘数据镜像实现数据冗余,在成对的独立磁盘上产生互为备份的数据;
(3)提供了很高的数据安全性和可用性,当一个磁盘失效时,系统可以自动切换到镜像磁盘上读写,而不需要重组失效的数据;
(4)磁盘空间利用率:50%。
RAID5
RAID5 应该是目前最常见的 RAID 等级,它的原理与 RAID4 相似,区别在于校验数据分布在阵列中的所有磁盘上,而没有采用专门的校验磁盘。对于数据和校验数据,它们的写操作可以同时发生在完全不同的磁盘上。因此, RAID5 不存在 RAID4 中的并发写操作时的校验盘性能瓶颈问题。另外, RAID5 还具备很好的扩展性。当阵列磁盘 数量增加时,并行操作量的能力也随之增长,可比 RAID4 支持更多的磁盘,从而拥有更高的容量以及更高的性能。
RAID5 特点总结:
(1)最少需要3块磁盘;
(2)把业务数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上;
(3)当一个数据盘故障时,系统可以根据同一条带的其他数据块和对应的校验数据来重建损坏的数据;
(4)磁盘空间利用率:(N-1)/N。
raid 6(带有两个独立分布式校验方案的独立数据磁盘)
RAID6技术是在RAID 5基础上,为了进一步加强数据保护而设计的一种RAID方式,实际上是一种扩展RAID 5等级。与RAID 5的不同之处于除了每个硬盘上都有同级数据XOR校验区外,还有一个针对每个数据块的XOR校验区。当然,当前盘数据块的校验数据不可能存在当前盘而是交错存储的,具体形式见图。这样一来,等于每个数据块有了两个校验保护屏障(一个分层校验,一个是总体校验),因此RAID 6的数据冗余性能相当好。但是,由于增加了一个校验,所以写入的效率较RAID 5还差,而且控制系统的设计也更为复杂,第二块的校验区也减少了有效存储空间。
RAID6特点总结:
(1) 最少需要4块磁盘RAID 6 容许坏两台硬盘;
(2)把相对应的校验信息存储到两组独立的分散在不太条带上;
(3)当一个数据盘故障时,系统可以根据校验数据计算重建损坏的数据;
(4)磁盘空间利用率:(N-2)/N。
RAID10
RAID10其实是RAID1加上RAID0,吸收了RAID0的效率,RAID1的安全性,因此至少需要四块硬盘搭建RAID10。先通过RAID1两两镜像复制,保障数据安全性,针对两个RAID1部署RAID0,进一步提升磁盘读写速度,只要坏的不是同一组中所有硬盘,那么就算坏掉一半硬盘都不会丢失数据。
RAID10 特点总结:
(1)最少需要4块磁盘;
(2)先创建2个独立的RAID1,再把两个独立的RAID1组成一个RAID0;
(3)既提供数据镜像存储能力,又提供数据条带化分布,性能和安全均最优。
(4)磁盘空间利用率:50%。