架构师不得不了解的硬件知识 - 磁盘阵列 RAID

简介: 什么是RAID? RAID ( Redundant Array of Independent Disks )即独立磁盘冗余阵列,通常简称为磁盘阵列。

概述

什么是RAID? RAID ( Redundant Array of Independent Disks )即独立磁盘冗余阵列,通常简称为磁盘阵列。简单地说, RAID 是由多个独立的高性能磁盘驱动器组成的磁盘子系统,从而提供比单个磁盘更高的存储性能数据冗余的技术。RAID 是一类多磁盘管理技术,其向主机环境提供了成本适中、数据可靠性高的高性能存储。


RAID 中主要有三个关键概念和技术:镜像( Mirroring )数据条带( Data Stripping )数据校验( Data parity )


镜像:将数据复制到多个磁盘,一方面可以提高可靠性,另一方面可并发从两个或多个副本读取数据来提高读性能。显而易见,镜像的写性能要稍低, 确保数据正确地写到多个磁盘需要更多的时间消耗。


数据条带:将数据分片保存在多个不同的磁盘,多个数据分片共同组成一个完整数据副本,这与镜像的多个副本是不同的,它通常用于性能考虑。数据条带具有更高的并发粒度,当访问数据时,可以同时对位于不同磁盘上数据进行读写操作, 从而获得非常可观的 I/O 性能提升 。


数据校验:利用冗余数据进行数据错误检测和修复,冗余数据通常采用海明码、异或操作等算法来计算获得。利用校验功能,可以很大程度上提高磁盘阵列的可靠性、鲁棒性和容错能力。不过,数据校验需要从多处读取数据并进行计算和对比,会影响系统性能。不同等级的 RAID 采用一个或多个以上的三种技术,来获得不同的数据可靠性、可用性和 I/O 性能。


对于系统需要采用何种模式的 RAID ,需要在深入理解系统需求的前提下进行合理选择,综合评估可靠性、性能和成本来进行折中的选择。


常见的RAID等级有:


  • 标准RAID RAID0 、 RAID1 、 RAID2 、 RAID3 、 RAID4 、 RAID5 、RAID6 七个等级定为标准的 RAID 等级


  • 混合RAID:RAID10、RAID50、RAID60...


下面我们分别介绍一下各种RAID级别并做个简单对比。


RAID0


1.png


使用N块磁盘进行组合实现性能翻N倍的效果,写入数据会分成N部分进行,读取数据会从磁盘中组合起来读,这样就实现了读写性能翻倍。


优点:使用RAID0 可以将磁盘空间利用率最大化,能达到100%;性能快,磁盘越多性能越强。


缺点:没有数据保护,甚至比单盘的风险还大。任意坏了一块磁盘都会导致数据丢失。


RAID 1


2.png

 

RAID 1 中的磁盘互为镜像,写入的数据会存放N份,读取的时候可以从任意一块磁盘读取。实现了读性能翻倍,写性能与单盘一样的效果。


优点:安全性依照阵列中的实体硬盘数量倍数成长。


缺点:空间利用率低,是所有阵列中利用率最低的。


RAID 5


3.png

 

RAID5 既考虑了空间利用率又考虑了性能的提升,采用校验码的而非镜像的方式组合而成,RAID5 阵列需要至少3块磁盘。在上图中使用了4块磁盘组合而成,任意一份数据写入会被分成三个数据块+一个校验块分别放入4个盘,数据块与校验块之间交叉分布,最终每个盘上既有数据块又有校验块。读数据时A时从Disk 0 ,1 ,2 分别读取到A1,A2,A3然后组合成A;如果此时有一块磁盘比如Disk2 损坏,则会通过读取到的A1、A2+ 校验码算出A3,再组合生成数据A对外提供。RAID 5 可以容忍一块盘的损坏。


优点:读的情况下是单盘数据的三倍;有一定的安全性,可以容忍损坏一块磁盘


缺点:由于每次写数据都需要计算校验块,导致写性能下降;仅能容忍坏一块磁盘损坏


RAID 6


4.png

 

RAID6可以灵活设计数据库和校验块的比例,上图中被设计成3个数据块+2个校验块的组合,增加了数据可靠性。RAID 6在备份的数据场景使用较多,提供的数据可靠性比RAID 5要高很多。


