一.数据存储架构

1️⃣存储系统

2️⃣主机系统

3️⃣互连部件

4️⃣存储设备与磁盘阵列

二.数据存储技术

1️⃣数据冗余技术

2️⃣RAID 0

3️⃣RAID 1

4️⃣RAID 2

5️⃣RAID 3

6️⃣RAID 4

三.基于硬件的RAID磁盘阵列

1️⃣阵列卡(RAID控制器)

2️⃣阵列卡种类

3️⃣阵列卡缓存

4️⃣透写和回写

5️⃣RAID 电池

四.基于软件的RAID磁盘阵列

1️⃣mdadm工具

2️⃣热备份


一.数据存储架构

数据存储架构是对数据存储方式、存储设备及相关组件 的组织和规划,涵盖存储系统的布局、数据存储策略等,它明确数据如何存储、管理与访问,为数据的安全、高效使用提供支撑。

1️⃣存储系统

是计算机的重要组成部分之一,它是由计算机中一组存储设备、控制部件和管理信息调度的设备(硬件)和算法(软件)所构成的系统,所述存储设备主要用于保存程序和数据,存储设备是计算机存储系统的核心部件。

存储系统负责对数据的读/写请求,也负责传输数据的任务。

常见的存储系统主要由这三部分组成:主机系统、互连部件、存储设备。

2️⃣主机系统

负责提出数据读/写请求,并完成操作系统和需要数据的应用程序之间的交互。

从主机结构上来看,可以将主机系统的组成分为物理部件(硬件)和 逻辑部件(软件)

3️⃣互连部件

在主机和存储设备之间存在着各种互连部件, 包括连接主机与存储设备的互连物理部件,以及相应的互连逻辑部件。

互连物理部件:总线、端口和线缆

互连逻辑部件:主要有通信协议,设备驱动程序

4️⃣存储设备与磁盘阵列

存储设备包括负责数据存储的设备

存储设备不仅包括可以保存数据的固态硬盘、机械硬盘(磁盘)、光盘、磁带等物理存储器, 还应该包括专门为这些物理存储器服务的外部部件(如电源、风扇、固定机架等),以及相关协议、处理算法等存储逻辑部件。

存储设备可以采用单盘(即单块磁盘)形式,也可以采用多盘形式。在一些复杂、较为严苛的使用环境下,单盘容易发生物理损坏导致数据丢失,单盘在存储数据会存在着一定的安全性隐患。

二.数据存储技术

1️⃣数据冗余技术

RAID技术,该项技术可简称为磁盘阵列, 可以理解为通过组合多个磁盘提升性能与可靠性。发明目的是为解决单盘在某些应用场景下的不足。

数据冗余可增强数据可靠性,当部分数据丢失或损坏时能通过冗余数据恢复。还能提高数据访问性能,可从冗余副本并行读取数据。

RAID磁盘阵列的实质是将多个独立的硬盘通过RAID控制器(基于硬件和软件)结合成虚拟单个大容量的硬盘使用,从而实现比单盘更好的存储性能和更高的可靠性,如图所示。

采用汉明码校验奇偶校验进行数据保护,确保数据的安全性。

目前,RAID磁盘阵列技术的实现方式主要有两种:

  • 基于硬件的 RAID 磁盘阵列技术(俗称硬 RAID ),
  • 基于软件的 RAID 磁盘阵列技术(俗称软 RAID )。

根据RAID磁盘阵列对磁盘数据分布、校验方式及实施技术的不同,可以将磁盘阵列分为多个级别,分别为 RAID 0、 RAID 1、 RAID 5、RAID 2、 RAID 3、 RAID 4、 RAID 6、 RAID 10。

其中,RAID 0(条带化,提升性能但无冗余)、RAID 1(镜像,有冗余)、RAID 3(一个冗余校验盘)、RAID 5(分布式奇偶校验,兼顾性能与冗余)、RAID 6级别较为常用。

2️⃣RAID 0

RAID 0:( 无容错的条带化磁盘阵列)又称为Stripe或 Striping。

是磁盘阵列中组建最简单的一种形式,只需要至少两块硬盘即可。

