raid分为软raid和硬raid,一般公司使用硬raid,数据无价。
存数据都是先存到内存,后同步到硬盘,为提高raid卡的性能会在raid嵌入内存颗粒。
但是问题是断电后内存的数据没有同步到硬盘会丢失,这样就会有raid卡电池。(raid卡必须有raid电池)
计算机只识别raid卡,不会识别raid卡下有几块硬盘
raid 0: (条带式)最少两块硬盘,没有冗余功能和冗错能力,I/O能力非常强。
加几块硬盘就是1块硬盘性能的几倍,但是危机也是成倍增长,一般服务器不用raid0
坏一块硬盘所有数据的完整性将损坏数据将丢失。因为它的数据是分别存在不同硬盘上的。所以体现性能好,损坏率也高。
空间也不会浪费,所有磁盘都能用,每个磁盘大小都必须一样。
raid 1: (镜像卷)最少两块磁盘,有冗余和冗错能力,I/O能力不会变强,因为会做备份。
一般操作系统做raid 1。(保证系统不崩溃,线上业务不中止,数据不丢失。)
写入性能差,相当于一块硬盘。
读取性能很好,相当于raid 0 是分别在不同盘读取的
raid 1只有1块硬盘可以是用,用10块磁盘做raid 1只有1块硬盘可以使用,其余9块做备份。一般做raid 1只用两块磁盘。
raid 0 和raid 1是两个相反的功能,一个是IO快但是不安全,一个是写慢读快且安全,但是要想I0都快又安全所以出现了raid 4
raid 4: 最少三块磁盘,三块磁盘最多坏一块,它提高了性能,也允许坏一个和raid 0的存储原理是一样的提高性能只是多了一块不能用的校验码存储磁盘
raid 0提高了性能,但是不能坏。
三块有两块可以使用。另一块不存入数据只是校验码是通过前两块得出的。坏一块可以通过第三块存入的校验码计算出坏的那块数据。
假如磁盘有一块挂了,缺少数据就会第三块校验码磁盘和第二块数据磁盘总是要计算校验恢复数据势必会增加这两块磁盘的压力。
这个时候要迅速发现坏掉的磁盘去换掉它,一个新的磁盘是没有数据的,这样就会计算校验数据,恢复数据保存给新硬盘数据。
如果10块磁盘但是校验盘就一个这样会增大校验盘压力成为性能瓶颈,那块校验盘的压力变大出错率也会随着硬盘的增加而变大。
可以使用磁盘是N-1
raid 4 实现了raid 0 的分布式存,提高IO能力,也增加了一块不能使用的校验盘来恢复数据,提高安全性能,但是就恰恰这一块校验盘成为了性能瓶颈。于是raid 5出现了
raid 5:raid 5和raid 4一样但是存储方式不一样了
raid 5不是和raid 4一样把校验数据都放在一个盘上而是根据阵列分别放在不同盘上,就是说每个盘上都会有不同时间段存储数据的校验数据
根据这样的排列会有不同的阵列排序,有左对称,右对称,左右对称。通常是左对称是最效率的。
这个改进和升级就是把一块磁盘的压力分摊到所有其它磁盘上了。
它的磁盘使用率还是N-1,N个磁盘里还是有一块磁盘的空间不能使用(这一块并不是一块磁盘和raid 4不一样,它是明确有一块校验磁盘不能使用,而raid 5是总容量率里有大约一块磁盘的容量不能使用,因为它的校验磁盘数据分别存在了每个磁盘里而不是单独的一个磁盘。)
它也是只能怀一块盘,最少也是三快盘,它的数据带阵列要求最少三块盘才能形成raid 5
raid 6 是对raid 5的改进(校验盘里的数据就是数据组合验证码,为数据恢复用这个码和没有丢失的部分数据重新计算出丢失的另一部分数据,这样组合后为完整数据)
raid 6:它就是把校验数据计算两次,可以同时坏两块磁盘,最少四块磁盘组成。两块磁盘不能使用。
最后发现raid 5和6也不可靠,因为在数据恢复的过程中要是再次出现磁盘损坏也会有很大风险。
这样就有了raid 10 这个并不是10而是raid1和0的组合。
raid 10:先做raid 1 在这个基础上组合成raid 0这样就需要最少4块盘
假如我用5组raid 1 可以组成raid 0 每一组raid1当成一块盘来看
这样空间大小的利用率只有一半
按照raid 0分别把数据存在每个raid 1组里,组里坏一块没事,其他组里坏一块也没事,但是同一组里的raid 1不能两块一起坏,这样坏的几率很小。
raid 50:先做raid 5 在这个基础上组合成raid 0这样就需要最少5块盘
假如我用5组raid 5 可以组成raid 0 每一组raid5当成一块盘来看
这样空间大小的利用率只有一半
按照raid 0分别把数据存在每个raid 5组里,组里坏一块没事,其他组里坏一块也没事,但是同一组里的raid 5不能两块一起坏,这样坏的几率很小。