RAID储存技术

server/2025/1/13 15:47:39/

RAID独立磁盘冗余技术是一种把2个或者多个HDD或SSD合并为一个协调的存储单元或列阵,从而预防数据丢失的技术,其最早由加州大学伯克利分校的计算机科学家David Patterson、Garth Gibson和Randy Katz在1987年提出。他们的研究论文“关于RAID的论证”提出了将多个磁盘驱动器组合起来,以提高性能和可靠性的想法。

RAID0

将磁盘全部串联,实现空间最大化利用,但是没有冗余空间

将数据分成连续的块,然后将每个块按顺序依次写入到不同的磁盘上,这样可以实现并行读写,从而提高了数据的访问速度

也就是说假如我有两个盘A和B,我可以一个文件拆成两部分,一部分放A,另一部分放B,要读取时两边同时读写然后拼凑

RAID1

将内容镜像,多个个盘存一样的数据,实现数据冗余

也就是说,当我存储数据时,数据会写入所有盘,当有一台宕机时,有镜像的设备提供备份和恢复,有点像双机热备

RAID2

比较特殊的RAID布局,采用汉明码校验,不过已被淘汰,其数据会被划分成位级别,也就是说我存储数据是每个盘都存一部分,且有检验盘来检测数据完整性,通过文献我感觉其安全性挺高,但由于汉明码的校验方式,其多个错误有时候检验不出来,以及成本过高的问题,逐渐被RAID5等替换

汉明码校验

校验位数

采用奇数偶检验码进行检验和纠错,需要插入码的长度与数据位的数量之间的关系为 2^P>=P+D+1(D为数据长度,P为汉明码个数)

eg:数据大小为4,即有2^p>=p+4+1,可以得出p至少为3

编码过程

明确校验位数后,接着就是怎么编码的问题,不同于校验和,汉明码插入与数据之间,且通常放在2的n次幂位上,比如1,2,4,8……其他位置则·存放数据编码

然后根据数据中1的奇偶依次填入1/0,当1的个数为偶数,填入0,1的个数为奇数则填入1

而在汉明码中,校验位负责的数据位范围也是一个重点,其基于每个数据位对应的二进制编号,例如在编号为1-7的位中,位置 1是汉明码(二进制 001 001)、位置 3 (二进制 011 011)、位置 5 (二进制 101 101)、位置 7 (二进制 111 111)的二进制表示的最后一位都是 1 ,则在此位置的汉明码负责位置 1 ,3,5,7的数据位

eg:

1011(4位3个码)

??1 ?011(1,2,4填入,1负责1,3,5,7;2负责2,3,6,7;4负责4,5,6,7)

1 1 1 0 011(判断奇偶)

纠错过程

由于设计问题,每个数据位的数据必然会被汉明码校验两次,这也就实现汉明码纠错能力,只要校验码与初始算出不同数据就一定出错,但是需要注意的是,汉明码只能检测和更正单个错误,对于两个或更多错误的情况,汉明码可能无法正确更正

RAID3

采用条带化,并用单个奇偶校验盘对数据进行检验和冗余,通常采用异或形式进行,这也表明RAID3失去乐纠错能力

存储数据时,数据会被放到各个数据块内,并整理出对应的校验码,由校验盘进行对数据的维护工作,这样一种做法减少成本,也提高磁盘的利用率

RAID4

在RAID3上进行修改,其条带化更加显著,并发处理能力更强更稳定,但与RAID 3 不同的是,RAID 4 中的奇偶校验位是针对所有数据块的位进行计算的,也就是说当数据块的内容发生改变时,仅仅需要更新与之对应的奇偶校验位,而不会影响其他数据块的奇偶校验位,这一改动使得读写更加高效

RAID5

RAID5将奇偶校验盘分散到不同盘内,这再一次提高磁盘冗余性,避免校验盘坏死的问题,分布式存储在增加系统容错的同时,也节约了磁盘的性能,当有磁盘发生故障时,系统可以通过重新计算奇偶校验信息来恢复丢失的数据

