RAID0、1、3、5、6、10、50和热备盘超详细说明

  • RAID技术的主要功能:

  • 通过对硬盘上的数据进行条带化,实现对数据成块存取,减少硬盘的机械寻道时间,提高了数据存取速度。

  • 通过对一阵列中的几块硬盘同时读取(并行访问),减少了硬盘的机械寻道时间,提高了数据存取速度。

  • 通过镜像或者存储奇偶校验信息的方式,实现了对数据的冗余保护。

  • 随着阵列技术的发展,已经产生了很多不同类型的RAID,但现在只有少数几种RAID仍在使用。在这个章节中,我们将讨论最常用的RAID类型,也会学习RAID的其它相关功能,比数据保护等,同时,选择不同的RAID类型意味着不同的性能/成本。

  • 在存储设备中,可以通过2种方式实现RAID功能:硬件RAID和软件RAID。

  • 硬件RAID使用专用的RAID适配器、硬盘控制器或存储处理器。RAID控制器有自己的处理器,I/O处理芯片,和内存,用来提高资源利用率和数据传输速度。RAID控制器管理路由、缓冲区,控制主机与RAID间数据流。硬件RAID通常在服务器中使用。

  • 软件实现的RAID没有它自己的处理器或I/O处理芯片,而是完全依赖于主机处理器。因此,低速CPU不能满足RAID实施的要求。软件RAID通常在企业级存储设备上使用。

在这里插入图片描述

  • 分条宽度

  • 指在一个分条中数据成员盘的个数;

  • 分条深度

  • 指一个条带的容量大小。

在这里插入图片描述

  • RAID技术通常有2种不同的方式进行数据保护。一种方法是在另一块冗余的硬盘上保存数据的副本。二是使用奇偶校验算法。奇偶校验码是使用用户数据计算出的额外信息。对于使用奇偶校验的RAID类型,它意味着需要额外的校验硬盘。奇偶校验采用的是异或(XOR的计算符号⊕)算法。

  • 异或算法的输出见下表:

在这里插入图片描述

在这里插入图片描述

  • 总结来说,RAID技术的优势体现在如下几个方面:

  • 把多个硬盘组合成一个逻辑盘组,以提供更大容量的存储。

  • 将数据分割成数据块,对多个硬盘并行进行写入/读出,提高硬盘访问速度。

  • 通过提供镜像或奇偶校验来提供容错。

热备盘说明


  • 当坏盘出现后,服务器会报警,人工可以手动将坏盘替换出来,当插入好盘的时候,RAID控制器会根据XOR,将的三块盘的信息在后台算出来,然后写入新的硬盘。有些RAID控制系统会用NVRAM来存放阵列信息,因此和整列相关的条带化数据也会重新分配到新盘上,这些工作都对用户和应用程序来说都是透明的,用户可能会感受到的就是系统会因为在后台底层进行条带数据的重新分配而带来的服务器响应延迟。

  • 当然,如果条件允许,用户也可以强制作重新分配,当然是在维护停机时间内操作。

  • 但是由于XOR的限制和RAID 5这个级别的限制,如果连续两个盘出现了问题,呢么整个盘阵中的数据就完蛋了,系统也会不可用。

  • 特别是那些无人值守的机房,RAID 5中死掉一个盘,没有关系,如果他们比较倒霉,在管理人员没有更换坏盘的时候,第二个硬盘也死掉了,那麽就都完蛋了。

  • Hot-Spare盘就是一个不参与盘阵的,但是加电上线的盘,一点RAID 中的盘出现问题,它都可以自动的替换进入盘阵,你可以把它想象成一个"自动换盘"的概念。

  • 硬盘数量的话,就需要多一块,比如raid1需要两块盘,做热备的话就需要3块盘了,但使用的依然是2快,剩下一块随时准备替换使用中的2快中坏了的盘。

RAID0 说明


