RAID图解
最近在涉及到服务器安装系统这块才了解到RAID这个知识点,上网了解该知识,实际在服务器上也操作了下,参考了如下资料:
-
https://zhuanlan.zhihu.com/p/119452913 (该文章最后有录制如何操作raid视频可看,推荐!)
-
https://blog.csdn.net/ym01213/article/details/84278542
-
https://zhuanlan.zhihu.com/p/112988111
-
https://blog.csdn.net/weixin_44938203/article/details/121342032
自己再稍微做下总结,形成文档记录
什么是RAID
RAID全称是
独立磁盘冗余阵列
(Redundant Array of Independent Disks),基本思想是把多个磁盘组合起来,组合一个磁盘阵列组,使得性能大幅提高
最初是为了组合小的廉价磁盘来代替大的昂贵磁盘,同时希望磁盘失效时不会使对数据的访问受损失而开发出一定水平的数据保护技术。RAID就是一种由多块廉价磁盘构成的冗余阵列,在操作系统下是作为一个独立的大型存储设备出现。RAID可以充分发 挥出多块硬盘的优势,可以提升硬盘速度,增大容量,提供容错功能够确保数据安全性,易于管理的优点,在任何一块硬盘出现问题的情况下都可以继续工作,不会受到损坏硬盘的影响
-
使用 RAID 的好处是什么呢?
对于普通用户而言,使用 RAID技术管理硬盘其实是没有多大必要,但是对于企业用户,尤其是要使用高可用、稳定等解决方案保证硬盘数据稳定、安全、可靠时,RAID就显得尤为重要。因为 RAID 技术可以为硬盘提供安全性和稳定性的保障,保证硬盘数据容错性或者读写性能的提升等 -
RAID 的实现方式分类
RAID 可以按照硬盘数量和组织方式不同分为不同类型的 RAID 实现
常见的有:
RAID 0
、
RAID 1
、
RAID 5
、RAID 6、
RAID 01
、
RAID 10
不常见的有:RAID 2、RAID 3、RAID 4、RAID 7、RAID 50、RAID 53
各种 RAID 详解
正式开始之前要先穿插介绍一下 RAID 实现中有时需要使用到
Spare(备用硬盘)
,Spare 是在 RAID 实现中需要额外添加的硬盘,当组成 RAID 的硬盘都正常工作的时候,Spare 硬盘是处于空闲状态的,只有当组成 RAID 的硬盘中有损坏的时候,Spare 硬盘才会自动替换损坏的硬盘位置,加入到 RAID 阵列中。(后面的知识会提及到)
另外还需要了解一些 RAID 术语:
-
条带化
:指将数据分到多个驱动器上。条带 RAID 阵列通常用于将最大的容量合并到单个卷中; -
镜像
:指将数据复制到多个磁盘上。镜像 RAID阵列通常能在阵列中有磁盘(至少一个)发生故障时确保数据不丢失,具体取决于阵列的 RAID 级别; -
容错
:指可让 RAID 阵列在磁盘发生故障时继续工作(即用户仍然可以使用阵列中存储的数据);
下面我们依次介绍不同实现方式下的 RAID,了解相关的原理和特点,在什么场景下使用何种 RAID
RAID 0
-
原理:将数据
条带化
,最少需要两块硬盘(每块硬盘的容量一样,实际生产环境中建议使用同品牌同型号同批次同容量的硬盘组成 RAID 0),即将所有组成 RAID 0 的硬盘的可用容量组合在一起,形成计算机上的一个逻辑卷。通俗的讲就是至少使用两块硬盘来存储数据,但是我要存储的数据不是全部存在某一块硬盘上,而是把我要存储的数据分成均等的多部分,然后平均分散存储在组成 RAID 0 的磁盘阵列上。 -
可用容量:组成 RAID 0 所有硬盘容量的总和(即:
N块硬盘并行组合成一个新的逻辑盘
) -
特点:
提高读写速度,对硬盘的总容量没有损失;
处理大文件很快;无冗余能力,一旦阵列中某块硬盘损坏了,所有数据将不可恢复;
不能应用于对数据安全性要求高的场合; -
举例:
2块20G的硬盘做raid0,那么最终存储容量为40G左右
下图是用四块硬盘组成 RAID 0 的示意图,其中每块硬盘都被分成 ABCD 四个条带,然后我要存数据就先存把数据均分成四部分,如果 A1 能存下其中一份,那就直接将四部分分别存入 A1-A4,如果存不下就先存满 A1-A4,剩下的按同样的方式存 B1-B4,以此类推。
RAID 1
-
原理:
镜像存储
,RAID 1 至少需要两块硬盘组成,两块硬盘互为备份,存储的内容完全相同。建议硬盘容量大小也要一样,如果不一样,那实际可用容量不超过较小的那块硬盘的容量 -
可用容量:不超过较小的那边硬盘的容量总和(即:
N为偶数块硬盘组合成一组镜像,N/2容量
) -
特点:
读取性能翻倍;
提供数据冗余,如果其中一块数据丢失,可以通过另一块还原;磁盘的利用率低,成本高;
-
举例:
2块20G的硬盘做raid1,那么最终存储容量为20G左右
下图是 RAID 1 的示意图,左右两边存储的数据是完全相同的
RAID 2(已淘汰)
-
原理:RAID 2 本质上是 RAID 0,只是加入了
汉明码
来做数据的纠错。以此来优化 RAID 0- 汉明码:(Hamming Code)是广泛用于内存和磁盘纠错的编码。汉明码不仅可以用来检测转移数据时发生的错误,还可以用来修正错误。(要注意的是,汉明码只能发现和修正一位错误,对于两位或者两位以上的错误无法正确和发现)
-
特点:
加入了数据纠错机制;成本增高,需要额外的盘做汉明码纠错;
RAID 2 的应用场景不多,目前已经被淘汰,所以没有必要研究它
RAID 3
-
原理:RAID 3
使用字节级别的条带化技术,并采用专用的奇偶校验磁盘
。RAID 3 阵列能在一个磁盘出现故障的情况下确保数据不丢失。如果一个物理磁盘出现故障,该磁盘上的数据可以重建到更换磁盘上。如果数据尚未重建到更换驱动器上,而此时又有一个磁盘出现故障,那么阵列中的所有数据都将丢失。本质上和 RAID 0 相同,与 RAID 2 相似,作为 RAID 0 的优化版本 -
特点:
加入了数据纠错机制;做奇偶校验会消耗系统性能,容易导致系统出现性能瓶颈;
下图是 RAID 3 的实现架构图,图中 Disk 4 就是那块专用的奇偶校验磁盘
- 变种(RAID 3 + Spare)
这种变种在主磁盘遇到故障的时候不需要立即处理,Spare 磁盘会无缝顶替上去
RAID 4
- 原理:和 RAID 3 一样,唯一的区别是在数据分割上 RAID 3 对数据的访问是按位进行的,RAID 4 是以数据块为单位
这里就不画图介绍了,图和 RAID 3 一样,这种 RAID 在生产环境中几乎不用
RAID 5
-
原理:RAID 5
综合了 RAID 0 的条带化技术以及阵列数据冗余技术
(阵列最少包括三个磁盘)。RAID 3 和 RAID 5 之间的区别在于,RAID 3 配置提供的性能更高,但总容量略低。数据会在所有磁盘之间分条,并且每个数据块的奇偶校验块 (P) 写入到同一条带上。如果一个物理磁盘出现故障,该磁盘上的数据可以重建到更换磁盘上。单个磁盘出现故障时,数据不会丢失,但如果数据尚未重建到更换驱动器上,而此时又有一个磁盘出现故障,那么阵列中的所有数据都将丢失。 -
特点:
有校验机制(以奇偶校验作冗余);
N块盘同时读写,读性能很高,但由于有校验机制的问题,写性能相对不高;
N(N>=3)块盘组成阵列,一份数据产生N-1个条带,同时还有1份校验数据,共N份数据在N块盘上循环均衡存储;
适合多读少写的情景,是性能与数据冗余最佳的折中方案;组成 RAID 5 的磁盘越多,安全性能越差,容易丢失数据。连续两块硬盘损坏,数据就找不回来了;
-
举例:
4块20G的硬盘做raid5,那么最终存储容量为60G左右(即:
(N-1)/N磁盘利用率
,3/4 × (4 × 20) = 60)
下图是实现的架构图,其中能够看到,Ap-Dp 奇偶校验是放到和数据同一条带上的
- 变种(RAID 5 + Spare)
这种变种通过加入空闲的 Spare 盘,在系统将数据重建至备用驱动器时用户仍可以继续访问数据。它能提供良好的数据安全,但磁盘空间由于热备用磁盘的存在(在其他磁盘出现故障之后才使用)而受到限制。磁盘故障不需要立即处理,因为系统会使用热备用磁盘对自己进行重建,但故障磁盘还是应尽快更换
RAID 6
-
原理:与 RAID 5 相比,RAID 6 增加了第二个独立的奇偶校验信息块,双重奇偶校验,在 RAID 6 中,数据会在所有磁盘(最少四个)间进行分条,并且每个数据块的两个奇偶校验块(如下图中的 p 和 q)写入到同一条带上。如果一个物理磁盘出现故障,该磁盘上的数据可以重建到更换磁盘上。这种 RAID 模式最多允许两个磁盘出故障而不丢失数据,而且它能更快地重建故障磁盘上的数据
-
特点:
读取性能好;
N(N>=4)块盘组成阵列,(N-2)/N磁盘利用率;
两个独立的奇偶系统使用不同的算法,即使两块磁盘同时失效也不会影响数据的使用;成本高,写入性能差;
RAID 7
RAID 7 并非公开的 RAID 标准,而是 Storage Computer Corporation 公司的专利硬体产品名称。我们今天不研究它
贴一张官方的架构图,感兴趣的可以自行查找资料学习
RAID 01
-
原理:RAID 0 + RAID 1,两边都是条带化的 RAID 0 存储数据,然后互为备份,组成镜像存储 RAID 1
(先做条带,再做镜象)
-
特点:
有数据备份,出现单点故障时可以恢复数据;成本高;
-
举例:
4块20G的硬盘先两两做成raid0,即2个40G的raid0,再将他们组成raid1,那么最终存储容量为40G左右
下图是 RAID 01 的架构图,在 RAID 01 阵列中,最多允许两个磁盘出现故障而不会丢失数据,但故障磁盘必须属于同一 RAID 0 队列。在图中,也就是当磁盘 1 和磁盘 2 出现故障时,数据会保存到磁盘 3 和磁盘 4
RAID 10
-
原理:RAID 1 + RAID 0,它合并了其他级别(尤其是 RAID 1 和 RAID 0)特点的另一种 RAID 级别。这是一种“镜像集条带”,意思是数据在两个镜像阵列间分条。“条带化”在阵列之间发生,而“镜像”是在相同的阵列中出现,两种技术的组合加快了重建的速度。RAID 10 阵列包含的磁盘数应为四的倍数
(先做镜像,再做条带)
-
特点:
N/2块盘同时写入,N块盘同时读取;
性能高,可靠性高;
兼顾冗余(提供镜像存储)和性能(数据条带形分布);
兼顾安全性和速度。基础4盘的情况下,raid10允许对柜盘2块故障,随着硬盘数量的提示,容错量也会相对应提升。这是raid5无法做到的;对盘的数量要求稍高,磁盘使用率为一半;
-
举例:
4块20G的硬盘先两两做成raid1,即2个20G的raid1,再将他们组成raid0,那么最终存储容量为40G左右
下图是 RAID 10 的架构图,在 RAID 10 阵列中,每个镜像对中,可以有一个磁盘出现故障而不丢失数据。不过,故障磁盘所在阵列的工作磁盘会成为整个阵列中的弱点。如果镜像对中的另一个磁盘也发生故障,则会丢失整个阵列
建议:硬盘数量足够的情况,建议riad10,不过raid最重要的指标是可靠性。4盘的raid5只允许单盘故障,raid10允许对柜盘2块g故障,可靠性高于raid5,且raid10 可随盘上升提高容错,raid5就不行,而且IO和CPU的额外开销还涂增,从可靠性和冗余角度,达到同样的可靠性,raid10写能力高于raid5
RAID 10和RAID 01有何区别?
参考文章:
https://www.hengxun.cn/news/content/3462
https://blog.51cto.com/u_3359514/1375294
实操教程
在配置之前raid磁盘状态显示的是ready,配置好raid后,要进行fast init初始化,初始化好了磁盘状态就会更新为online,表示成功!
戴尔R740XD服务器,配置 RAID1+RAID5,并安装Windows Server 2019
其他问题
服务器磁盘坏了需要更换新磁盘,怎么确保正确更换和数据不影响(这里举例服务器做了raid5):
一、如果服务器做的软件raid:
-
先确认坏掉的硬盘是哪一块,可以使用以下命令查看RAID状态:
cat /proc/mdstat
。如果有硬盘出现故障,会显示相应的错误信息 - 将坏掉的硬盘从服务器中拆出来,关闭服务器并更换新的硬盘
-
开机进入系统,使用以下命令将新硬盘加入到RAID5中:
mdadm --add /dev/md0 /dev/sdX
。其中,/dev/md0 是RAID设备名称,/dev/sdX 是新硬盘的设备名称 -
等待RAID同步完成,可以使用以下命令查看同步状态:
cat /proc/mdstat
。当同步完成后,新硬盘就被成功加入到RAID5中了。
注意事项:
• 在更换硬盘前最好备份重要数据,以防止数据丢失。
• 如果您不确定操作,请先咨询专业人士的意见,以免损坏数据和硬件。
参考链接:
https://blog.51cto.com/renzhiyuan/1840180
二、如果服务器做的硬件raid:
-
DELL服务器更换阵列已坏硬盘与RAID同步(raid5),坐等阵列修复完成就可以正常使用了,数据不受影响
https://www.cnblogs.com/reachos/p/16716013.html