raid分为软和硬两种,常见的nas一般就是软raid,用软件来逻辑组成磁盘整列。而工作中项目环境物理机上都是硬raid,硬raid也分为两种,一种是外设单独的磁盘阵列柜,这种成本昂贵,第二种就是常见raid卡,实际使用中第二种最常见,因为阵列卡有缓存,所以它比磁盘阵列柜快。有的服务器主板自带raid功能,但基本没有人使用,因为主板一旦损坏或者通电出现异常,磁盘阵列多半就废了,而较好的raid卡都会自带独立电池,保证数据写完。
目前市场上能够买到的raid卡,一般规格是lsi9311或者9361,9361支持的模式多较贵。且硬件上最多支持8通道也就是连接8块盘,不同raid卡可能会看到128的规格,但实际也就最多8个接口,是因为128只是设计的理论极限。大家在服务器上见到的10多块盘的情况,是因为加了一块expander扩展卡。通常需要两张卡一起使用时买的都是一个厂家的,这样不容易出意外。如果是额外的磁盘阵列柜,那大小就看造价了,常见是16块盘的。此外本文说的raid卡、expander卡、磁盘阵列柜、nas都是商用的,个人用的型号特别杂乱,水分也相当大,不在本文范围内。况且在个人需求的时候基本不会直接买raid卡,一来是接口一般被显卡占用,二来是相比较raid卡,有更加方便,更加便捷适合个人用的磁盘阵列盒,虽然有很多是智商税,但核心功能都够用。
现在我们言归正传,了解raid的分类。
raid0
,将所有的盘视为一块,拥有全部的写入容量,没有任何校验编号算法,数据以多片的形式写入不同盘,所以读写是最快的,但安全性是最低的,只要坏一块硬盘,所有数据都完蛋.
raid1
,最少需要两块硬盘,所有硬盘最好大小都一样,如果不是,则按最小一块盘的容量来算。它的存储方式是所有硬盘互为镜像,因此实际存储空间只有一块盘,在读的速度上理论来说因为都视为一块盘,所以和raid0是相同的,实际的话就可能另说了。在数据盘损坏时,替换损坏盘会自动从其他盘镜像数据,这种磁盘阵列恢复的过程叫重建阵列。
raid0和raid1
是两个极端,一个最快但是不安全,另外一个最稳妥,但是写入速度倒数。
raid2、3、4
三种raid是在0和1之后,特定使用场景下发展出来的模式,相当于是中间产品,而且一般情况下,由于自身设计存在缺陷,实用性不高,所以市场上99%的raid卡是不支持这三种模式的,所以基本不会遇到,简单的了解一下即可。
raid2
,最少需要三块硬盘,写入时同样为分片写入,但是会对分片数据进行编码和校验,相关数据会和片数据一并写入所在盘,且算法比较复杂,所以导致最终写入数据会比原数据大,总体上开销比较大,允许坏一块盘。
raid3
,是在raid2的基础上改善过来的,区别有两点,一是简化了算法的复杂度,二是将校验数据放入了一块单独的盘中,但读写操作时都会访问校验盘,导致其高负荷运转,相当容易损坏,整个数据整列就全完了,非效验盘允许损坏一块。
raid4
,是在raid3的基础上改善过来的,区别就在于数据分片的方式不一样,raid3是字位(b),raid4通常由系统决定,非校验盘损坏时,数据恢复概率比raid3低,存储小文件比raid3快。
raid5
,是后期出现的一个考虑较全面的类型,最少三块盘,校验数据分散在所有的盘里,校验数据占1/3,实际存储用2/3,允许坏一块盘,读取速度相近raid0,写入速度比raid0慢一些。
raid f1
,它是raid5的SSD版本,区别是会将数据尽量写到一块盘,减少SSD的写入磨损。
raid6
,是在raid5的基础上改的,最少需要四块盘,区别就在于每份校验数据会有一个备份,也就是说,他需要多出一块盘来存校验数据的备份,实际存储容量是n-2。而且两份校验数据使用的是不同的算法。网上查到的资料中说的是raid6推荐率很高,但有一次和公司运维聊天时,了解到的信息是多数情况下公司愿意使用raid5,之所以有raid6,是因为要弥补机械硬盘先天性存在的一个缺陷,在每写入12 TB数据时会有概率发生一个ure错误,这个错误将导致写入的数据恢复率相当低,而磁盘整列数据一旦无法恢复,会再次重启重建阵列操作,这就相当于无限递归,导致所有磁盘会陷入高负荷的状态,所以数据量越大raid5越容易被ure影响,也就导致项目开发中,项目越到后期磁盘就常常坏掉,而且raid6允许坏两块硬盘,不过由于双算法,所以读写速度不及raid5。
raid7
,这个模式没有权威的技术说明,因为它是美国scc公司的专利产品。一般的raid卡都没有这个模式,有的话一定不便宜。
raid10
,注意该模式的正确读法是“一零”,不是“十”,最少需要四块盘,且总盘数是双数,它的建立模式是先将所有盘两两组成raid1,然后将所有raid1再组成raid0,既保证了数据的安全,也拥有了良好的读写速度。同理可以延伸五零或者六零,“零”一定是在后面,因为如果零在前面,则在数据恢复的复杂度以及数据阵列的扩容方面没有使用意义。
总的来说只考虑读写速度和存储容量0是首先,要求安全性最高就用1,中立方案就用5或者6,中立方案的情况下你的硬盘足够多就用10,至于2、3、4除了你自己买的那种小型个人用磁盘阵列柜产品方为了忽悠小白会有这三种之外,其他的正规磁盘阵列场景基本没有。接下来还有几种相当小众,基本不会遇到的模式。
JOBD
,它是将所有盘顺序写入,写入时非使用硬盘之外的所有硬盘处于闲置状态,所有盘的阵列信息校验数据会放在第一盘,所以如果第一块坏了,整个数据整列就完了,读写速度没有任何提升。
UNRAID
,和JOBD类似,区别在于校验数据是可以放在最多两块指定的盘里,并且指定的盘要求比其它的盘都大,允许坏一块,但基本在国内市场上见不到,因为它是收费的,而且价格相当昂贵。不过JOBD和UNRAID的好处都是扩容相当方便,不需要像其他模式一样会触发重组整列。
SHR
,这是一种软raid,是群晖提供的一款产品,它就是常说的那种,可以自动判断适合使用哪种模式的raid。一块盘没有raid,两块盘类似于raid1,三块盘类似于raid5,shr2时比肩raid6,但由于它是一款星辉旗下的产品,它的操作是需要有专用的工具。