RAID 0 采用数据分条( Data Stripping )技术来在可用硬盘上分布存放数据,即在 RAID 0 系统中,数据被分段且分别存放在不同硬盘上,与单一的大容量硬盘相比, RAID 0 的读写由几块硬盘同时并行处理,因而读写速度更快。

3️⃣RAID 1

加入了冗余能力,采用简单的镜像备份的方式实现数据的冗余,需要配置成对的独立硬盘,在两者上产生互为备份的数据。

RAID 1中的数据盘和镜像盘是相对的,它们没有主从关系,可以相互镜像或恢复。

从RAID 1的磁盘阵列结构来看,镜像备份会占用一半的硬盘空间,硬盘空间使用率只有50%,故RAID 1是磁盘阵列中单位成本最贵的。

4️⃣RAID 2

RAID 2是RAID 0的改良版,以汉明码的方式将数据进行编码后分割为独立的位元,并将数据分别写入硬盘中。

前面四个盘是数据盘,后面三个盘是纠错码。

如果数据盘满了,那么校验盘不会满,空间利用率只会利用7分之4。

5️⃣RAID 3

与RAID 2不同 的是,RAID 3只需要一个冗余校验盘,而不管磁盘阵列的数目有多少。

可以将RAID 3看做是在RAID 2的基础上发展而来的, 主要用了相对简单的奇偶校验代替相对复杂的汉明码校验,不需要多个冗余硬盘而是只需要单个冗余硬盘,从而大幅降低了成本。

奇偶校验硬盘的负载将会很大,进而影响程序的运行速度, 从而导致整个RAID系统的性能显著下降。

RAID 3比较适合类似于视频编辑这类大文件类型且安全性要求较高的应用。

6️⃣RAID 4

RAID 4和RAID 3比较像,数据都是使用数据分条技术进行分割后依次存放在多个硬盘中,不同之处在于RAID 4的条带较大,是以数据块为单位进行数据分割的,而RIAD 3的条带较小——以位为单位进行数据分割。

这种类型的磁盘阵列现在很少使用。

7️⃣RAID 5

RAID 5相当于RAID 0和RAID 1的折中方案,并采用和 RAID 4一样的数据分条方案, 数据以块为单位进行分割并存放到各个硬盘上。

但RAID 5没有设置专门的奇偶校验硬盘,而是将数据和与其相对应的奇偶校验信息存储到各个硬盘上,但是这里有个规则就是奇偶校验信息和相对应的数据需要分别存储在不同的硬盘上。

RAID 5至少需要3个硬盘来组建磁盘阵列可以允许坏一块硬盘。 

需要注意的是,如果在未解决故障之前,又损坏了一个硬盘,那么磁盘阵列中的所有数据都将损坏,结果是灾难性的。

8️⃣RAID 6

RAID 6相当于在RAID 5的基础上进行扩展而来的,增加了第2个独立的奇偶校验信息块,实现算法不同的双重奇偶校验,数据冗余性更高了,在两块硬盘同时损坏的前提下,仍然可以保障数据恢复。

相比RAID 5,RAID 6具有更高的容错能力(即数据冗余性好),同时其读取性能也比较优秀, 但是写数据的性能较差,尤其是随机写入性能很差,因为不但要在每个硬盘上写入校验数据,还要在专门的校验硬盘上写入数据。

需要注意的是,至少需要4个硬盘来组成RAID 6磁盘阵列。

7️⃣RAID 10(RAID 1+0)

RAID 10相当于一个条带区结构加上一个镜像结构,同时拥有RAID 0的快速和RAID 1的数据高安全性,但是 RAID 10对存储容量的利用率和RAID1一样只有50%, 需要一般的硬盘空间用于存储冗余数据,硬盘的利用率较低,成本较贵。

RAID

级别​

​性能​​容错能力​

​存储

效率​

