存储可靠性:从基于磁盘的RAID到分布式纠删码(EC),多副本

文章目录

    • 0.简介
    • 1.RAID
      • 1.1 RAID 0
      • 1.2 RAID 1
      • 1.3 RAID 5
      • 1.4 RAID 6
      • 1.5 RAID 10
    • 2.EC(纠删码)
      • 2.1 概念
      • 2.2 原理
    • 3.多副本
    • 4. 总结和优缺点比较

0.简介

在选择数据存储方案时,一个绕不开的话题就是数据存储的可靠性(面对故障时的应对能力),本文对磁盘的RAID技术和现在分布式存储常用的纠删码(EC)和多副本的原理和优缺点进行详细的介绍。

1.RAID

RAID(Redundant Array of Independent Disks,独立磁盘冗余阵列)是一种把多块独立的硬盘(物理硬盘)按不同的方式组合起来形成一个硬盘组(逻辑硬盘),从而提供比单个硬盘更高的存储性能和提供数据备份技术。RAID技术主要分为几种不同的级别,以下是其不同级别及其特点的介绍:

1.1 RAID 0

RAID 0 又称为Striping(条带化),条带化意思是把各个磁盘的相同偏移量的一块空间横向进行分割,从而形成一块逻辑存储空间。数据按照条带来进行写入,即一条写满后再写下一条。一个卷可以有很多条条带组成。条带的划分应该的磁盘配置初级就完成。条带包含扇区(或块)的个数叫条带长度;每个磁盘内包含属于这个条带的扇区(或块)的个数叫条带深度。引入条带的原因是要解决单个磁盘一次只能同时并发一个IO和保证数据完整性。提高并发是通过条带的方式可以让多个磁盘一起协同完成任务来实现的,其结构如下,该层级一块磁盘破坏,数据完整性就被破坏了。

在这里插入图片描述

1.2 RAID 1

RAID 1 又称为Mirroring(镜像),它将数据完全复制到两个或多个磁盘上。这种方式提供了最高的数据安全性,但成本最高,并且存储效率只有50%(即,如果使用了两个磁盘,实际可用存储空间只有一个磁盘的容量),其读写特点也很明显,读快,写慢。

图片

1.3 RAID 5

RAID 5结合了条带化和分布式奇偶校验。数据被分散到多个磁盘上,同时校验信息也被存储在这些磁盘上。如果任何一个磁盘出现故障,数据可以从其他磁盘和校验信息中恢复。RAID 5在性能和成本之间提供了较好的平衡。
在这里插入图片描述

1.4 RAID 6

与RAID 5类似,但提供了两个磁盘的容错能力。它使用两种不同方式的奇偶校验,因此可以承受两个磁盘的同时故障。

在这里插入图片描述

1.5 RAID 10

RAID 10又称为RAID 1+0,它是RAID 1和RAID 0的组合。数据先被镜像到两个磁盘组,然后这些组再被条带化。这种方式提供了非常高的性能和容错能力,但成本也相对较高。

在这里插入图片描述

2.EC(纠删码)

2.1 概念

EC纠删码(Erasure Coding)是一种高级数据保护技术,也称为纠删编码或前向纠错(FEC)编码。它主要用于分布式存储系统中,以提高数据的可靠性和存储效率。

2.2 原理

类似于RAID5中的思路,增加校验码来保证数据存储的可靠性,下面先来看一个4+2编码解码以及故障恢复的流程。
在这里插入图片描述

1)chunk:将数据进行分片,上图分成了四个片。
2)encode:根据四个数据分片,生成两个校验分片,也就是4+2结构。
3)故障:4+2允许坏两个片,图中是d2和c1损坏。
4)decode:根据剩余的四个片计算出原始块。
5)re-encode:根据原始块重新分成四个数据块并计算出校验块。
6)replace:将损坏的块进行替换。
上面比较关键的就是如何生成校验码和恢复数据,主要利用可逆矩阵去实现。

3.多副本

多副本比较容易理解,就是多份数据,类似于RAID1,其结构如下:

在这里插入图片描述

4. 总结和优缺点比较

以上介绍了从单机到分布式的数据可靠性保证方式,单机可以通过磁盘组合(RAID)的方式保证可靠性同时提高并发,而分布式可以通过多节点存储的方式(EC)或多副本去保证数据可靠性,其都能看到RAID的影子,只是将其扩展到多节点。
而两种分布式的方式而言,多副本有着更好的并发和对节点故障数量容忍更好;EC有着更少的空间占用和更高的空间利用率。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/967697.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【自然语言处理】利用Memory Layer替换Transformer中的FFN

论文地址:https://arxiv.org/pdf/2412.09764 相关博客 【自然语言处理】利用Memory Layer替换Transformer中的FFN 【自然语言处理】【大模型】BitNet:用1-bit Transformer训练LLM 【自然语言处理】BitNet b1.58:1bit LLM时代 【自然语言处理】…

Redis持久化的两种方式:RDB和AOF

redis中的数据存储在缓存中,如果没有持久化的策略,Redis一旦宕机,那么将会导致数据丢失;因此redis提供了以下两种持久化方式:RDB和AOF 一般来说,大部分公司对这两种方式都是同时开启的 一、RDB RDB策略全…

linux查看所有程序占用的本地端口

sudo ss -tulwnp ss是Socket Statistics的缩写,用来替代旧的netstat工具,功能更强大,执行更快。它用于查看系统的网络连接情况,包括TCP、UDP等协议的信息。 查阅ss的帮助文档(man ss),发现选项…

