标题:什么是RAID?为什么分raid0、raid1、raid2
作者:网友
日期:2022-04-10 23:22:44
内容:

什么是RAID?为什么分raid0、raid1、raid2、raid3、raid4、raid5、raid6、raidF1、raid z,UNraid,还有JBOD、SHR、SHR2及混合raid。别慌,让我来为大家好好讲解。

日常生活中,随着大家要存储的数据量不断增多,一个三A大作都有上百G,下电影选择蓝光4k、高清资源一部也有70、80G大小。就连手机拍出来的影片,都是四k 级别或者HDR杜比视界,那假如我们的硬盘存储空间不够了怎么办?

是不是要买硬盘?

ok,硬盘到手了,但每个硬盘各有一个分区,七八个盘看着就闹心,比较重要的数据想要保险点,还要手动备份到另一块硬盘。


如何能够充分利用多硬盘的优势呢?

那就不得不提下磁盘阵列RAID,RAID是美国加州 伯克利D.A Patterson教授在一九八八年提出的,中文全称独立磁盘冗余阵列,简称磁盘阵列。

把多块独立的硬盘,组合成一个容量巨大的硬盘组,大幅提升读取写入速度的同时,还带有数据保护功能,总之好处多多。

上RAID车之前,一定要注意磁盘阵列也分很多种不同的类型。

接下来几分钟再聊一下什么是raid0、raid1、raid2、raid3、raid4、raid5、raid6、raidF1、raid z,UNraid还有JBOD、SHR、SHR2和混合raid。

RAID磁盘阵列按照物理类型可以分为两大类。

第一大类是通过硬件实现RAID功能,俗称硬RAID。

硬RAID通常有两种解决方案,一是采用外接式磁盘阵列,这个价格特别贵,一般企业应用才需要,普通用户玩不起。

二是通过在电脑上加装磁盘阵列卡,实现RAID。

阵列卡通常更快、更稳定。更快是因为大部分阵列卡有缓存,可以提升读写速度,更稳定是因为好一点的阵列卡会带电池,即使电脑突然断电,阵列卡电池也会保证数据完全写入硬盘之后再断电,对数据安全有一定保障。

全新的阵列卡很贵,但二手的旧卡很便宜,比较适合低预算的朋友。

硬RAID虽然优点多,但一定要避免一个天坑,那就是主板自带的RAID功能,千万不要尝试。主板稍微有点问题,像是超频失败啊、电池没电啊,都非常容易导致阵列信息丢失。

听我的,不要轻易尝试。

主板自带的RAID功能不如第二大类型,就是利用软件模拟RAID,俗称软瑞。

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

说完物理类型,来聊下重头戏:RAID的逻辑分类。

常规的RAID模式编号从0开始一直到七,一共八种,咱们慢慢来说,先从raid0开始说。

这里用一个方便理解的比喻,硬盘是一个水桶读写操作,看成是注水、抽水。

有没有想起上学时候智障数学题同时向游泳池注水、抽水,借助这个比喻理解起来可能相对容易一些。

只有一块硬盘的情况下,就是往一个水桶里注水,水桶的入口大小限制了读写速度。

当有两个水桶时,同时向两个水桶。

我抽水溶解速度就相当于单块硬盘的两倍,这就是RAID0模式。

RAID0是将两个以上的硬盘并联起来,形成一个大的磁盘,这个磁盘容量等于所有硬盘容量之和。

当进行切入操作时,是把数据分段后,分别存在不同的硬盘里读写操作,有几个硬盘同时处理。

在所有的raid阵列中,raid0的速度是最快的,容量也是最大的。但它有个致命的缺点,极致的速度带来的就是不安全。raid0没有冗余和容错能力,阵列只要换一块硬盘,所有数据跟着玩完。

因为数据是分段存的,任意一块硬盘坏了,都会导致数据无法完整的恢复,一定不要用raid0存放重要资料。

那么哪种raid适合存放重要数据呢?

最安全的磁盘阵列就是raid1,raid1模式最少需要两块硬盘,所有硬盘互为镜象,每块硬盘上存的数据都一模一样,阵列中只要有一块硬盘没坏,数据都可以完整读出来。

raid1理论读取速度和raid0相同,有几块硬盘读取速度就是几倍,但写入速度等于单块硬盘,没有任何提升。

当raid1某一块硬盘损坏,而是拔出损坏的盘,这里会恢复数据到新插入的硬盘,这一过程叫重建阵列。

