raid是廉价磁盘冗余阵列的英文缩写。
早期为了提供廉价的解决方案来提高磁盘的I/0能力以及耐用性,在90时代的时候出现了raid。raid技术的原理是通过将多块磁盘组织起来当成一块硬盘使用,通过并行操作来提高I/O能力,提供冗余来提高耐用性。根据组织方式的不同,raid的类型有0-6,raid10,raid01,raid50,raid7等,不同的raid类型适用的场景不同。
raid0
raid0也被称为strip,意为条带卷。存数据时,raid0控制器将要存储的连续数据分块,数据块在raid0各磁盘中分别存储。raid0的读写能力较单块磁盘有很大提升,另外它也是raid中磁盘并行读写性能最好的。但是其有一个致命的缺陷,当一个硬盘损坏时,全部数据都将丢失,因此数据的可靠性很差。raid0至少需要两块硬盘,磁盘组的可用空间为min(s1,s2..sn)*n。比较适用于对数据的安全性没有要求的情景。
raid1
raid1与raid0是raid中的两个极端,raid1提供完整的数据备份,要存储的数据会被复制多份(通常raid1只有两块硬盘)进行存储,每个硬盘存储一份数据。raid1通过镜像的方式提供数据冗余,磁盘的空间利用率不高,只有min(s1,s2..sn)。另外对于raid1来说,由于可以做到并行读取数据,读性能有所提升,但写性能较单块磁盘却略有下降。比较适合用于对关键性的数据进行存储,作为镜像的多块硬盘都坏了几率要小的多。
raid2,3并不常用,他们都是在raid0与raid1中寻求平衡点。
raid4
由于raid1的空间利用率低,所以在raid4中采用了用单一硬盘来做校验盘,来实现冗余。以三块磁盘(A,B,C)为例,在存储数据时,数据被分为2块(a,b),控制器对a,b做xor操作,得到c,最后让a存A,b存B,c存C。raid4对数据进行切块并行存取,读写性能有提升。但是由于校验数据都存在一个磁盘上,而进行数据读写时都得需要校验数据,校验盘将异常繁忙,可能会成为性能提升的瓶颈。raid4提供提供的容错能力,只允许有一块硬盘损坏。当出现硬盘损坏,raid4将进行降级工作,此时硬盘的工作压力将会变大,建议立即更换硬盘不然当在有硬盘损坏,整个磁盘组数据将无法使用。raid4最少需要有3块磁盘,多余3块也行,多余的硬盘可以做空闲盘,做备份使用。raid4的可用空间为(n-1)*min(s1,s2..sn)。
raid5
raid5与raid4很相似,唯一的不同是不在单独拿出硬盘做校验盘,取而代之的是,数据与校验数据一起存储,校验数据轮流存储在各磁盘。raid5较raid4来说,没有了校验盘的性能瓶颈,由于校验数据的读取压力被每个硬盘平摊,整体的稳定性有所提升。
raid6
raid6在raid5上进行了改进,校验码存储两次。
raid10
raid10的工作方式是先将硬盘两两分组,组内的硬盘互做镜像,组间的硬盘按照raid0的工作方式工作。raid10至少要有4块硬盘,每组硬盘只允许有一个损坏,磁盘的可用空间为min(s1,s2,..sn)*n/2,读写性能有提升。
raid01
raid01也是将硬盘两两分组的,不过其组内做分卷,组间做镜像冗余。它的容错能力是,当一个分组内磁盘损坏(不管多少个),此时数据还是安全的,而当多个分组同时都有磁盘损坏,此时的数据安全就比较悬了。
raid50
raid50先将硬盘每三个分为一组,每组内的硬盘按raid5方式工作,组间的硬盘按raid0方式工作。raid50的数据冗余能力不强,但是其读写
性能是有提升的。合适用于对数据安全没有要求,但对I/O性能有较高要求的场景。
本文出自 “仰望星空” 博客,请务必保留此出处http://nick121.blog.51cto.com/10716426/1695507
原文地址:http://nick121.blog.51cto.com/10716426/1695507