电脑装配网

RAID磁盘阵列(RAID磁盘阵列详细介绍)

 人阅读 | 作者满天繁星 | 时间:2023-03-02 16:23

随着大家要存储的数据量不断增多,一个游戏上百G并不罕见,蓝光4K高清资源一部也要70~80G,就连手机拍出来的都是4K HDR……存储空间不够了怎么办?买硬盘!硬盘到手了,但每个硬盘各有一个分区,十几个盘符看着就闹心。比较重要的数据想要保险点,还要手动备份到另一块硬盘上……如何能够充分利用多块硬盘的优势呢?那就不提一下磁盘阵列 RAID。

一堆硬盘,一堆盘符

磁盘阵列 RAID是美国加州伯克利 D.A. Patterson 教授在1988年提出的。RAID是“Redundant Array of Independent Disk”的缩写,中文全称是独立磁盘冗余阵列,简称磁盘阵列。

D.A. Patterson

把多块独立的磁盘,组合成一个磁盘组,利用个别磁盘提供数据所产生加成效果,提升整个磁盘系统效率,大幅提升读取写入速度的同时,还带有数据保护功能,总之好处多多。

多块独立的磁盘,组合成一个磁盘组

开始使用RAID之前要注意,磁盘阵列也分很多种不同的类型,接下来我们就来了解一下。

友情提示:下面的内容过于硬核,请小伙伴们谨慎观看。

RAID磁盘阵列按照物理类型可以分为两大类,第一大类是通过硬件实现RAID功能俗称硬RAID,第二大类则是通过软件模拟RAID,俗称软RAID。

 

硬RAID一般是采用磁盘阵列卡实现RAID,阵列卡通常更快更稳定,更快是因为大部分阵列卡有缓存,可以提升读写速度;更稳定是因为好一点的磁盘阵列卡都带电池,即使电脑突然断电,阵列卡的电池也会保证数据完全写入硬盘后再断电,对数据安全有一定保障。全新的阵列卡很贵,但二手旧卡很便宜,比较适合低预算的朋友。

 

硬RAID虽然优点多,但一定要避免一个天坑,那就是主板自带的RAID功能,千万不要尝试,主板稍微有点问题,像是超频失败啊、电池没电啊,都非常容易导致阵列信息丢失,听我的不要试,主板自带的RAID还不如第二大类型,就是用软件模拟RAID,俗称软RAID。

早期的软RAID不太稳定,速度也不及硬RAID,但随着技术的不断优化,软硬RAID之间差距不再那么明显,大家常见的民用级别NAS里通常都是软RAID。

说完物理类型,来聊一下重头戏,RAID的逻辑分类。常规的RAID模式编号从0开始一直到7一共8种,咱们慢慢来,先从RAID0开始说。

 

RAID0是将两个以上的硬盘并联起来,形成一个大的磁盘,这个磁盘容量等于所有硬盘容量之和,当进行写入操作时,是把文件分段后分别写入不同的硬盘里,读写造作由几块硬盘同时处理,在所有的RAID阵列中RAID0的速度时最快的,容量也是最大的,但他有个致命缺点,极致的速度带来的就是不安全。RAID0没有冗余和容错能力,阵列只要坏一块硬盘,所有数据就跟着玩完。一定不要用RAID0存放重要资料。

空间大速度快,数据不安全

那么哪种RAID适合存放重要数据呢?最安全的磁盘阵列就是RAID1。RAID1模式最少需要两块硬盘,所有硬盘互为镜像,每块硬盘上存的数据都一摸一样,阵列中只要有一块硬盘没坏,数据都可以完整读出来。RAID1“理论”读取速度与RAID0相同,有几块硬盘,读取速度就是几倍(存疑),但写入速度等于但块硬盘的写入速度,没有任何提升,当RAID1某一块硬盘损坏时,拔除损坏的盘,阵列会恢复数据到新插入的硬盘,这一过程叫重建阵列。RAID1的最大问题是性价比低,即使100块硬盘做RAID1仅算一个硬盘的容量,如果各个硬盘大小不一,最终容量会以最小的为准。整体利用率是所有RAID中最低的。

 