​成本​​适用场景​冗余能力
​RAID 0​▶ 读写性能最高(并行操作)
▶ 无校验开销
❌ 无容错能力100%最低临时数据处理/高性能计算没有冗余,任何一块盘坏了数据就全丢
​RAID 1​▶ 读性能高(双副本)
▶ 写性能较低(需镜像)
✅ 允许1块磁盘损坏50%最高(双倍存储)关键数据库/系统盘完全镜像备份,每组镜像可以坏1块盘
​RAID 5​▶ 读性能高
▶ 写性能中等(需计算校验)
✅ 允许1块磁盘损坏(n-1)/n中等文件服务器/虚拟化存储带奇偶校验,最多允许坏1块盘,靠校验数据能重建
​RAID 6​▶ 读性能高
▶ 写性能较低(双校验计算)
✅ 允许2块磁盘损坏(n-2)/n较高大容量归档存储/医疗影像系统双重奇偶校验,能扛住同时坏2块盘,适合大容量存储
​RAID 10​▶ 读写性能均优(条带化+镜像)✅ 允许每组镜像1块损坏50%极高金融交易系统/高可用数据库镜像+条带化,每组镜像最多坏1块(比如4块盘组能坏2块,但得在不同镜像组里)

关键补充说明​​:

  1. ​性能权衡​​:RAID 5/6的写性能随磁盘数量增加而下降,建议不超过16块磁盘。
  2. ​重建风险​​:RAID 5在重建期间二次故障概率高达15%(6TB以上磁盘)。
  3. ​成本计算​​:RAID 10实际成本=磁盘数×2+控制器许可费用(企业级)。
  4. ​新兴替代​​:对于超大规模存储,可考虑纠删码(Erasure Coding)技术。
  5. 简单总结RAID 0是速度王者但没保护,RAID 1/10靠镜像保安全,RAID 5/6用校验来兜底。RAID 6比5更稳,RAID 10性能和安全性兼顾,但成本也最高。

三.基于硬件的RAID磁盘阵列

硬 RAID 就是用专门的RAID控制器(RAID 卡)将硬盘和电脑连接起来,RAID控制器负责将所有的RAID成员磁盘配置成一个虚拟的RAID磁盘卷。

1️⃣阵列卡(RAID控制器)

硬 RAID 包含 RAID 卡和主板上集成的 RAID 芯片,服务器平台多采用 RAID 卡。

RAID 卡由以下:

RAID 核心处理芯片( RAID 卡上的 CPU )、 端口、 缓存、 电池,4 部分组成。

2️⃣阵列卡种类

①IDE阵列卡 :

以前主要用在一些数据重要或要接很多个硬盘的服务器与工作站电脑中,可以支持 RAID 0、1、0+1、3、5。 现基本上已经淘汰了。

②SATA阵列卡:

主要作用于大容量数据存储、网吧、数据安全等服务器领域,同时一些低端卡也满足了一些家用客户的需求,能够支持 RAID 0、1、0+1、5 、6。

③SCSI阵列卡

使用在高端工作站或者是服务器中,可以支持很多块SCSI接口的硬盘。能够支持RAID 0、1、0+1、3、5 。这种阵列卡性能很好速度很快,当然价格也比较高。不过,现基本上已经淘汰了。

④SAS阵列卡:

主要使用在一些高端工作站与服务器中,已经取代了昔日的SCSI接口,并且可以兼容SATA接口硬盘,能够支持 RAID 0、1、0+1、5 、50、6、60。

3️⃣阵列卡缓存

实际指的是相对低速的硬盘盘片与相对高速的外部设备之间的缓冲器。

阵列卡缓存的主要作用是,加快数据读写速度,提高磁盘的效用,避免不必要的等待时间。

4️⃣透写和回写

透写(Write-Through)和回写(Write-Back)是两种缓存(Cache)策略,核心区别在于数据写入的时机和一致性保证:
① 透写(Write-Through):数据同时写入缓存和主存/磁盘,确保强一致性,但写入速度慢。适合金融交易、数据库日志这类不能丢数据的场景。
② 回写(Write-Back):数据先只写入缓存,等缓存满了或系统空闲时才刷到主存,写入性能炸裂,但万一断电可能丢数据(所以企业级设备会配电池备份)。适合视频剪辑、AI训练这些对速度要求高的活儿。

5️⃣RAID 电池

用以在系统断电时保护Cache中的数据,避免断电造成中间数据的丢失。