在这里插入图片描述

  • 在所有RAID级别中,RAID 0(也被称为条带化RAID)具有最高的存储性能。RAID 0使用条带化技术将数据分布存储在RAID组的所有硬盘中。

  • 一个RAID 0包含至少2个成员盘。RAID 0组将数据分为大小不等的从512个字节至兆字节的数据块(通常是512字节的倍数),并行将其写入到不同的硬盘中。如图所示的两个硬盘(驱动器)构成的RAID中:前两块数据被写入到分条0上,其中,第一个数据块被写在硬盘1的条带0上,第二个数据块并行存放在硬盘2的条带0上;这时,再下一个数据块被写到硬盘1上的下一个条带(条带1)上,以此类推。以这种方式,I/O的负载平衡分布在RAID中的所有硬盘上,由于数据传输总线上的速度远大于硬盘读写速度,因此,RAID组上的硬盘可以认为在同时进行读写。

  • 一个RAID 0的硬盘组中的硬盘必须具有相同的大小,转速。如果一个RAID0的由4个硬盘组成,则读写速率理论上可达单个硬盘的4倍(实际上可能有系统损耗),容量为单个硬盘的4倍。RAID 0 中硬盘的容量大小不同,可用容量是最小的硬盘的容量的4倍,速度也是最小硬盘速度的4倍。

  • RAID 0像是提供了一个单一的大容量的硬盘,还同时具有非常快速I/O的特点。在RAID0技术使用之前,类似RAID 0的一种技术被称为JBOD。一个JBOD(Just a Bundle OfDisks,简称一堆硬盘)是一组硬盘组合成一个虚拟的大硬盘。与RAID 0最大的区别是,一个JBOD的数据块不是同时并行写入不同硬盘的。在JBOD中,只有将第一块硬盘的存储空间使用完,才会使用第二块硬盘。所以JBOD总的可用容量是所有个硬盘容量的总和,但性能是单个硬盘的性能!

  • RAID 0 安全相关说明:

  • RAID 0是最不安全的,包括跟普通磁盘比较,也不如的。现在大部分硬盘坏的,都是硬故障。也就是磁盘本身问题,根文件没关系。某个文件坏了,不管在RAID几下面,他都是坏的。RAID是提高物理设备,也就是磁盘,的性能或者安全性,与软件,比如文件,没有关系的。一个文件坏了,不影响别的文件,不管是单磁盘还是RAID任何级别的情况下。说RAID几 安全不,都是说硬件,比如有磁盘坏了,数据会不会丢,会不会导致服务器不能工作,等等。这一讨论都是在硬件层上的,硬件坏了,数据文件依然可以完好,只是机器不能工作,就不能读取这些文件了。

  • 组建RAID0,所有的文件基本上(注意是基本上,除了很小的文件,具体多小不深入讨论了,越说越多),都是跨磁盘存储的,比如两个磁盘组RAID0,那一个文件就被分称多份,存在不同磁盘上,只有所有磁盘都可读,才能把分开的多份,合并成一个完整文件,操作系统才能识别,这个文件。而普通模式【未做raid】的两个磁盘A和B,每个文件还是单独在要么磁盘A,或者B 上面存的。A盘坏了,B盘文件还是可以读的,不像RAID0文件被分割后分别存储在A和B上,基本上,每次访问文件都得要求读取两块。这样任何一个磁盘坏,两个磁盘上的所有数据都无法访问了,因为即使另一个磁盘好的,但是它上面的数据都是分开的,不是完整的,依赖于另一块磁盘。三块,四块磁盘的RAID0风险就更高了。

  • 既然你能创建RAID0,那不想要了,就不创建,删了他,以普通模式工作,很简单,在哪里创建,就在那里删除(一般机器有专门的RAID管理界面,类似BIOS,启动时候按规定的快捷键进入。)没有什么特殊的,备份数据了,就跟对一台新设备操作一样,想怎么设置随便你。

在这里插入图片描述

  • RAID 0采用条带化技术将数据写入硬盘组中,它将数据分为数据块,并均匀地分布存储在RAID组中的所有硬盘上。只有当RAID组的前一个分条被数据块写满后,数据才会写入到下一个分条。在图中,数据块D0,D1,D2,D3,D4,D5正在等待写入到RAID 0级别的硬盘组。D0将被写入到第一个分条(分条0)的第一块盘(硬盘1)上、D1写到的第一个分条的硬盘2上。以此类推。正是通过条带化并行的方式,将所有数据块写入到RAID 0组。

  • RAID 0组的写入性能与硬盘的数量成正比。

在这里插入图片描述

  • 当RAID 0接收数据读取请求时,它会在所有硬盘上搜索目标数据块并读取数据。在图中,我们可以看到整个读取过程。

  • 首先,阵列收到读取数据块D0,D1,D2,D3,D4,D5的请求。接下来,阵列并行从硬盘1读取D0,从硬盘2读取D1,其他数据块也按类似的方式读取。所有的数据块从RAID读取后,他们被集成到RAID控制器,然后发送到主机。

  • 同写入数据一样,RAID 0的读取性能与硬盘的数量成正比。

