RAID相关知识

简介

RAID ( Redundant Array of Independent Disks )即独立磁盘冗余阵列,通常简称为磁盘阵列。RAID技术将多个单独的物理硬盘以不同的方式组合成一个逻辑磁盘,从而提高硬盘的读写性能和数据安全性。

数据组织形式

分块:将一个分区分成多个大小相等的、地址相邻的块,这些块称为分块。由它组成条带。

条带:同一磁盘阵列中多个磁盘驱动器上相同的位置(或者说是相同编号)的分块。

热备

当冗余的RAID组中某个硬盘失效时,在不干扰当前RAID系统的正常使用情况下,用RAID系统中另一个正常的备用硬盘自动顶替失效硬盘,及时保证RAID系统的冗余性。

分类

全局式:备用硬盘为系统中所有的冗余RAID组共享

专用式:备用硬盘为系统中某一组冗余RAID组专用

RAID级别

RAID0

简单的、无数据校验的数据条带化技术

RAID0 将所在磁盘条带化后组成大容量的存储空间,将数据分散存储在所有磁盘中,以独立访问方式实现多块磁盘的并读访问。具有低成本、高读写性能、100% 的高存储空间利用率等优点。但是不提供数据冗余保护,一旦数据损坏,将无法恢复。

RAID 1

数据镜像,无校验

将数据完全一致地分别写到工作磁盘和镜像磁盘,磁盘空间利用率为50%。RAID1 在数据写入时,响应时间会有所影响,但是读数据的时候没有影响。

RAID1 提供了最佳的数据保护,一旦工作磁盘发生故障,系统自动从镜像磁盘读取数据,不会影响用户工作。

RAID 3

数据条带化读写,校验信息存放在专用硬盘

采用一个专用的磁盘作为校验盘,其余磁盘作为数据盘,数据按位可字节的方式交叉存储到各个数据盘中。RAID3 至少需要三块磁盘,不同磁盘上同一带区的数据作 XOR 校验,校验值写入校验盘中。

如果 RAID3 中某一磁盘出现故障,不会影响数据读取,可以借助校验数据和其他完好数据来重建数据。假如所要读取的数据块正好位于失效磁盘,则系统需要读取所有同一条带的数据块,并根据校验值重建丢失的数据,系统性能将受到影响。当故障磁盘被更换后,系统按相同的方式重建故障盘中的数据至新磁盘。

RAID 5

数据条带化,校验信息分布式存放

采用磁盘上同时存储数据和校验数据,数据块和对应的校验信息存保存在不同的磁盘上,当一个数据盘损坏时,系统可以根据同一条带的其他数据块和对应的校验数据来重建损坏的数据。

RAID 6

数据条带化,分布式校验并提供两级冗余

可以保护阵列中同时出现两个磁盘失效时,阵列仍能够继续工作,不会发生数据丢失。

横向校验盘:P1 -- P4为各个数据盘中横向数据的校验信息。

P1 = A1 XOR A2 XOR A3 XOR A4。

斜向校验盘:DP1 -- DP4为各个数据盘及横向校验盘的斜向数据的校验信息。

DP1 = A1 XOR A6 XOR A11 XOR A16

DP2 = A2 XOR A7 XOR A12 XOR P4

DP3 = A3 XOR A8 XOR P3 XOR A13

DP4 = A4 XOR P2 XOR A9 XOR A14

RAID 10

先做RAID 1,后做RAID 0,将镜像和条带进行两级组合的RAID级别

RAID 50

先做RAID 5,后做RAID 0。

主流RAID等级技术对比

坏盘数量

有几块校验盘,就最多允许坏几块盘。

|--------|--------|--------|--------|--------|---------|
| RAID级别 | RAID 0 | RAID 1 | RAID 5 | RAID 6 | RAID 10 |
| 最多坏盘数量 | 0 | n/2 | 1 | 2 | n/2 |

逻辑卷

在RAID基础上可按照指定容量创建一个或多个逻辑卷,通过LUN(Logic Unit Number)来标识

相关推荐
脏脏a39 分钟前
【Linux】Linux进程状态深度解析
linux·运维·服务器
凉晓风40 分钟前
Linux中常见几种自启动方式的区别
linux·运维·服务器
小熊officer42 分钟前
Nginx学习
运维·学习·nginx
ManThink Technology1 小时前
LoRaWAN网关:连接私有服务器是“可行”还是“明智”?
运维·服务器
t***82112 小时前
华为数据中心CE系列交换机级联M-LAG配置示例
服务器·华为·php
J***Q2922 小时前
DevOps金融服务安全要求
运维·安全·devops
Dovis(誓平步青云)2 小时前
《内核视角下的 Linux 锁与普通生产消费模型:同步原语设计与性能优化思路》
linux·运维·性能优化
D***t1312 小时前
DevOps技能提升路径
运维·devops
xu_yule2 小时前
Linux_13(多线程)页表详解+轻量级进程+pthread_create
linux·运维·服务器
草莓熊Lotso4 小时前
Git 分支管理:从基础操作到协作流程(本地篇)
大数据·服务器·开发语言·c++·人工智能·git·sql