[Linux入门 ] RAID存储技术概述
一.数据存储架构
1️⃣存储系统
2️⃣主机系统
3️⃣互连部件
4️⃣存储设备与磁盘阵列
二.数据存储技术
1️⃣数据冗余技术
2️⃣RAID 0
3️⃣RAID 1
4️⃣RAID 2
5️⃣RAID 3
6️⃣RAID 4
三.基于硬件的RAID磁盘阵列
1️⃣阵列卡(RAID控制器)
2️⃣阵列卡种类
3️⃣阵列卡缓存
4️⃣透写和回写
5️⃣RAID 电池
四.基于软件的RAID磁盘阵列
1️⃣mdadm工具
2️⃣热备份
一.数据存储架构
数据存储架构是对数据存储方式、存储设备及相关组件 的组织和规划,涵盖存储系统的布局、数据存储策略等,它明确数据如何存储、管理与访问,为数据的安全、高效使用提供支撑。
1️⃣存储系统
是计算机的重要组成部分之一,它是由计算机中一组存储设备、控制部件和管理信息调度的设备(硬件)和算法(软件)所构成的系统,所述存储设备主要用于保存程序和数据,存储设备是计算机存储系统的核心部件。
存储系统负责对数据的读/写请求,也负责传输数据的任务。
常见的存储系统主要由这三部分组成:主机系统、互连部件、存储设备。
2️⃣主机系统
负责提出数据读/写请求,并完成操作系统和需要数据的应用程序之间的交互。
从主机结构上来看,可以将主机系统的组成分为物理部件(硬件)和 逻辑部件(软件)。
3️⃣互连部件
在主机和存储设备之间存在着各种互连部件, 包括连接主机与存储设备的互连物理部件,以及相应的互连逻辑部件。
互连物理部件:总线、端口和线缆
互连逻辑部件:主要有通信协议,设备驱动程序
4️⃣存储设备与磁盘阵列
存储设备包括负责数据存储的设备
存储设备不仅包括可以保存数据的固态硬盘、机械硬盘(磁盘)、光盘、磁带等物理存储器, 还应该包括专门为这些物理存储器服务的外部部件(如电源、风扇、固定机架等),以及相关协议、处理算法等存储逻辑部件。
存储设备可以采用单盘(即单块磁盘)形式,也可以采用多盘形式。在一些复杂、较为严苛的使用环境下,单盘容易发生物理损坏导致数据丢失,单盘在存储数据会存在着一定的安全性隐患。
二.数据存储技术
1️⃣数据冗余技术
RAID技术,该项技术可简称为磁盘阵列, 可以理解为通过组合多个磁盘提升性能与可靠性。发明目的是为解决单盘在某些应用场景下的不足。
数据冗余可增强数据可靠性,当部分数据丢失或损坏时能通过冗余数据恢复。还能提高数据访问性能,可从冗余副本并行读取数据。
RAID磁盘阵列的实质是将多个独立的硬盘通过RAID控制器(基于硬件和软件)结合成虚拟单个大容量的硬盘使用,从而实现比单盘更好的存储性能和更高的可靠性,如图所示。
采用汉明码校验或奇偶校验进行数据保护,确保数据的安全性。
目前,RAID磁盘阵列技术的实现方式主要有两种:
- 基于硬件的 RAID 磁盘阵列技术(俗称硬 RAID ),
- 基于软件的 RAID 磁盘阵列技术(俗称软 RAID )。
根据RAID磁盘阵列对磁盘数据分布、校验方式及实施技术的不同,可以将磁盘阵列分为多个级别,分别为 RAID 0、 RAID 1、 RAID 5、RAID 2、 RAID 3、 RAID 4、 RAID 6、 RAID 10。
其中,RAID 0(条带化,提升性能但无冗余)、RAID 1(镜像,有冗余)、RAID 3(一个冗余校验盘)、RAID 5(分布式奇偶校验,兼顾性能与冗余)、RAID 6级别较为常用。
2️⃣RAID 0
RAID 0:( 无容错的条带化磁盘阵列)又称为Stripe或 Striping。
是磁盘阵列中组建最简单的一种形式,只需要至少两块硬盘即可。
RAID 0 采用数据分条( Data Stripping )技术来在可用硬盘上分布存放数据,即在 RAID 0 系统中,数据被分段且分别存放在不同硬盘上,与单一的大容量硬盘相比, RAID 0 的读写由几块硬盘同时并行处理,因而读写速度更快。
3️⃣RAID 1
加入了冗余能力,采用简单的镜像备份的方式实现数据的冗余,需要配置成对的独立硬盘,在两者上产生互为备份的数据。
RAID 1中的数据盘和镜像盘是相对的,它们没有主从关系,可以相互镜像或恢复。
从RAID 1的磁盘阵列结构来看,镜像备份会占用一半的硬盘空间,硬盘空间使用率只有50%,故RAID 1是磁盘阵列中单位成本最贵的。
4️⃣RAID 2
RAID 2是RAID 0的改良版,以汉明码的方式将数据进行编码后分割为独立的位元,并将数据分别写入硬盘中。
前面四个盘是数据盘,后面三个盘是纠错码。
如果数据盘满了,那么校验盘不会满,空间利用率只会利用7分之4。
5️⃣RAID 3
与RAID 2不同 的是,RAID 3只需要一个冗余校验盘,而不管磁盘阵列的数目有多少。
可以将RAID 3看做是在RAID 2的基础上发展而来的, 主要用了相对简单的奇偶校验代替相对复杂的汉明码校验,不需要多个冗余硬盘而是只需要单个冗余硬盘,从而大幅降低了成本。
奇偶校验硬盘的负载将会很大,进而影响程序的运行速度, 从而导致整个RAID系统的性能显著下降。
RAID 3比较适合类似于视频编辑这类大文件类型且安全性要求较高的应用。
6️⃣RAID 4
RAID 4和RAID 3比较像,数据都是使用数据分条技术进行分割后依次存放在多个硬盘中,不同之处在于RAID 4的条带较大,是以数据块为单位进行数据分割的,而RIAD 3的条带较小——以位为单位进行数据分割。
这种类型的磁盘阵列现在很少使用。
7️⃣RAID 5
RAID 5相当于RAID 0和RAID 1的折中方案,并采用和 RAID 4一样的数据分条方案, 数据以块为单位进行分割并存放到各个硬盘上。
但RAID 5没有设置专门的奇偶校验硬盘,而是将数据和与其相对应的奇偶校验信息存储到各个硬盘上,但是这里有个规则就是奇偶校验信息和相对应的数据需要分别存储在不同的硬盘上。
RAID 5至少需要3个硬盘来组建磁盘阵列,可以允许坏一块硬盘。
需要注意的是,如果在未解决故障之前,又损坏了一个硬盘,那么磁盘阵列中的所有数据都将损坏,结果是灾难性的。
8️⃣RAID 6
RAID 6相当于在RAID 5的基础上进行扩展而来的,增加了第2个独立的奇偶校验信息块,实现算法不同的双重奇偶校验,数据冗余性更高了,在两块硬盘同时损坏的前提下,仍然可以保障数据恢复。
相比RAID 5,RAID 6具有更高的容错能力(即数据冗余性好),同时其读取性能也比较优秀, 但是写数据的性能较差,尤其是随机写入性能很差,因为不但要在每个硬盘上写入校验数据,还要在专门的校验硬盘上写入数据。
需要注意的是,至少需要4个硬盘来组成RAID 6磁盘阵列。
7️⃣RAID 10(RAID 1+0)
RAID 10相当于一个条带区结构加上一个镜像结构,同时拥有RAID 0的快速和RAID 1的数据高安全性,但是 RAID 10对存储容量的利用率和RAID1一样只有50%, 需要一般的硬盘空间用于存储冗余数据,硬盘的利用率较低,成本较贵。
RAID 级别 | 性能 | 容错能力 | 存储 效率 | 成本 | 适用场景 | 冗余能力 |
---|---|---|---|---|---|---|
RAID 0 | ▶ 读写性能最高(并行操作) ▶ 无校验开销 | ❌ 无容错能力 | 100% | 最低 | 临时数据处理/高性能计算 | 没有冗余,任何一块盘坏了数据就全丢 |
RAID 1 | ▶ 读性能高(双副本) ▶ 写性能较低(需镜像) | ✅ 允许1块磁盘损坏 | 50% | 最高(双倍存储) | 关键数据库/系统盘 | 完全镜像备份,每组镜像可以坏1块盘 |
RAID 5 | ▶ 读性能高 ▶ 写性能中等(需计算校验) | ✅ 允许1块磁盘损坏 | (n-1)/n | 中等 | 文件服务器/虚拟化存储 | 带奇偶校验,最多允许坏1块盘,靠校验数据能重建 |
RAID 6 | ▶ 读性能高 ▶ 写性能较低(双校验计算) | ✅ 允许2块磁盘损坏 | (n-2)/n | 较高 | 大容量归档存储/医疗影像系统 | 双重奇偶校验,能扛住同时坏2块盘,适合大容量存储 |
RAID 10 | ▶ 读写性能均优(条带化+镜像) | ✅ 允许每组镜像1块损坏 | 50% | 极高 | 金融交易系统/高可用数据库 | 镜像+条带化,每组镜像最多坏1块(比如4块盘组能坏2块,但得在不同镜像组里) |
关键补充说明:
- 性能权衡:RAID 5/6的写性能随磁盘数量增加而下降,建议不超过16块磁盘。
- 重建风险:RAID 5在重建期间二次故障概率高达15%(6TB以上磁盘)。
- 成本计算:RAID 10实际成本=磁盘数×2+控制器许可费用(企业级)。
- 新兴替代:对于超大规模存储,可考虑纠删码(Erasure Coding)技术。
- 简单总结:RAID 0是速度王者但没保护,RAID 1/10靠镜像保安全,RAID 5/6用校验来兜底。RAID 6比5更稳,RAID 10性能和安全性兼顾,但成本也最高。
三.基于硬件的RAID磁盘阵列
硬 RAID 就是用专门的RAID控制器(RAID 卡)将硬盘和电脑连接起来,RAID控制器负责将所有的RAID成员磁盘配置成一个虚拟的RAID磁盘卷。
1️⃣阵列卡(RAID控制器)
硬 RAID 包含 RAID 卡和主板上集成的 RAID 芯片,服务器平台多采用 RAID 卡。
RAID 卡由以下:
RAID 核心处理芯片( RAID 卡上的 CPU )、 端口、 缓存、 电池,4 部分组成。
2️⃣阵列卡种类
①IDE阵列卡 :
以前主要用在一些数据重要或要接很多个硬盘的服务器与工作站电脑中,可以支持 RAID 0、1、0+1、3、5。 现基本上已经淘汰了。
②SATA阵列卡:
主要作用于大容量数据存储、网吧、数据安全等服务器领域,同时一些低端卡也满足了一些家用客户的需求,能够支持 RAID 0、1、0+1、5 、6。
③SCSI阵列卡
使用在高端工作站或者是服务器中,可以支持很多块SCSI接口的硬盘。能够支持RAID 0、1、0+1、3、5 。这种阵列卡性能很好速度很快,当然价格也比较高。不过,现基本上已经淘汰了。
④SAS阵列卡:
主要使用在一些高端工作站与服务器中,已经取代了昔日的SCSI接口,并且可以兼容SATA接口硬盘,能够支持 RAID 0、1、0+1、5 、50、6、60。
3️⃣阵列卡缓存
实际指的是相对低速的硬盘盘片与相对高速的外部设备之间的缓冲器。
阵列卡缓存的主要作用是,加快数据读写速度,提高磁盘的效用,避免不必要的等待时间。
4️⃣透写和回写
透写(Write-Through)和回写(Write-Back)是两种缓存(Cache)策略,核心区别在于数据写入的时机和一致性保证:
① 透写(Write-Through):数据同时写入缓存和主存/磁盘,确保强一致性,但写入速度慢。适合金融交易、数据库日志这类不能丢数据的场景。
② 回写(Write-Back):数据先只写入缓存,等缓存满了或系统空闲时才刷到主存,写入性能炸裂,但万一断电可能丢数据(所以企业级设备会配电池备份)。适合视频剪辑、AI训练这些对速度要求高的活儿。
5️⃣RAID 电池
用以在系统断电时保护Cache中的数据,避免断电造成中间数据的丢失。
若RAID电池和某块硬盘同时出现故障,应先更换RAID卡电池,待服务器重启成功,RAID卡工作正常后再更换故障的硬盘,最大限度保证数据安全。
四.基于软件的RAID磁盘阵列
1️⃣mdadm工具
是一个在Linux系统中用于构建、管理和监控软件RAID阵列的工具。
它提供了多种命令来创建、管理、监控RAID阵列,并 且支持多种RAID级别,如RAID0、RAID1、RAID5等。
mdadm命令常见参数解释:
-n 指定设备数量
-l 指定RAID级别
-C创建
-v 显示过程
-f 模拟设备损坏
-D 查看详细信息
-S 停止RAID磁盘阵列
2️⃣热备份
当阵列中有一块硬盘坏了,热备份盘可以随时顶替,相当于磁盘的最后一层保险。
热备份相当于给raid又做了一个备份,一个raid当中坏了一块硬盘,热备份在顶替的过程中,利用 校验的算法,把阵列中的数据同步过来,然后再顶替坏掉的硬盘。
在替换过程中,阵列是不可使用的,不能读写的,顶替完成之后,raid恢复正常状态。