raid1最大问题是性价比低,即使一百块硬盘做raid1仅算一个硬盘的容量,如果各个硬盘大小不一,最终容量会以最小的为准,整体利用率是所有raid分类中最低的。

raid0和raid1像是两个极端,一个超快,一个超安全。

如果想要容量和安全的提升,又不追求极致的速度,那就了解下raid2、raid3、raid4、raid5、raid6。

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

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

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

如果校验盘坏了,那数据就没救了。

raid4和raid3相似,是把校验数据单独存放在一个硬盘里,与raid3不同的是,raid4数数据分段方式不一样,raid3按照bit分割数据,raid4按照数据块分割,数据块大小由系统决定,通常比bit大很多,所以小文件写入会比raid3快。

raid4的缺点是非校验盘损坏时,数据恢复概率比raid3低一些。如果是校验盘损坏,raid3和raid4都救不回来。

接着说下目前广泛应用的raid5和raid6。

raid5原理和raid3相似,区别是raid3把校验数据存放在一个硬盘里,但raid5的校验数据是分散存在各个硬盘里,每个硬盘都有校验数据。

当一块硬盘损坏,所有其他盘里的数据配合校验信息,就可以进行恢复,避免了raid3校验盘坏了导致阵列直接挂了的情况。

raid5模式最少三块硬盘,其中三分之一空间作为冗余存放校验数据,另外三分之二空间存放原始数据。

raid5读取速度和raid0相近,写入速度不及raid0,它因为三分之一空间是校验数据,允许阵列盘损坏一块硬盘的情况下,实现数据完全恢复,安全性比raid0高出很多。

raid5还有一个儿子(RAID F1),主要针对固态硬盘ssd,采用类似raid5的阵列模式,对ssd写入磨损有特定优化,校验数据会尽量存放在一个ssd里,降低其他固态硬盘的写入量。

当发现固态硬盘ssd写入快到上限时,支持自动数据转移。不过ssd这么贵,RAIDF1一般大家接触不到。

另一种常见的raid模式raid6,raid6与raid5相比,增加到了两个硬盘空间存放校验数据,导致raid6至少需要四块硬盘才行。

raid6模式数据安全性非常高,两个冗余硬盘空间使用不同的校验算法,任意换两块硬盘都能实现校验数据完全恢复,安全性相对raid5更高一级。

但因为采用双算法校验数据,校验数据量是raid5的两倍,同时校验算法计算量也偏大,导致raid6读取速度不及raid5。

raid6写入慢,还多占了一个硬盘容量,那岂不是被raid5秒杀?

Raid5也有自身的缺点,机械硬盘在读取数据时,有极低概率遇到不可恢复性读取错误,简称u r e,大概是每十二TB的数据可能会出现一个u r e错误。

当raid5损坏一块硬盘,正在进行重建磁盘阵列时,只要出现一次ure错误,就会导致raid5认为数据出现问题,需要重新开始建立阵列。多次重建阵列,导致硬盘长时间高复合运作。

如果硬盘是同一时期买的,一块硬盘挂了,其他硬盘状态可能也好不到哪里去,非常容易导致更多硬盘损坏。

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

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

看到这里如果觉得RAID0~6都不太满意,想了解有没有兼有多种优点的RAID?

那肯定是有的,隆重介绍下混合RAID。

常见的混合RAID是raid10,把raid1和raid0两种模式合二为一,既保证了数据安全,又大幅提升了读写速度,缺点是可用容量只有总容量的一半。

raid10最少需要四块硬盘,其中先两两组成raid1,然后把两组raid1组成RAID0。

所以raid10是先raid1,然后RAID0。

那有没有RAID01呢?逻辑上是存在的,但实际没有见到过。

主要原因有三,一是raid10阵列建成后,再添加一组raid1,总容量就可以轻松扩大,但RAID01添加一组raid0,总容量没有变化。

第二是如果坏了一块硬盘,raid01重建时,需要对两块硬盘进行数据恢复,而raid10重建只需要对坏盘进行重建即可。

第三种情况是,假设已经坏了一块硬盘,如果第二块硬盘有问题,raid01模式下只要另一组raid0任意一块硬盘损坏,整个阵列就会挂掉,坏第二块硬盘导致整个阵列挂掉的概率是三分之二。raid10模式下,只要坏盘不在同一RAID阵列就能挺住,损坏概率是三分之一。

对比一下可以看到,raid10可靠性、易用性相对raid01更高,所以应用也更为广泛。