RAID0和RAID1就像是两个极端,一个超快,一个超安全。如果想要容量和安全的提升,又不追求极致的速度,那就要了解下RAID23456。

RAID234在设计之初主要针对特定的应用场景,因为各种各样的缺陷,很少会应用到。很多阵列卡也都不支持RAID234,这里仅做简单的介绍。

RAID2模式最少三块硬盘,读写时需要对数据进行实时编码,分段写入不同的硬盘,的到的数据总量会比原始数据大,RAID2模式在读写时需要实时校验数据,由于采用的校验算法比较复杂,硬件开销偏大。

RAID2

RAID3是在RAID2的基础上发展而来,因为采用更简单些的算法,硬件开销相对更少,RAID3最少三块硬盘,读写操作时数据分段写入不同的硬盘,校验数据单独存放在另一个硬盘里,由于每次读写操作都会访问校验盘,导致校验盘长时间高负荷工作,非常容易挂掉,如果校验盘坏了,那数据就没救了。

RAID3

RAID4和RAID3相似,是吧校验数据单独存放在一个硬盘里,与RAID3不同的是,RAID4数据分段方式不一样,RAID3按照bit分割数据,RAID4按照数据块分割,数据块大小由系统决定,通常比bit大很多,所以小文件写入会比RAID3快,RAID4的缺点是非校验盘损坏时数据恢复概率比RAID3低一些,如果是校验盘损坏,RAID3和RAID4都救不回来。

RAID4

接着说一下目前广泛应用的RAID5和RAID6,RAID5原理和RAID3相似,区别是RAID3把校验数据存放在一个硬盘里,但RAID5的校验数据是分散存放在各个硬盘里,每个硬盘里都有校验数据,当一块硬盘损坏,所有其他硬盘里的数据配合校验信息就可以进行恢复,避免了RAID3校验盘坏了,导致阵列直接挂了的情况。RAID5模式最少三块硬盘,其中1/3空间作为冗余存放校验数据,另外2/3空间存放原始数据,RAID5读取速度和RAID0相近,写入速度不及RAID0,但因为1/3空间是校验数据,允许阵列盘损坏一块硬盘的情况下实现数据完全恢复,安全性比RAID0高出很多,RAID5还有一个儿子,主要针对固态硬盘SSD,采用类似RAID5的阵列模式,对SSD写入磨损有特定优化,校验数据会尽量存放在一个SSD里面,降低其他固态硬盘的写入量,当发现固态硬盘写入快到上限时,支持自动数据转移。

 

另一种常见的RAID模式RAID6与RAID5相比增加到了两个硬盘空间存放校验数据,导致RAID6至少需要4块硬盘才行,RAID6模式数据安全性非常高,两个冗余硬盘空间使用不同的校验算法,任意坏两块硬盘都能实现数据完全恢复,安全性比RAID5更高一下,但因为使用双算法校验数据,校验数据量时RAID5的两倍,同时校验算法计算量也偏大,导致RAID6速度不如RAID5。

 

RAID6写入慢,还多占了一个硬盘容量,那岂不是被RAID5秒杀?!RAID5也有自身的缺点,机械硬盘在读写数据有极低概率遇到不可恢复性读取错误,简称URE,大概是每12TB的数据可能会出现一个URE错误,当RAID5损坏一块硬盘正在进行重建磁盘阵列时,只要出现一次URE错误,就会导致RAID5人为数据出现问题,需要重新开始建立阵列,多次重建阵列导致硬盘长时间高负荷运作,如果硬盘时同一时期买的,一块硬盘挂了,其他硬盘的状态可能也好不到哪里去,非常容易导致更多的硬盘损坏。

RAID5只允许坏一块硬盘,重建过程中再挂掉一块硬盘,那数据就救不回来了。个人建议RAID5能少用就别用,重建阵列成功率偏低,安全性相对RAID6差很多。

 

RAID6之上还有一个RAID7,但RAID7是美国SCC公司的专利产品,默认情况下只要涉及国外专利,肯定就不会便宜,这里不做太多介绍。

 

看到这里,如果觉得RAID0~6都不太满意,那大家可以看看下面几种混合RAID