RAID1说明


在这里插入图片描述

  • RAID 1(也被称为镜像结构的硬盘阵列)旨在建立一个高安全性的RAID级别。RAID1使用2个相同的硬盘系统【raid1只能为2块硬盘】,并设置了镜像。当数据写入到一个硬盘上时,数据的副本会同时存储在镜像硬盘上。当源硬盘(物理)失败时,镜像硬盘从源硬盘接管服务,保证服务的连续性。镜像盘作为备份,提供高数据可靠性。

  • 一个RAID 1组存储的数据量只是单个硬盘的容量,另一硬盘保存的是数据的副本,相当于每一G字节的数据存储占用了2G字节的硬盘空间,所以说两个硬盘组成的RAID 1的空间利用率是50%。

  • RAID 1的两个硬盘必须具有相同的大小。如果两个硬盘的容量大小不同,可用容量是最小的硬盘的容量。 坏一块盘数据不会丢失,2块同时坏,数据将丢失。

在这里插入图片描述

  • RAID 0采用条带化技术将不同数据并行写入到硬盘中,而RAID 1则是同时写入相同的数据到每个硬盘,数据在所有成员硬盘中都是相同的。在上图所示,数据块D0,D1和D2,等待写入到硬盘。D0和D0的副本同时写入到两个硬盘中(硬盘1和硬盘2),其他数据块也以相同的方式(镜像)写入到RAID 1硬盘组中。

  • 通常来说,一个RAID 1的写性能是单个硬盘的写性能。

在这里插入图片描述

  • RAID 1读取数据时,会同时读取数据盘和镜像盘,以提高读取性能。如果其中一个硬盘失败,可以从另一个硬盘读取数据。

  • RAID 1系统的读取性能等于两个硬盘的性能之和。在RAID组降级的情况下,性能下降一半。

RAID3 说明


在这里插入图片描述

  • RAID 3与RAID 0类似,不同之处在于RAID 3带有专用的奇偶校验的分条。在RAID 3中,一块专用硬盘(校验盘)用来保存同一分条上其他硬盘上的相应的条带中的数据的奇偶校验值。如果检测到不正确的数据或硬盘出现故障,我们可以利用奇偶校验信息来恢复故障硬盘上的数据。RAID 3适用于数据密集型或单用户环境,需要长期、连续访问的数据块。RAID 3将数据写入操作分配给RAID组内的数据成员盘。但是,当有新数据需要写入时,无论写入哪个硬盘,RAID 3都需要重新计算并重写校验信息。因此,当某个应用程序需要大量写入时,RAID 3的奇偶校验盘将有很大的工作量。因为需要等待奇偶校验,所以会对RAID 3组的读写性能有一定影响。此外,因为校验盘有较高的工作负载,它往往是RAID 3里最容易失效的硬盘。这就是为什么校验盘被称为RAID 3的瓶颈的原因。

  • RAID3 最少硬盘数为3块,假定一个RAID 3的硬盘数为N,其中有效用户数据存储容量为N-1个硬盘的容量。与其他RAID一样,RAID 3中的成员盘的容量和转速应该是相同的。

  • 在RAID 3级别和RAID 5级别的硬盘阵列中,如果一个硬盘失效,该硬盘组将从在线(正常)状态转变为降级状态,直到完成重构失效硬盘。如果RAID中的另一个硬盘也出现故障,则硬盘组的数据将丢失。

在这里插入图片描述

  • RAID 3采用单硬盘容错和并行数据传输。换句话说,RAID 3采用分条技术将数据分块,这些块进行异或算法,并将奇偶校验数据写到最后一个盘——RAID 3组的奇偶校验硬盘。当硬盘出现故障时,数据被写入到那些没有故障的硬盘上,奇偶校验继续。

  • RAID 3的性能不是固定的。原则上,RAID 3采用的是N+1的数据保护方法。这意味着当有N个硬盘的用户数据需要保护时,需要一个额外的硬盘来存储校验信息。在这种情况下,新的数据块被写入硬盘同时,奇偶校验信息被计算生成后,写入校验硬盘。

  • 通常情况下,RAID 3组的所有的硬盘会在分条过程中合作,N个硬盘会并行写入。但当新写入的数据较少,只需写入一个或两个硬盘时,按照RAID 3的工作原理,仍需要读所有的硬盘以便重新计算新的奇偶校验值。这种少量写入数据的场景,因为需要额外的读和写操作,相对于对单个硬盘进行数据写入,并没有提升硬盘的性能,这种情况被称为RAID 3的“写惩罚”。

  • RAID 3的写入性能取决于更改数据的数量、硬盘的数目、以及计算和存储奇偶校验信息所需的时间。假定一个RAID 3的硬盘数为N,当所有成员盘的转速相同时,在不考虑写惩罚,满分条写的情况下,RAID 3的顺序IO写性能理论上略小于 N-1倍单个硬盘的性能(计算冗余校验需要额外的计算时间)。