若RAID电池和某块硬盘同时出现故障,应先更换RAID卡电池,待服务器重启成功,RAID卡工作正常后再更换故障的硬盘,最大限度保证数据安全。

四.基于软件的RAID磁盘阵列

1️⃣mdadm工具

是一个在Linux系统中用于构建、管理和监控软件RAID阵列的工具。

它提供了多种命令来创建、管理、监控RAID阵列,并 且支持多种RAID级别,如RAID0、RAID1、RAID5等。

mdadm命令常见参数解释:

-n 指定设备数量

-l 指定RAID级别

-C创建

-v 显示过程

-f 模拟设备损坏

-D 查看详细信息

-S 停止RAID磁盘阵列

2️⃣热备份

当阵列中有一块硬盘坏了,热备份盘可以随时顶替,相当于磁盘的最后一层保险。

热备份相当于给raid又做了一个备份,一个raid当中坏了一块硬盘,热备份在顶替的过程中,利用 校验的算法,把阵列中的数据同步过来,然后再顶替坏掉的硬盘。

在替换过程中,阵列是不可使用的,不能读写的,顶替完成之后,raid恢复正常状态。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/88838.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/88838.shtml
英文地址,请注明出处:http://en.pswp.cn/bicheng/88838.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AI绘画生成章邯全身像提示词

融合了历史元素和视觉表现力,力求生成符合秦末名将章邯身份的全身像。 核心提示词结构: [主体描述],[服装/盔甲细节],[姿态/神情],[武器],[背景/氛围],[风格/质量],[参数] 选项一&…

iOS高级开发工程师面试——关于优化

iOS高级开发工程师面试——关于优化 一、TableView 有什么好的性能优化方案?二、界面卡顿和检测你都是怎么处理?三、谈谈你对离屏渲染的理解?四、如何降低APP包的大小?五、日常如何检查内存泄露?六、APP启动时间应从哪些方面优化?一、TableView 有什么好的性能优化方案?…

线性基学习笔记

我们称一个线性空间 V V V 的一个极大线性无关集为这个线性空间的线性基,简称基。 异或线性基 在异或空间下,我们定义如下内容。 异或和 设 S S

ESP-Timer入门(基于ESP-IDF-5.4)

主要参考资料: ESP 定时器(高分辨率定时器): https://docs.espressif.com/projects/esp-idf/zh_CN/stable/esp32s3/api-reference/system/esp_timer.html 目录ESP-Timer与FreeRTOS TimerAPI 使用1.创建定时器2.启动定时器3.管理定时器4.时间管…

014_批处理与大规模任务

批处理与大规模任务 目录 批处理概述核心优势技术规格API使用管理和监控应用场景最佳实践 批处理概述 什么是批处理 批处理(Batch Processing)是一种异步处理大量Claude API请求的方法,允许您一次性提交多个消息请求,系统将在…

Python淘宝拍立淘按图搜索API接口,json数据示例参考

淘宝拍立淘按图搜索API接口示例淘宝的拍立淘(图片搜索)功能通常是通过淘宝开放平台提供的API实现的。以下是一个模拟的JSON数据示例和接口调用参考:模拟API请求示例import requestsimport base64# 示例图片路径image_path "example.jpg"# 读取图片并编码…

静默的田野革命—人工智能重构农业生态的技术风暴与文明悖论

一、饥饿困局的数字突围当全球粮食损失率高达30%(约13亿吨)与8亿人营养不良并存,当农药滥用导致传粉昆虫种群崩溃与地下水资源枯竭,传统农业的生态死结日益收紧。这场危机的核心是生物复杂性对工业化农业的报复:小麦基…

【大模型推理论文阅读】 Thinking Tokens are Information Peaks in LLM Reasoning

Demystifying Reasoning Dynamics with Mutual Information:Thinking Tokens are Information Peaks in LLM Reasoning 摘要 大语言推理模型(LRM)在复杂问题解决方面展现出了令人瞩目的能力,但其内部推理机制仍未得到充分理解。…

【TCP/IP】14. 远程登录协议

