🙊
🙊
🙊
🙊
关于作者
搜索文档…
🙊
🙊
🙊
🙊
关于作者
个人简历
联系作者
运维面试必问
RAID 磁盘阵列
MBR 与 GPT 分区
Linux 内核优化
关系型数据库
关系型数据库基本原理
SQL 基本语法
Linux运维学习笔记
计算机网络基础知识
Linux 系统启动过程
Linux 命令基本格式
Linux 文件删除原理
Linux 命令行判断GPT和MBR分区
Linux 目录结构说明
Linux 查看命令帮助信息
Linux Yum 命令
Linux Apt 命令
Linux 运维管理
Linux 硬件管理
Linux 软件管理
Linux 磁盘管理
Linux 系统管理
Linux 网络管理
Linux 用户和组管理
Linux 文件与目录管理
Linux 文件压缩与解压缩管理
Linux SSL证书自动更新管理
系统安全加固
Linux 操作系统加固
Windows 操作系统安全加固
Password 安全加固
OpenSSL 安全加固
NFS 服务安全加固
Rsync 服务安全加固
IIS 服务安全加固
PHP 语言环境安全加固
Apache 服务安全加固
Nginx 服务安全加固
Tomcat 服务安全加固
MySQL 服务安全加固
PostgreSQL 服务安全加固
Redis 服务安全加固
MongoDB 服务安全加固
暴力破解攻击和防御
Linux 系统故障排查
Linux 系统重置密码方法
Linux 系统误操作修改目录权限为 777 修复方法
Windows 系统故障排查
Windows 和 Windows Server 中启用/禁用 SMBv1、SMBv2 和 SMBv3
Windows10建立映射网络驱动器报错,无法挂载共享文件系统,解决办法
运维工具使用
常用 Git 命令简介及使用
常用 SVN 命令简介及使用
常用 Vi / Vim 文本编辑工具简介及使用
国内常用加速源使用及配置
软碟通制作U启动和再生龙恢复Linux系统及备份
常用JetBrains系列IDE快捷键
运维环境搭建
CentOS 7 安装与优化
CentOS 安装高版本Node.js
CentOS 升级安装Python2.7.X
CentOS 安装 Python3.8.X
CentOS 安装 PHP7.4.X
CentOS 安装 Mysql 8.0
CentOS 安装 Zabbix 5.0
Windows Server 部署 IIS
Cronsun 任务管理器部署
Teltport 堡垒机部署
Jump Server 堡垒机搭建及使用
CI & CD 持续集成部署
ELK6.5.0+Filebeat 日志系统部署
中间件教程学习
Nginx 极简教程
Nginx 安装
Nginx 配置
Nginx 问题集
Mysql 教程
Mysql 运维
Mysql 原理
Redis 教程
Redis 持久化
Redis 复制
Redis 哨兵
Redis 集群
Redis 运维
PostgreSQL 教程
H2 教程
SqLite 教程
Linux 命令大全
Linux 运维教程
Shell 教程
Java 教程
Python 全栈教程
nftables 中文教程
Docker -入门到实践
Docker 入门教程
Prometheus 监控
Kubernetes中文指南/云原生应用架构实践手册
ELKstack 中文指南
Elasticsearch 权威指南
Python 入门指南
Nginx 入门教程
MySQL 入门教程
Go 语言高级编程
Python 爬虫教程
Github 漫游指南
Jenkins 中文教程
数据库中间件 flyway
Nosql 数据库
常用工具快捷键
Windows10常用快捷键大全
PyCharm 使用技巧
由
GitBook
提供支持
RAID 磁盘阵列
博客作者:联系请
点击
,搬运不易,希望请作者喝咖啡,可以点击
联系博客作者
一、摘要
早在 1978 年美国加州大学伯克利分校就提出了 RAID 虚拟存储系统。
RAID 全称
:
Redundant Array of Independent Disk
,独立冗余磁盘阵列。其思想是将多块独立的磁盘 按不同的方式组合为一个逻辑磁盘,从而提高存储容量或提升存储性能或提供数据备份功能。
RAID 存储系统的组合方式根据 RAID 级别定义。
RAID 种类
:软件 RAID,硬件 RAID。在现有的操作系统中如 Windows、 Linux、 Unix 等已经集成了软 RAID 的功能。
软件 RAID
可以实现与硬件 RAID 相同的功能,但由于其没有独 立的硬件控制设备,所以性能不如硬件 RAID,但软 RAID 实现简单、不需要额外的硬件设备。
硬件 RAID
通常需要有 RAID 卡, RAID 卡本身会有独立的控制部件与内存,所以不会占有系统资源,效率高、性能强。当然目前市面上有很多主板已经集成了 RAID 卡,具体的使用方 式可以参考硬件说明书。
现在 RAID 存储系统被广泛应用于生产环境作为存储解决方案。
二、RAID 级别
RAID 根据组合的方式不同有多种设计解决方案,以下介绍几种常见的 RAID方案(RAID 级别)。
RAID 0
不含校验与冗余的条带存储
多块磁盘组合为 RAID 0 后,数据将被分割并分别存储在每块硬盘中,所以能最大的 提升存储性能与存储空间,但无法容错, RAID 0 至少需要两块磁盘。存储原理如下图:
说明:
RAID0 的读写性能理论上是单块磁盘的N倍(仅限理论,因为实际中磁盘的寻址时间也是性能占用的大头)
但RAID0的问题是,它并不提供数据校验或冗余备份,因此一旦某块磁盘损坏了,数据就直接丢失,无法恢复了,因此RAID0就不可能用于高要求的业务中,但可以用在对可靠性要求不高,对读写性能要求高的场景中。
原理:
它将两块以上的硬盘合并成一块,数据同时分散在每块
硬盘
中。由于带宽加倍,读/写速度也加倍。这种数据上的并行操作可以充分利用总线的
带宽
,显著提高磁盘整体存取性能,但同时忽略了数据的可靠性,其中的任何一个硬盘失效或故障则影响到所有的数据。
优点:
没有数据冗余,高可用性,很高的传输速率,大大提高储存性能
缺点:
因为没有校验与备份,两个硬盘中如果有一块磁盘损坏,即磁盘中的任何一个 数据块损坏将导致整个文件无法读取。
适用环境:适用于对性能要求高,而对数据安全不太在乎的领域,如个人,或者图像工作站等对数据安全要求不高的领域
注意事项:
1.
RAID0的两个硬盘必须容量、规格相同。
2.
组成RAID0的两个硬盘在改变主从盘设置时将需要重新分区,原来磁盘里的所有数据将全部丢失。
3.
同一通道的两个硬盘在不改变主从盘设置的前提下可以更改位置,其结果不影响磁盘里的数据和读写操作。
4.
组成RAID0的磁盘改变为无RAID的模式或无RAID模式的一对磁盘改变为带RAID0模式时, 系统将需要对相应的磁盘重新分区,原硬盘里的所有数据将全部丢失
。
RAID 1
不含校验的镜像存储
多块磁盘组合为 RAID 1 后,数据将被同时复制到每块硬盘中,制作这种磁盘阵列 至少需要 2 块硬盘,该级别的 RAID 只要有一块磁盘可用即可正常工作,该级别的阵列安全 行是最好的,磁盘利用率是最低的。
说明:
RAID1 是磁盘阵列中单位成本最高的一种方式,因为它的原理是在往磁盘写数据的时候,将同一份数据无差别的写两份到磁盘,分别写到工作磁盘和镜像磁盘,那么它的实际空间使用率只有50%了,两块磁盘当做一块用,这是一种比较昂贵的方案。 RAID 1 写 入数据的效率会降低,因为数据需要同时写入两块磁盘,但 RAID 1 读取数据的效率会提升, 因为可以同时从两块磁盘读取数据。
原理
:将一块硬盘的数据以相同位置指向另一块硬盘的位置, RAID 1的操作方式是把用户写入硬盘的数据百分之百地自动复制到另外一个硬盘上。
优点:
最大限度的保证用户数据的可用性和可修复性,安全性高
缺点:
由于完整备份,导致磁盘利用率低下(1/2),存储成本高,不能提高存储性能
适用环境:存放重要数据,如服务器和数据库存储等领域。
注意事项:两个硬盘必须容量、规格相同,
RAID 2
位级别的校验式条带存储
RAID 2是RAID 0的改良版,以
汉明码
(Hamming Code)的方式将数据进行编码后分割为独立的位元,并将数据分别写入硬盘中。因为在数据中加入了错误修正码(ECC,Error Correction Code),所以数据整体的容量会比
原始数据
大一些。
说明:
RAID 2是为大型机和
超级计算机
开发的带
汉明码
校验
磁盘阵列
。它是将数据条带化地分布于不同的硬盘上,条块单位为位或者字节,并使用“加重平均纠错码”的编码技术来提供错误检查及恢复,这种纠错码也被称为“海明码”。海明码需要多个磁盘存放检查及恢复信息,使得RAID2技术实施更复杂,因此在商业环境中很少使用。
磁盘驱动器组中的第1个、第2个、第4个......第2的n次
幂
个磁盘驱动器是专门的效验盘,用于效验和纠错。
原理:
RAID2的设计目标是在RAID0级别的基础上,加了海明纠错码,将数据条块化分布于不同的硬盘上, 条块单位为位或字节。然而RAID 2 使用一定的编码技术来提供错误检查及恢复。
优点:
大数据量的读写具有极高的性能。
缺点:
少量的数据读写时性能反而不好,数据的整体容量会比原来的大一些,实际使用较少。
适用环境:
大数据量的读写,如进行影像处理或者CAD/CAM的工作站等,并不适用于一般的多用户环境、网络服务器和PC。
注意事项:由于RAID 2的特殊性,只要我们使用的磁盘驱动器越多,效验盘在其中占的百分比越少。
RAID 3
字节级别的校验式条带存储
RAID3是把数据按照字节分别存在不同的磁盘中,并且最后一个磁盘提供纠错冗余
说明:
RAID 3是把数据分成多个“块”,按照一定的容错算法,存放在N+1个硬盘上,实际数据占用的有效空间为N个硬盘的空间总和,而第N+1个硬盘上存储的数据是校验容错信息,当这N+1个硬盘中的其中一个硬盘出现故障时,从其它N个硬盘中的数据也可以恢复原始数据
原理:
RAID3的数据存取方式和RAID2一样,把数据以位为单位来分割并且存储到各个硬盘上,并且在数据安全方面以
奇偶校验
取代海明码做错误校正及检测,所以只需要一个额外的校验盘。
奇偶校验值的计算是以各个硬盘的相对应位进行异或的逻辑运算,然后将结果写入奇偶校验硬盘。
优点:
安全性是可以都到保障,坏掉一块盘,还可以正常工作。
缺点:
效验盘很容易成为系统的瓶颈,访问较短记录时,性能会有所下滑,实际适用较少。
适用环境:
适用于写入操作较少,读取操作较多的应用环境,如数据库和web服务器等。
注意事项:对于哪些经常需要执行大量写入操作的应用来说,效验盘的负载将会很大,无法满足程序的运行速度。
RAID 4
数据块级别的校验式条带存储
RAID4是把数据按照分块分别存在不同的磁盘中,并且最后一个磁盘提供纠错冗余
说明:
RAID4和RAID3很象,数据都是依次存储在多个硬盘之上,奇偶校验码存放在独立的奇偶校验盘上,唯一不同的是,在数据分割上RAID3对数据的访问是按位进行的,RAID4是以数据块为单位。
一个数据块是一个完整的数据集合,比如一个文件就是一个典型的数据块。当然,对于硬盘的读取,一个数据块并不是一个文件,而是由操作系统所决定的,这就是我们熟悉的簇(Cluster)。RAID 4这样按块存储可以保证块的完整,不受因分条带存储在其他硬盘上而可能产生的不利影响(比如当其他多个硬盘损坏时,数据就完了)。
原理:
把数据以块为单位来分割并且存储到各个硬盘上,不同的是RAID 4在写入时要等一个硬盘写完后才能写一下个,并且还要写入校验数据所以写入效率比较差,读取时也是一个硬盘一个硬盘的读,但校验迅速,所以相对速度更快。
优点:
RAID3访问所有磁盘,RAID4访问有用的,读数据的速度大大提高。
缺点:
写数据需要校验,处理时间较长,恢复数据难度大,控制器的设计难度也大。
适用环境:
校验硬盘和RAID3一样,也形成其性能的瓶颈。在失败恢复时,它的难度比RAID3大得多了,控制器的设计难度也要大许多,推荐适用其他RAID方案。
RAID 5
数据块级别的分布式校验条带存储
RAID5跟RAID4一样,把数据以块为单位来分割,不同的是RAID5把数据块分别存在不同的磁盘中,并且冗余信息也会分块分布在多块磁盘中
说明:
数据以块为单位分布到各个硬盘上。RAID 5不对数据进行备份,而是把数据和与其相对应的
奇偶校验
信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上。
原理:
RAID5把数据和与其相对应的
奇偶校验
信息存储到组成RAID5的各个磁盘上,大大减轻了奇偶校验盘的负载。
优点:
坏掉一块盘,RAID还能正常工作,数据安全性高,速度较快,磁盘利用率也相对较高,应用广泛。
缺点:
只允许有一块磁盘出现故障,必须及时恢复。
适用环境:
1.
输入/输出 密集,读/写 比率高的应用程序,事务处理等。
注意事项:只允许有一块磁盘出现故障,出现故障是需要尽快更换,当更换故障磁盘后,在故障期间写入的数据会进行重新校验,如果在未解决故障又坏一块,那就是灾难性的了。
RAID6
带有两个独立分布式校验方案的独立数据磁盘
RAID6是把数据块按照分块分别存在不同的磁盘中,并且冗余信息为两份奇偶校验码,分布在多块磁盘中
说明:
RAID6是在RAID5的基础上为了进一步加强数据的保护而设计的一种RAID的方案, 与RAID 5的不同之处于除了每个
硬盘
上都有同级数据XOR校验区外,还有一个针对每个
数据块
的XOR校验区。
这样一来,等于每个
数据块
有了两个校验保护屏障(一个分层校验,一个是总体校验),因此RAID 6的
数据冗余
性能相当好。但是,由于增加了一个校验,所以写入的效率较RAID 5还差,而且控制系统的设计也更为复杂,第二块的校验区也减少了有效
存储空间
。
原理:
跟RAID5一样,多了一个总体校验。
优点:
更高的数据冗余,坚强的数据保护能力,可以应付多个硬盘同时发生故障。
缺点:
非常复杂的控制器设计、计算校验地址占用相当多的处理时间、由于第二个校验区,至少需要N+2个硬盘。(N表示大于1的整数)。
注意事项:一个RAID6的阵列中可以最多有16个硬盘。
RAID7
最优化的异步高I/O速率和高
数据传输率
RAID 7等级是至今为止,理论上性能最高的RAID模式,因为它从组建方式上就已经和以往的方式有了重大的不同。
RAID1 + 0
镜象阵列条带
RAID10其实就是RAID1与RAID0的一个合体。
说明:
RAID10兼备了RAID1和RAID0的有优点,首先基于RAID1模式将磁盘分为2份,当要写入数据的时候,将所有的数据在两份磁盘上同时写入,相当于写了双份数据,起到了数据保障的作用,且在每一份磁盘上又会基于RAID0技术将数据分为N份并发的读写,这样也保障了数据的效率。
原理:
先进行镜像(RAID1),再进行条带存放(RAID0)。
优点:
继承了Raid0的快速和Raid1的安全。
缺点:
RAID10需要4 + 2*N 个磁盘驱动器(N >=0), 而且只能使用其中一半或更小的磁盘用量,例如 4 个 250G 的硬盘使用RAID10 阵列, 实际容量是 500G。
适用环境:
1.
适用于数据库存储服务器等需要高性能、高容错但对容量要求不大的场合。
注意事项:
注意一下Raid 10 和 Raid01的区别:
1.
RAID01又称为RAID0+1,先进行条带存放(RAID0),再进行镜像(RAID1)。
2.
RAID10又称为RAID1+0,先进行镜像(RAID1),再进行条带存放(RAID0)。
以前
联系作者
下一个 - 运维面试必问
MBR 与 GPT 分区
最近更新
1yr ago
复制链接
内容
一、摘要
二、RAID 级别
RAID 0
RAID 1
RAID 2
RAID 3
RAID 4
RAID 5
RAID6
RAID7
RAID1 + 0