RAID6

再次增加容错,允许两个盘同时坏死,适用于一些需要长期运行且对稳定性要求高的应用以及需要高性能的服务

RAID10

RAID10其实就是RAID1+RAID0,融合两者的优点,实现大容量,可冗余处理

RAID50

同上,RAID50其实就是RAID5+RAID0,在提供备份的同时又能够实现奇偶校验

RAID60

同上,RAID50其实就是RAID6+RAID0

总结

最小磁盘数容错磁盘空间开销读速度写速度数据保护
RAID020
RAID12单磁盘故障50%镜像
RAID23单磁盘故障1/n汉明码
RAID33单磁盘故障1/n奇偶校验
RAID43单磁盘故障1/n奇偶校验
RAID53单磁盘故障1/n奇偶校验
RAID64双磁盘故障2/n双奇偶校验
RAID104多磁盘故障50%镜像
RAID506单磁盘故障1/n奇偶校验
RAID608多磁盘故障2/n双奇偶校验

目前主流使用RAID10,RAID5,RAID6,根据需求选择,适合的才是最好的,可以看到RAID的发展无疑就是一种增加容错,使得设备更加稳定


http://www.ppmy.cn/server/158025.html

相关文章

使用Logstash 将Mysql的数据导入ElasticSearch中

目录 1 .Logstash官网 2. 准备工作 3.创建配置文件 4. 启动 5. 版本不一致导致的无法启动 6.目录写错说明 1 .Logstash官网 Logstash:收集、解析和转换日志 | Elastichttps://www.elastic.co/cn/logstash 首先在官网上选择下载 2. 准备工作 Mysql的jar包下…

一个基于Spring Boot的智慧养老平台

以下是一个基于Spring Boot的智慧养老平台的案例代码。这个平台包括老人信息管理、健康监测、紧急呼叫、服务预约等功能。代码结构清晰,适合初学者学习和参考。 1. 项目结构 src/main/java/com/example/smartelderlycare├── controller│ ├── ElderlyCon…

uniapp中rpx和upx的区别

在 UniApp 中,rpx 和 upx 是两种不同的单位,它们的主要区别在于适用的场景和计算方式。 ### rpx(Responsive Pixel) - **适用场景**:rpx 是一种响应式单位,主要用于小程序和移动端的布局。 - **计算方式**…

HarMonyOS 鸿蒙系统使用 Grid构建网格

网格布局是由“行”和“列”分割的单元格所组成,通过指定“项目”所在的单元格做出各种各样的布局。网格布局具有较强的页面均分能力,子组件占比控制能力,是一种重要自适应布局,其使用场景有九宫格图片展示、日历、计算器等。 Ar…

论文阅读:Searching for Fast Demosaicking Algorithms

今天介绍一篇有关去马赛克的工作,去马赛克是 ISP 流程里面非常重要的一个模块,可以说是将多姿多彩的大千世界进行色彩还原的重要一步。这篇工作探索的是如何从各种各样的去马赛克算法中,选择最佳的一种。 Abstract 本文提出了一种方法&…

同时支持ERC721和ERC1155数字资产管理的智能合约架构

一、全景洞察 在 NFT 市场中,这款基于 ERC1967(代理合约)和 ERC11822(可升级代理)架构的智能合约产品,宛如一位幕后超级英雄,为各类 NFT 业务提供坚实的技术支撑与多样化功能保障。简单来说&…

GNSS经典误差搜索记录:对流层误差

GNSS(全球导航卫星系统)中的对流层延迟误差是由于电磁波信号在通过未被电离的中性大气层时产生的延迟,这种延迟与地面气候、大气压力、温度及湿度等因素密切相关。对流层延迟是GNSS定位的主要误差源之一,尤其是在高精度定位应用中…

第P5周-Pytorch实现运动鞋品牌识别

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 具体实现 (一)环境 语言环境:Python 3.10 编 译 器: PyCharm 框 架: Pytorch (二)具体步骤 时间…