根据raid10模式向外延伸,还可以做出raid50、raid60。

大家可以自己捋一捋这里的逻辑关系。

接着说下稍微小众的JBOD和UNRAID,JBOD英文全称是 justa bunch of disks(只是一堆磁盘)

JBOD的模式下,数据从第一块硬盘开始,一直往后边的硬盘存,系统内也只能看到包含所有硬盘容量的大分区,哪个硬盘坏了,坏盘里的数据就会损坏。

由于第一块硬盘包含了各个盘数据的分段表,如果坏的是第一块硬盘,整个阵列都会报废。

JBOD的优点是系统会把多块硬盘认成一个可用容量,是所有硬盘容量之和,而且每次写入只会占用一块硬盘,读写时其他硬盘处于闲置状态,不会导致过劳死。

但JBOD的缺点是安全性偏低,读写速度和单块硬盘速度一样,没有任何的提升。

然后介绍下和JBOD模式相似的阵列模式UNRAID,UNRAID一听就不好惹,直译就是不组RAID。

UNRAID本身是基于linux的raid系统,和JBOD非常相似,实际上就是带冗余的JBOD,可以设定一块或两块硬盘作为数据校验盘,校验盘要求比其他所有单个硬盘都大,允许连续坏一块或两块的情况下恢复数据。

UNRAID优点明显,扩容非常方便,新买的硬盘插上去就能扩容,也不需要任何各种乱七八糟的校验,而且即使坏了多块硬盘,只是坏盘上的数据丢失,整个阵列不会挂。

UNRAID有两大缺点限制了它的应用,它本身是收费的,官网六盘授权要六十九刀,十二盘授权八十九刀,不限硬盘数量的授权一百二十九刀,价格不算便宜。

第二个缺点是和JBOD一样,就是写入慢,因为额外加了校验算法,实际写入速度可能比JBOD还慢,算是所有阵列里最慢的。但是可用空间很大,感觉适合对性能要求不高,只是用来存数据的朋友。

ok,再来聊一下群晖特有的s hr阵列模式。

群辉是老牌NAS厂商,s hr主要针对不了解阵列的新人,简单点理解,s hr就是根据硬盘的数量和容量,自动判断使用哪种raid模式。

s hr默认一块的硬盘的容量,存放校验数据,假设各硬盘容量一样,当只有一个硬盘时,s hr就是普通硬盘,没有任何保护。

两块硬盘的s hr采用了类似raid1的模式

三块硬盘类似raid5

s hr2用了两个硬盘存放校验数据,需要四块硬盘,类似于RAID6。

s h r可以很方便地把一块冗余盘升级到两块,灵活性相对传统raid更高,但因为是专用格式,数据恢复时需要在群晖里操作,插到电脑上就读不出来,或者需要专用软件才行,对数据恢复有一定限制。

然后剩下最后一个raid,大家再坚持一下,要看完。
RAID Z 是基于ZFS系统的软RAID

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

RAID Z 算是ZFS的特性之一,不需要任何软件和硬件就能实现raid。RAID Z 共分三级,RAID Z1类似RAID 5,两盘存数据一盘存校验。RAID Z2类似RAID 6,两盘存数据两盘存校验。RAID Z3安全程度最高,两盘存数据三盘存校验。

RAIDz配合z f s的其他特性,用起来很香,但RAIDZ也有一些缺点。

一是吃内存,zfs需要用大量内存做缓存,每t空间最好对应1G内存,不然性能会下降,推荐最低8G起步,同时尽量保证使用e c c纠错内存,不然有低概率出现数据错误。

第二个缺点是扩容空间麻烦。如果三块硬盘已经组成raid Z1,想要增加容量,只能再加一组,总共六块硬盘,不如raid5,raid6直接插入一块新硬盘那么方便。

看到这里,基本概念大家都了解了。

如果你要问我推荐哪种RAID?我个人倾向于重要数据raid1,次要数据不组阵列。

如果是自主nas,可以试下UNRAID,大家肯定会说你这不是自相矛盾嘛?

讲了这么多只推荐RAID1,事实上各个RAID都有特定的应用场景,家用级存储不需要追求阵列,如果预算充足,可以试下安全性比较高的raid6或者raid10。

像贫穷的霍夫只能给重要文件上RAID1,其他数据丢了不心疼,心疼也没办法,不穷的话我就直接六块18t硬盘组成raid6了。

这期文章差不多就这些,喜欢的朋友别忘了关注我点赞三连哦。


返回列表 网站首页