14. 远程登录协议14. 远程登录协议14.1 基本概念14.2 Telnet 命令14.3 Telnet 选项及协商14.4 Telnet 子选项协商14.5 Telnet 操作模式本章要点14. 远程登录协议 14.1 基本概念 Telnet 协议是 TCP/IP 协议族的重要成员,核心功能是实现本地计算机对远程主机的终端仿…

Flink1.20.1集成Paimon遇到的问题

flinkcdc mysql 到paimon 1:Caused by: java.lang.ClassNotFoundException: org.apache.kafka.connect.data.Schema 可以参考这个文章 明确指出了flink-connector-mysql-cdc-3.4.0.jar存在这个包,但是flink-sql-connector-mysql-cdc-3.4.0.jar中没有这个…

C++高频知识点(十)

文章目录46. 智能指针是什么?怎么使用?1. std::unique_ptr2. std::shared_ptr3. std::weak_ptr47. 什么是野指针?1. 使用已释放的指针2. 未初始化的指针3. 指针超出作用域如何避免野指针1. 立即将指针置空2. 初始化指针3. 使用智能指针4. 避免返回局部变…

c#中Random类、DateTime类、String类

C# 中 Random 类分析Random 类用于生成伪随机数,位于 System 命名空间。它的核心机制是基于一个种子值 (seed),通过算法生成看似随机的数列。相同种子会生成相同的随机数序列,这在需要可重现的随机场景中很有用。核心特点种子与随机性默认构造…

Vscode 下载远程服务器失败解决方法

今天在使用 vscode 连接远程主机时,突然再次遇到这个问题,按照以往的经验,直接按照这个博主的文章其实就能解决,但是不知道为什么,今天这个方案失效了,然后卸载安装服务器和本机的vscode什么的也都试过了&a…

【算法】贪心算法:柠檬水找零C++

文章目录前言题目解析算法原理代码示例策略证明前言 题目的链接,大家可以先试着去做一下再来看一下思路。 860. 柠檬水找零 - 力扣(LeetCode) 题目解析 首先我们要认真去拿到题目中的关键有用信息。 认真的去阅读题目给的示例,然…

27.【.NET8 实战--孢子记账--从单体到微服务--转向微服务】--单体转微服务--币种服务(一)

从本篇文章开始,我们将用两篇内容详细介绍币种服务的实现。币种服务本身结构较为简单,核心功能包括内置币种的初始化、币种汇率的同步以及汇率的查询。在本篇中,我们将重点讲解如何实现内置币种的初始化功能,为后续的服务打下基础…

(2)从零开发 Chrome 插件:实现 API 登录与本地存储功能

从零开发 Chrome 插件:实现 API 登录与本地存储功能 Chrome 插件作为浏览器功能的重要扩展,能极大提升用户的工作效率。本文将以一个「登录功能插件」为例,带你从零构建一个可调用 API 验证身份、并将用户信息存储在本地的 Chrome 插件。 基…

Flink时间窗口详解

一、引言在大数据流处理的领域中,Flink 的时间窗口是一项极为关键的技术,想象一下,你要统计一个电商网站每小时的订单数量。由于订单数据是持续不断产生的,这就形成了一个无界数据流。如果没有时间窗口的概念,你就需要…

宽带接入,网线插入电脑的经验

现在一般家里安装移动宽带,都会提供四个千兆接口的光猫路由器,但是要注意了 首先网线的两端看起来一样,实际上并不是,如果发现连接不成功,那么就要换一头重新尝试, 一般像说什么自动DHCP啊,因为…

crmeb多门店对接拉卡拉支付小程序聚合收银台集成全流程详解

一、商户注册与配置​​注册支付平台账号​​:在拉卡拉开放平台注册商户账号(私信联系注册)​​创建应用​​:获取小程序应用ID(AppID)​​配置支付参数​​:商户号(MID)终端号(TID)API密钥支付回调地址二、配置拉卡拉…

C#将树图节点展示到NetronLight图表中

之前写过NetronLight开源框架 C#使用开源框架NetronLight绘制流程图-CSDN博客 我们这里将TreeView树图的节点内容展示到NetronLight图表中,按照树的层次【深度Level】展示 新建窗体应用程序ShowTreeNodeToDiagram,将默认的Form1重命名为FormShowNode&…