最常见的混合RAID是RAID10,把RAID1和RAID0两种模式合二为一,既保证了数据安全又大幅提升了读写速度,缺点是可用容量只有总容量的一半。RAID10最少需要4块硬盘,先两两组成RAID1,然后把两组RAID1组成RAID0。所以RAID10是先RAID1然后RAID0。

 

那有没有RAID01呢?逻辑上是存在的,但实际没有见到过应用,主要原因是在出现一块硬盘损坏时,RAID10只需要重建这一块硬盘,而RAID01需要重建RAID0组所在的两块硬盘,并且RAID10出现两块硬盘损坏恢复的概率是75%,而RAID01出现两块硬盘损坏的恢复概率只有25%。对比可以看到RAID10可靠性和易用性相对RAID01更高,所以应用的更为广泛。

根据RADI10模式向外延伸还可以做出RAID50和RAID60,大家可以自己捋一捋这里的逻辑关系。

RAID50&RAID60

接着说一下稍微小众的JBOD,UNRAID。JBOD全称是Just a Bunch Of Disks,简单磁盘捆绑。JBOD模式下数据从第一块硬盘开始一致往后便的硬盘存储,系统内只能看到包含左右硬盘容量的大分区,那个硬盘坏了,坏盘里的数据就会损坏,由于第一块硬盘包含了各个盘数据的数据分段表,如果坏的是第一块硬盘,整个阵列都会报废,JBOD的优点是系统会把多块硬盘认成一个硬盘,空用容量是所有硬盘容量的总和,而且写入只会占用一块硬盘,读写时其他硬盘处于闲置状态,不会导致过劳死。但JBOD的缺点是安全性偏低,读写速度和单块硬盘速度一样,没有任何的提升。

JBOD模式

然后介绍一下和JBOD模式相似的阵列模式UNRAID,UNRAID一听就不好惹,直译就是不组RAID,UNRAID本身是基于LINUX的RAID系统,和JBOD非常相似,实际上就是带冗余的JBOD,可以设定一块或者两块硬盘作为数据校验盘,校验盘要求比其他所有单个硬盘都大,允许坏一块或两块听盘的情况下恢复数据。

UNRAID

UNRAID优点明显:扩容非常方便,新买的硬盘直接插上去就能扩容,也不需要任何乱七八糟的校验,而且即使坏了多块硬盘,只是坏盘上的数据丢失整个阵列不会挂。UNRAID有两大缺点限制了它的应用,它本身是收费的,另外一个缺点和JBOD一样,就是写入慢,因为额外加了校验算法,实际写入速度可能比JBOD还慢。是所有阵列里最慢的。但可用空间很大,感觉适合对性能要求不高,只是用来存数据的朋友。

最后一个RAID模式就是RAID Z,RAID Z是基于ZFS系统的软RAID,ZFS是128位的文件系统,支持很多先进的特性,像是容量可以做到654位的千亿亿倍,可以创建包含多硬盘的存储池,新数据写入也不会覆盖旧数据,还有强大的快照功能。

 

RAID Z算是ZFS的特性之一,不需要额外软件或硬件就能实现RAID,RAID Z一共分为三级:RAID Z1类似RAID5 两盘存数据一盘存校验,RAID Z2类似RAID6 两盘存数据两盘存校验,RAID Z3安全程度最高,两盘存数据,三盘存校验。RAID Z配合ZFS的其他特性用起来很香,但RAID Z也有一些缺点,一是吃内存,ZFS需要用大量的内存做缓存,第二点是扩容空间麻烦。

最后的最后是一张常见磁盘阵列比较表,可以帮助理解

常用磁盘阵列比较表

感谢大家看到这里,相信大家也对RAID有一定了解了,还有疑问是的话欢迎大家留言讨论。如果你要问我推荐哪种RAID,我个人倾向于重要数据RAID1,次要数据不组RAID,如果是自组NAS可以试一下UNRAID,实际上各种RAID都一特定的应用场景,家用级存储不需要追求阵列,如果预算充足可以试一下安全性比较高的RAID6或者RAID10。好了今天就和大家聊到这了,下次有机会我们接着聊。


文章标签:

本文链接:『转载请注明出处』