存储RAID——RAID级别
目录
RAID基本概念
RAID:独立冗余磁盘阵列
将多个单独的物理硬盘以不同的方式组合成一个逻辑硬盘,提高硬盘的读写性能和数据安全性
RAID实现方式
硬件RAID(通过RAID卡实现,有管理上限,不利于扩展)
软件RAID(通过主机来进行实现,需要消耗主机性能) 存储阵列一般通过软件RAID来做
RAID的数据组织形式
硬盘条带化:
将硬盘空间按照设定的大小分为多个条带,数据写入时也按照条带的大小来划分数据模块
条带:单个硬盘中单个或着多个连续的扇区构成一个条带(组成分条的元素) 扇区一般512B
分条:同一硬盘阵列中的多个硬盘驱动器上的相同“位置”的条带(相同编号的条带)
分条的深度:条带的大小
分条的宽度:硬盘的个数
数据写入是按照分条来进行数据写入的(跨盘的数据存放)
RAID的数据保护方式
镜像:在另一块荣誉的硬盘上保存数据的副本
奇偶校验算法(XOR)(异或算法):进行奇偶校验(相同为假0,相异为真1)
RAID级别
RAID0
只是将硬盘整合在了一起,没有冗余功能
RAID1
RAID1使用2个相同的硬盘系统,并设置了镜像。
一个RAID 1组存储的数据量只是单个硬盘的容量,另一硬盘保存的是数据的副本。
RAID3 不怎么用了
在RAID 3中,一块专用硬盘(校验盘)用来保存同一分条上其他硬盘的相应条带中的校验数据。
如果其他盘上的数据出现丢失,或者磁盘出现损坏,我们可以使用校验盘的信息来恢复,损失的数据。
RAID5
RAID 5使用的是分布式奇偶校验,每个成员硬盘将用于存储用户数据和奇偶校验数据。
所以RAID 5没有瓶颈或热点。
RAID6
RAID6 P+Q:
RAID6 P+Q需要计算出两个校验数据P和Q,当有两个数据丢失时,根据P和Q恢复出丢失的数据。校验数据P和Q是由以下公式计算得来的:
- P = D0 ⊕ D1 ⊕ D2…
- Q = (α ⊕ D0) ⊕ (β ⊕ D1) ⊕ (γ ⊕ D2)…
RAID6 DP:
DP - Double Parity,就是在RAID 4所使用的一个行XOR校验硬盘的基础上又增加了一个硬盘用于存放斜向的XOR校验信息 具体实现过程如下:
- 横向校验盘中P0 - P3为各个数据盘中横向数据的校验信息,例:P0=D0 XOR D1 XOR D2 XOR D3
- 斜向校验盘中DP0 - DP3为各个数据盘及横向校验盘的斜向数据校验信息,例:DP0=D0 XOR D5 XOR D10 XOR D15
第一个校验信息与RAID 6 P+Q的第一个校验值是相同的
第二个不同于RAID 6 P+Q,采用的是斜向异或运算得到行对角奇偶校验数据块。
RAID10
先进行RAID1,在进行RAID0
RAID50
先进行RAID5,在进行RAID0
RAID级别总结
* | RAID0 | RAID1 | RAID3 | RAID5 |
冗余技术 | 无冗余能力 | 镜像 | 奇偶校验 | 一种分布式奇偶校验 |
磁盘利用率 | 100% | 50% | (n-1)/n | (n-1)/n |
特点 | 性能最好 | 安全性最高 (一般用作系统盘) | 1块单独的校验盘 (基本不用了) | 分散存放奇偶校验数据 (既是数据盘,又是校验盘) (基本取代了RAID3) |
最小盘数 | 1块 | 2块 | n≥3块 | n≥3块 |
允许损坏的最大盘数 | * | (镜像盘不坏就行) | 1块(非校验盘) | 1块 |
RAID6 P+Q | RAID6 DP | RAID10 | RAID50 |
2种校验方式 | 2种校验方式 | 先RAID1,再RAID0 | 先RAID5,再RAID0 |
(n-2)/n | (n-2)/n | 50% | (n-2)/n |
相比于RAID5多了一种Q校验方式 (两种都是斜向校验) (可靠性、可用性都很高) | 2块独立的校验盘 (一种横向校验,一种斜向校验) (可靠性、可用性都很高) |
|
|
n≥4块 | n≥4块 | n≥4块 | n≥6块 |
2块 | 2块 | (镜像盘不坏就行) | 2块 |
相关文章
- 大端小端存储方案
- [系统安全9]逆向知识笔记-寄存器、栈的存储方式、反汇编指令、跳转
- 硬盘是如何存储数据的:硬盘的物理结构
- 82期:直播回顾《美女程序媛:教你玩转云存储》
- Atitit 持久化与数据存储标准化规范 目录 1. 存储的附加功能2 1.1. 基本存取功能2 1.2. 全文检索(imap2 1.3. 属性检索2 1.4. 查询语言2 2. 基于内容
- Atiitt 程序语言vm与rt 虚拟机与运行时 目录 1. 运行时 虚拟机的一种,一般指进程级别的虚拟机。1 1.1. 线程模型1 1.2. 堆栈机vs 寄存器1 1.3. 存储模型2 1
- Atitit.git的存储结构and 追踪
- 【华为云技术分享】ARMv8-A存储模型概述(2)
- docker从零开始 存储(五)存储驱动介绍
- 重新认识HBase,Cassandra列存储——本质是还是行存储,只是可以动态改变列(每行对应的数据字段)数量而已,当心不是parquet
- Web前端性能优化_浏览器本地存储