Raid介绍
1. Raid是什么
RAID英文全称Redundant Array of Independent Disk,翻译过来就是“独立磁盘冗余系统”。RAID是一种可提高性能或提供容错功能的磁盘子系统。
RAID的基本思想是将多个容量较小、速度较慢、可靠性较差的廉价磁盘,组合成一个磁盘组,从而以较低的成本获得与昂贵的大容量、高速磁盘相似的性能。
优势:
-
高性能
-
可靠性可用性
-
大容量
-
可管理性
2. Raid的基本原理
架构上,通过RAID控制器就将多块磁盘组合,在操作系统层我们看到的是一个或多个逻辑磁盘。
技术上,RAID主要采用磁盘镜像技术、条带化技术和奇偶校验技术实现高性能、可靠性、容错能力和扩展性。
-
磁盘镜像技术:将数据复制到多个磁盘,一方面可以提高可靠性,另一方面可以提高读性能。因为需要写入多个磁盘会导致写性能降低。
-
数据条带技术:将数据分片保存到多个不同的磁盘,多个数据分片共同组成完整的数据。主要用于提示磁盘IO性能,当访问数据时可以同时对多个磁盘进行读取。
-
数据校验技术:利益冗余数据对数据进行校验和修复。冗余数据通常采用海明码、异或操作等算法来计算获得。可以提高磁盘阵列的可靠性和容错能力。不过,数据校验需要从多处读取数据并进行计算和对比,会影响系统性能。
3. Raid的级别
RAID级别命名方式如,RAID 0、RAID 1/RAID 5、RAID 10等。RAID每一个级别代表一种RAID组合实现方法和技术,级别之间并无高低之分。不同等级的 RAID 采用其中一个或多个技术,得到的是不同的容量、I/O性能、可靠性、可用性。在决定选择哪种RAID级别之前,需要深入理解系统需求,根据自身情况进行合理选择,综合评估可靠性、性能和成本来进行折中的选择。
Raid等级 | Raid0 | Raid1 | Raid3 | Raid5 | Raid6 | Raid10 |
---|---|---|---|---|---|---|
别名 | 条带 | 镜像 | 专用奇偶校验条带 | 分布奇偶校验条带 | 双重奇偶校验条带 | 镜像+条带 |
容错性 | 无 | 有 | 有 | 有 | 有 | 有 |
冗余类型 | 无 | 有 | 有 | 有 | 有 | 有 |
热备份选择 | 无 | 有 | 有 | 有 | 有 | 有 |
读性能 | 高 | 低 | 高 | 高 | 高 | 高 |
随机写性能 | 高 | 低 | 低 | 一般 | 低 | 一般 |
连续写性能 | 高 | 低 | 低 | 低 | 低 | 一般 |
需要磁盘数 | n>=1 | 2n(n>=1) | n>=3 | n>=3 | n>=4 | 2n>=4 |
可用容量 | 全部 | 50% | (n-1)/n | (n-1)/n | (n-2)/n | 50% |
4. Raid级别介绍
4.1. Raid0(使用较多)
Raid0是将多块物理磁盘组合成一个大的逻辑磁盘,在读写的时候会以独立的方式对N块磁盘进行读写,因此执行效率非常高。理论上读写的性能是单块磁盘的N倍。但是单块磁盘的损坏会导致数据丢失,无法恢复。因此适用于对可靠性不高,读写性能要求高的场景中。
-
特点:RAID 0通过条带化技术,将数据分散到多个磁盘上,从而提高存储性能。它不提供数据冗余,因此没有容错能力。
-
适用场景:适用于对性能要求极高,但对数据安全性要求不高的场景,如视频编辑、高性能计算等。
4.2. Raid1(镜像)
Raid1 是磁盘阵列中单位成本最高的一种方式。因为它的原理是在往磁盘写数据的时候,将同一份数据无差别的写两份到磁盘,分别写到工作磁盘和镜像磁盘,那么它的实际空间使用率只有50%了,两块磁盘当做一块用,这是一种比较昂贵的方案。可靠性高,但是性能低。
-
特点:RAID 1通过镜像技术,将数据同时写入两个或多个相同的磁盘.中,提供数据冗余和容错能力。如果一个磁盘发生故障,另一个磁盘上的数据仍然可用。
-
适用场景:适用于对数据安全性要求较高的场景,如金融机构、医疗机构等。
4.3. Raid5(使用最多)
Raid5是兼具Raid0和Raid1的优点,在性能和可靠性上兼具的一种方式,也是使用最多的一种方案。
Raid5方案是总共有N块磁盘,会将要写入的数据分成N份,并发的写入到N块磁盘中,同时还将数据的校验码信息也写入到这N块磁盘中(数据与对应的校验码信息必须得分开存储在不同的磁盘上)。一旦某一块磁盘损坏了,就可以用剩下的数据和对应的奇偶校验码信息去恢复损坏的数据。
RAID5的方式,最少需要三块磁盘来组建磁盘阵列,允许最多同时坏一块磁盘。如果有两块磁盘同时损坏了,那数据就无法恢复了。
-
特点:RAID 5结合了条带化和数据冗余技术。它将数据分割成块并分布在多个磁盘上,同时使用一个或多个磁盘存储冗余信息(校验块)。如果一个磁盘发生故障,系统可以使用冗余信息来重建故障磁盘上的数据。
-
适用场景:适用于对数据安全性和性能都有一定要求的场景,如企业数据库、文件服务器等。
4.4. Raid6
RAID6在RAID5的基础上再次改进,引入了双重校验的概念。RAID6除了每块磁盘上都有同级数据XOR校验区以外,还有针对每个数据块的XOR校验区,这样的话,相当于每个数据块有两个校验保护措施,因此数据的冗余性更高了。但是RAID6的这种设计也带来了很高的复杂度,虽然数据冗余性好,读取的效率也比较高,但是写数据的性能就很差。因此RAID6在实际环境中应用的比较少。
-
特点:RAID 6与RAID 5类似,但使用了两个冗余信息来提供更高的容错能力。这意味着即使两个磁盘同时发生故障,系统仍然可以使用冗余信息来重建数据。
-
适用场景:适用于对数据安全性要求非常高的场景,如大型数据库、关键业务系统等。
4.5. Raid10
RAID10其实就是RAID1与RAID0的一个合体。RAID10兼备了RAID1和RAID0的有优点。
首先基于RAID1模式将磁盘分为2份,当要写入数据的时候,将所有的数据在两份磁盘上同时写入,相当于写了双份数据,起到了数据保障的作用。且在每一份磁盘上又会基于RAID0技术讲数据分为N份并发的读写,这样也保障了数据的效率。RAID10模式是有一半的磁盘空间用于存储冗余数据的,浪费的很严重,因此用的也不是很多。
5. 硬Raid和软Raid区别
硬raid主要是通过厂商的硬件raid卡控制器来实现,而软raid主要是操作系统的raid命令来实现(例如 mdadm 命令)。
以下是2者的区别:
分类 | 硬raid | 软raid |
---|---|---|
实现方式 | 硬件 RAID 使用专用的 RAID 控制器卡,这是一块独立的硬件,通常插入到服务器或工作站的 PCIe 插槽中。该控制器处理所有 RAID 计算和磁盘管理任务,减轻了主机 CPU 的负担。 | 软件 RAID 通过操作系统提供的 RAID 功能来实现(如 Linux 的 mdadm 或 Windows 的 Storage Spaces)。RAID 操作由主机的 CPU 处理。 |
性能 | 硬件 RAID 控制器有专用的处理器和缓存,用于处理 RAID 操作,因此通常提供更高的性能,特别是在高负载或复杂 RAID 配置(如 RAID 5 或 RAID 6)下。 | 由于 RAID 操作由主机 CPU 处理,软件 RAID 在高负载或复杂 RAID 配置下的性能可能不如硬件 RAID。 |
系统依赖性 | RAID 配置存储在控制器上,因此更换主机系统或操作系统不会影响 RAID 阵列的数据完整性。 | RAID 配置依赖于操作系统,因此更换操作系统或重新安装系统可能需要重新配置 RAID 阵列。 |
成本 | 硬件 RAID 控制器通常价格较高,增加了系统的总体成本。 | 不需要额外的硬件,降低了成本。对于预算有限的小型企业或个人用户来说,这是一个经济的选择。 |
数据安全与可靠性 | 硬件 RAID 提供更高的可靠性和数据保护功能,如热备用盘和电池备份缓存。 | 软件 RAID 在数据安全和可靠性上依赖于操作系统的实现和配置。 |
灵活性 | 依赖不同厂商不同的raid卡命令,配置比较复杂 | 软件 RAID 配置和管理更灵活,可以通过操作系统的命令行工具或图形界面轻松实现。 |
高级功能 | 硬件 RAID 控制器通常提供高级功能,如热插拔、在线扩展、热备用盘、硬件级别的加密和电池备份缓存。 | 软件 RAID 通常缺乏一些高级功能,如硬件 RAID 提供的电池备份缓存和专用处理器。 |
6. 如何配置硬Raid
配置硬件raid可以通过raid配置界面操作,也可以通过厂商提供的cli工具配置硬Raid。具体可参考创建硬件Raid
参考:
- https://www.chinastor.com/baike/raid/
- https://zhuanlan.zhihu.com/p/51170719
- https://mp.weixin.qq.com/s/xWD5p7pmzdl_YpMXY5YO4g
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.