优点:容错硬盘数量比RAID5高


缺点:运算量比RAID5大、空间利用率比RAID5低


RAID 10


5.png

 

首先把两块盘做镜像,再按照RAID0的方式组合,既实现了数据的冗余又实现了性能翻倍的效果。RAID 1+0多适用于数据库场景。


RAID 50


6.png

 

先做成RAID5的组再组合成RAID0,兼顾RAID5和RAID0的特性。


RAID 60


7.png

image.png


先做成RAID6的组合再组合成RAID0,兼顾RAID6和RAID0的特性。


各种组合之间的对比


RAID级别 冗余 空间利用率 读性能 写性能 最少磁盘数
RAID0 100% *** *** 2
RAID1 50% ** ** 2
RAID5 67-94% *** * 3
RAID6 50-88% ** * 4
RAID10 50% ** ** 4
RAID50 67-94% *** * 6
RAID60 50-88% ** * 8


目录
相关文章
|
1月前
|
Linux 编译器 开发者
Linux设备树解析:桥接硬件与操作系统的关键架构
在探索Linux的庞大和复杂世界时🌌,我们经常会遇到许多关键概念和工具🛠️,它们使得Linux成为了一个强大和灵活的操作系统💪。其中,"设备树"(Device Tree)是一个不可或缺的部分🌲,尤其是在嵌入式系统🖥️和多平台硬件支持方面🔌。让我们深入了解Linux设备树是什么,它的起源,以及为什么Linux需要它🌳。
Linux设备树解析:桥接硬件与操作系统的关键架构
|
存储 缓存 算法
HLS介绍 - 01 - FPGA的架构、结构以及硬件设计相关概念(二)
HLS介绍 - 01 - FPGA的架构、结构以及硬件设计相关概念
442 0
HLS介绍 - 01 - FPGA的架构、结构以及硬件设计相关概念(二)
|
5天前
|
监控 安全 自动驾驶
基于java+单体服务 + 硬件(UWB定位基站、卡牌)技术架构开发的UWB室内定位系统源码 UWB定位技术 超宽带定位 高精度定位系统源码
基于java+单体服务 + 硬件(UWB定位基站、卡牌)技术架构开发的UWB室内定位系统源码 UWB定位技术 超宽带定位 高精度定位系统源码
17 3
|
1月前
|
安全 前端开发 Linux
DP读书:鲲鹏处理器 架构与编程(十一)鲲鹏生态软件架构 AND 硬件特定软件
DP读书:鲲鹏处理器 架构与编程(十一)鲲鹏生态软件架构 AND 硬件特定软件
43 0
|
1月前
|
机器学习/深度学习 存储 算法
【GPU】深入理解GPU硬件架构及运行机制
【GPU】深入理解GPU硬件架构及运行机制
360 0
|
1月前
|
安全 物联网 数据安全/隐私保护
智能终端信息安全概念(八):硬件安全技术—芯片自主化与安全硬件架构
智能终端信息安全概念(八):硬件安全技术—芯片自主化与安全硬件架构
57 0
|
1月前
|
人工智能 物联网 网络架构
探索未来:硬件架构之路
探索未来:硬件架构之路
|
7月前
|
数据处理 C++ 芯片
第一代硬件系统架构确立及产品选型
欢迎来到我们的 QML & C++ 项目!这个项目结合了 QML(Qt Meta-Object Language)和 C++ 的强大功能,旨在开发出色的用户界面和高性能的后端逻辑。 在项目中,我们利用 QML 的声明式语法和可视化设计能力创建出现代化的用户界面。通过直观的编码和可重用的组件,我们能够迅速开发出丰富多样的界面效果和动画效果。同时,我们利用 QML 强大的集成能力,轻松将 C++ 的底层逻辑和数据模型集成到前端界面中。 在后端方面,我们使用 C++ 编写高性能的算法、数据处理和计算逻辑。C++ 是一种强大的编程语言,能够提供卓越的性能和可扩展性。我们的团队致力于优化代码,减少资
|
12月前
|
负载均衡 架构师 网络协议
一名架构师,懂点硬件知识不过分吧?
一名架构师,懂点硬件知识不过分吧?
87 0