组件库选择:ElementUI 还是 Ant Design

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

9 数据流图

9 数据流图 9.1数据平衡原则 子图缺少处理后的数据操作结果返回前端应用以及后端数据库返回操作结果到数据管理中间件。 9.2解题技巧 实件名 存储名 加工名 数据流

CEF132 编译指南 MacOS 篇 - 基础开发工具安装实战 (二)

1. 引言 在 macOS 平台上编译 CEF132 之前,首要任务是搭建一个完善的开发环境。与 Windows 和 Linux 环境不同,macOS 的开发环境主要以 Xcode 为核心。本篇将作为 CEF132 编译指南系列的第二篇,详细指导读者如何在 macOS 系统上安装和配置 X…

单片机简介

一、单片机简介 电脑和单片机性能对比 二、单片机发展历程 三、CISC VS RISC

Idea集成deepseek生成代码

今天我带大家在idea上安装CodeGpt插件,这个插件可以根据我们的提示词生产代码,我们一起试试。 1、安装插件 打开idea,再点击setting菜单,按以下步骤操作。 安装完成后,一定要点击第四步“ok”。再次点击菜单setting…

服务器使用宝塔面板Docker应用快速部署 DeepSeek-R1模型,实现Open WebUI访问使用

Deepseek这段时间非常火,最新推理模型Deepseek R1,都想装上试一试,特别是部署到服务器教程网上一堆教程好像没几个部署成功靠谱的,先说服务器上下载Ollama就难倒一堆人,每次都超时。今天终于在宝塔看到一篇 应用安装文…

json格式,curl命令,及轻量化处理工具

一. JSON格式 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于一个子集的JavaScript编程语言,使用人类易于阅读的文本格式来存储和表示数据。尽管名字中有“JavaScript”,但JSON是语言无关的,几…

Django在终端创建项目(pycharm Windows)

1.选择目录 选择或新建一个文件夹,作为项目保存的地方 2.右键在终端打开 3.确定django-admin.exe安装位置 找到自己安装django时,django-admin.exe安装的位置,例如 4.运行命令 使用django-admin.exe的绝对路径,在刚才打开的终端…

四次挥手详解

文章目录 一、四次挥手各状态FIN_WAIT_1CLOSE_WAITFIN_WAIT_2LAST_ACKTIME_WAITCLOSE 二、双方同时调用close(),FIN_WAIT_1状态后进入CLOSING状态CLOSING状态 三、TIME_WAIT状态详解(1) TIME_WAIT状态下的2MSL是什么MSL (报文最大生存时间)为…

哪吒闹海!SCI算法+分解组合+四模型原创对比首发!SGMD-FATA-Transformer-LSTM多变量时序预测

哪吒闹海!SCI算法分解组合四模型原创对比首发!SGMD-FATA-Transformer-LSTM多变量时序预测 目录 哪吒闹海!SCI算法分解组合四模型原创对比首发!SGMD-FATA-Transformer-LSTM多变量时序预测效果一览基本介绍程序设计参考资料 效果一览…

MybatisPlus常用增删改查

记录下MybatisPlus的简单的增删改查 接口概述 Service和Mapper区别 Mapper简化了单表的sql操作步骤(CRUD),而Serivce则是对Mapper的功能增强。 Service虽然加入了数据库的操作,但还是以业务功能为主,而更加复杂的SQL…

支付宝安全发全套解决方案

产品价值 ● 通过支付宝的资金能力,让服务商机构通过信息流驱动资金流,在不碰触客户企业资金的同时,为客户企业完成转账。账目清晰,无合规和资质风险。 ● 为服务商提供全链路的资金流动明细信息,服务商可以将这些信息…

PHP盲盒商城系统源码 晒图+免签+短信验证+在线回收 thinkphp框架

源码介绍 PHP盲盒商城系统源码 晒图免签短信验证在线回收 thinkphp框架 源码前端uniapp开发,可以打包成APP(非H5封壳)H5,接其他平台支付通道,前后端全开源 H5盲盒首页可以直接开盒新UI 修复优化BUG,修复无…

Redis企业开发实战(四)——点评项目之分布式锁

目录 一、分布式锁介绍 (一)分布式锁基本介绍 (二)分布式锁满足的条件 (三)常见的分布式锁 1.Mysql 2.Redis 3.Zookeeper 二、Redis分布式锁详解 (一)Redis分布式锁的实现核心思路 获取锁: 释放锁: (二)基于Redis实现分布式锁初级版本 1.…

【HarmonyOS Next 自定义可拖拽image】

效果图: 代码: import display from "ohos.display" import { AppUtil } from "pura/harmony-utils"/*** 自定义可拖拽图标组件*/ Component export default struct DraggableImage {imageResource?: ResourceimageHeight: numbe…

Jmeter快速实操入门

以下操作需要提前安装了JDK(JDK版本要Java8),并且配置了环境变量。 1、下载Jmeter,下载连接。选择zip版本,解压即可。 2、解压后的文件目录如下。 3、进入bin文件夹,双击ApacheJMeter,运行Jmeter。 4、在测…

学习 PostgreSQL 流复制

PostgreSQL 流复制 PostgreSQL数据库异常中止后,数据库刚重启时,会重放停机前最后一个checkpoint点之后的 WAL日志,在把数据库恢复到停机的状态后,自动进入正常的状态,可以接收其他用户的查询和修改。 想象另一个场景…