在这里插入图片描述

  • 在RAID 3中,数据以分条的方式进行读取。RAID中的每个硬盘的硬盘驱动器被控制,所以RAID 3里同一条带上的数据块可以并行读取。所以,RAID 3的每一个硬盘被充分利用,提升了读取性能。

  • RAID 3使用并行数据读(写)模式。

  • RAID 3的读取性能取决于读取的数据量和RAID 3阵列的硬盘数量。

RAID5 说明


在这里插入图片描述

  • RAID 5是改进版的RAID 3,使用条带化并计算奇偶校验信息。在RAID 3中有一块专用硬盘负责奇偶校验数据的写入和读取,这导致了我们前面提到的性能瓶颈问题。RAID 5使用的是分布式奇偶校验,每个成员硬盘将用于存储用户数据和奇偶校验数据。所以RAID 5没有瓶颈或热点。

  • RAID5 最少硬盘数为3块,假定一个RAID 5的硬盘数为N,其中有效用户数据存储容量为N-1个硬盘的容量。与其他RAID一样,RAID 5阵列中的成员盘的容量和转速应该是相同的。

  • 在RAID 3级别和RAID 5级别的硬盘阵列中,如果一个硬盘失效,该硬盘组将从在线(正常)状态转变为降级状态,直到完成重构失效硬盘。如果RAID中的另一个硬盘也出现故障,则硬盘组的数据将丢失。

在这里插入图片描述

在这里插入图片描述

  • 在RAID 5中,数据以分条的形式写入硬盘组中。硬盘组中的每个硬盘都存储数据块和校验信息,数据块写一个分条时,奇偶信息被写入相应的校验硬盘。在RAID 5进行连续写入的时候,不同分条用来存储奇偶校验的硬盘是不同的。因此RAID 5的不同分条的奇偶校验数据不是单独存在一个固定的校验盘里的,而是按一定规律分散存放的。

  • RAID 3在少量的数据被写入时有写惩罚,RAID 5类似。

  • RAID 5的写入性能取决于所写的数据量和RAID 5组中硬盘的数量。假定一个RAID 5的硬盘数为N,当所有成员盘的转速相同时,在不考虑写惩罚,满分条写的情况下,RAID 5的顺序IO写性能理论上略小于 N-1倍单个硬盘的性能(计算冗余校验需要额外的计算时间)。

在这里插入图片描述

  • RAID 5组的数据以分条的形式存储在硬盘上。只需N-1个硬盘的数据就可以恢复全部数据。

  • RAID 5组的读取性能取决于所写的数据量和RAID组中的硬盘数量。

RAID 6 说明


在这里插入图片描述

  • 如上图,RAID 6 最少需要5个硬盘,公式为:N+2(N>2)个硬盘;

  • 前面讨论到的RAID组数据保护都是考虑单一硬盘失效的场景(RAID 0排除在外)。现在,硬盘的容量已经增加了很多,同时重构时间也增加了。很多大容量的硬盘组合起来形成的一个RAID 5组重建失效硬盘可能需要几天,而不是几个小时。在重建过程中,系统处于降级状态,这种情况下,任何额外的硬盘故障都会导致硬盘组失效和数据丢失。这就是为什么一些组织或单位需要一个双冗余系统。换句话说:一个RAID组应该允许2个硬盘故障时,同时所有的数据应该是可访问的。这种双重冗余数据保护类型的实现有一些不同的方式:

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

面试题总结

其它面试题(springboot、mybatis、并发、java中高级面试总结等)

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
g" style=“zoom: 33%;” />

面试题总结

其它面试题(springboot、mybatis、并发、java中高级面试总结等)

[外链图片转存中…(img-tTDQyhQZ-1713374141046)]

[外链图片转存中…(img-DP7fzIbI-1713374141046)]

[外链图片转存中…(img-2th8wn6U-1713374141046)]

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

  • 13
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值