新一代G7系列浪潮云海超融合EC纠删功能设计

news2025/3/1 18:39:00

浪潮云海在2023年5月正式发布新一代InCloud Rail G7系列超融合一体机,其内置的InCloud dSAN超融合存储组件,基于新一代的硬件平台设计,支持全栈RDMA协议,同时在EC纠删功能上也带来全新体验,为新时代用户提供更丰富的产品功能。

本文将详细解读InCloud dSAN在新一代InCloud Rail G7系列超融合一体机上如何设计EC纠删功能。

什么是EC纠删码技术?

纠删码技术是一种数据保护方法,主要是通过利用纠删码算法将原始数据分割成多段,然后进行扩展和编码校验,并将分段数据和校验一并在磁盘、存储节点或其他位置存储起来,以达到容错目的。基本原理:总数据块 = 原始数据块 + 校验块,常用表示为,n= k + m基本思想是将k块原始的数据元素通过一定的编码计算,得到m块校验元素。对于这k+m块元素,当其中任意的m块元素发生故障(包括数据和校验出错),均可以通过对应的重构算法恢复出原来的k块数据。

EC纠删码在块存储设计的挑战

图:EC纠删码数据切分和计算示意图

上述场景以K = 4,M = 2为例,首先将应用数据拆分成4个分片,然后计算出两个校验条带分片,然后按照数据分布算法,将6个分片数据下发到6个节点上存储。由于多副本策略是客户常用的数据冗余策略,我们将EC纠删码和三副本的的读写流程及故障场景下的流程做了相关分析:由下表中可得出,在正常写流程中,需要消耗7个IO完成正常的写入流程,同时在有故障场景的读写,需要7个IO,有较大的读写惩罚。另外,在小块IO读写流程中,如果数据块小于EC切片数据大小,会存在空间浪费的情况。

数据冗余策略

读写场景

消耗读写IO次数

EC(4+2)

正常读

1

正常写

4个读IO,3个写IO

落在故障盘的读

5个读IO

落在故障盘的写

5个读IO + 2个写IO

三副本

正常读

1

正常写

3

落在故障盘的读

2

落在故障盘的写

1

在超融合的应用场景中,用户经常使用块存储承接应用数据,适用于包括虚拟化、云平台、数据库等场景。此种场景下会产生非常多的小块随机读写负载,同时用户对于时延要求较高,要求控制在5ms以内,且要求在故障场景下,对业务影响较小。这些要求正是EC纠删码的缺点。

浪潮云海超融合在新一代G7平台的EC设计

由于EC的优劣势明显,如何在超融合块存储上使用EC功能是时下刚需,浪潮云海超融合在新一代G7平台做了独特的方案设计:


图:EC纠删码设计方案

方案亮点主要有:

  • 数据分层管理:将数据存储划分为缓存层和数据层,其中缓存层使用高性的NVMe和Sata SSD存储,同时在缓存层使用多副本的设计,提供高性能数据存储能力。数据层提供EC存储,主要由HDD硬盘存储,提供高容量存储空间。
  • 智能缓存管理:设计冷热分层的智能缓存管理,高效识别热点数据和冷数据,同时设计全局的缓存管理功能,确保客户的热数据保存在缓存空间中。
  • 数据空间高效存储:在缓存层中由于副本存储,将上层应用的小块IO聚合,当数据变成冷数据下刷至EC存储层时,由于下刷采用数据对齐,聚合成大块的顺序条带读写,可以在EC数据层进行高效的数据存储。
  • EC加速计算:设计支持多个EC加速引擎,支持不同平台的EC加速计算,其中在Intel平台使用ISA-L的EC加速库,发挥Intel CPU的EC计算能力。

为了验证方案效果:同时对比ISA-L加速计算和使用Jerasure纯软件不经过CPU加速计算的性能测试。下图所示测试数据采用了金融和医疗等行业常用的数据库应用,使用1G的测试数据,在触发数据下刷场景下,使用EC算法选择Reed-Solomon和Cauchy算法测试EC纠删场景。从实验数据发现:


图:不同K/M模型ISA-L和Jerasure的EC计算带宽对比

  • ISA-L在不同的K/M模型下,EC计算带宽表现较为稳定,而软件计算随着计算量增加呈线性下降趋势;
  • ISA-L在新一代G7平台的吞吐率为9.8 GB/s,相较于软件计算提升5.7倍。

总结:EC纠删码相较于多副本策略虽然可以提升存储的利用率,如4 + 2场景利用率为66%,3副本只有33%,8 + 2可以做到80%。但是其涉及到EC的纠删计算、数据校验、读写惩罚等问题相较于多副本仍存在较多优化空间。InCloud dSAN分布式存储软件在新一代G7平台,依托于新硬件(Intel新一代至强CPU)、ISA-L软件加速库,设计新型的EC功能,采用独特的数据分层、智能缓存管理、软件硬协同等方案,解决了当前广泛存在的数据冗余和存储空间利用难题。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PYTHON(一)——认识python、基础知识

一、为什么要学习python? Python 被认为是人工智能、机器学习的首选语言,可以说是全世界最流行通用范围最广的语言,几乎可以完成所有的任务,像设计游戏、建网站、造机器人甚至人工智能等都广泛使用Python。 二、输出(…

注解-宋红康

目录 一、注解(Annotation)概述二、常见的注解实例三、如何自定义注解四、JDK中的四个元注解五、Java8注解的新特性1、可重复注解2、类型注解 一、注解(Annotation)概述 二、常见的注解实例 三、如何自定义注解 自定义注解必须配…

查询硬盘序列号、物理地址及对应批处理命令

首先说明: 通过winR -> cmd -> diskpart -> list disk -> select disk 0 -> detail disk -> 然后显示磁盘ID等,这不是序列号,只是磁盘ID而已。 查询序列号命令很简单: wmic diskdrive get serialnumber或者 w…

权限、认证与授权

权限、认证与授权 1、权限概述 (1)什么是权限 权限管理,一般指根据系统设置的安全策略或者安全规则,用户可以访问而且只能访问自己被授权的资源,不多不少。权限管理几乎出现在任何系统里面,只要有用户和…

webstorm HbuilderX工具未配置

问题:调试动迁uni app h5项目,报错 webstorm是换了电脑新安装, HBuilerx是从旧电脑拷贝过来的解压的文件 解决: 把uniapp插件,卸载 再重启webstorm,重装安装uniapp Tool, 安装第一个,免费。…

拓展外部SRAM

外部拓展芯片 IS62WV51216A 芯片手册 支持高速时钟通道时间为45、55ns 芯片引脚定义 通道时序 读定义表 一个纵列表示当前使用的高速通道的时间,选一个纵列作为参数标准。 地址控制读时序 如图,大概需要三个参数 写时序定义表 还是选择55ns参数 写…

数据接口工程对接BI可视化大屏(五)数据接口发布

文章目录 第5章 数据接口发布5.1 编写Service5.2 从MySQL中返回数据5.2.*1 封装Bean5.2.*2 编写Mapper5.2.3 编写ServiceImpl5.2.4 编写Controller5.2.5 测试 5.3 从Redis中返回数据5.3.1 封装Bean5.3.2 编写Mapper5.3.3 编写ServiceImpl5.3.4 编写Controller5.3.5 测试 5.4 从…

day34 Set

概述 Set也是集合Collection接口的子接口 Set也是集合Collection接口的子接口 特点:不保证元素有顺序,数组元素不可以重复 HashSet: 底层是基于HashMap的。元素是无序的。元素不可重复,去重机制是依据hashCode()和equals()方法 LinkedHas…

数据结构-堆的实现及应用(堆排序和TOP-K问题)

数据结构-堆的实现及应用[堆排序和TOP-K问题] 一.堆的基本知识点1.知识点 二.堆的实现1.堆的结构2.向上调整算法与堆的插入2.向下调整算法与堆的删除 三.整体代码四.利用回调函数避免对向上和向下调整算法的修改1.向上调整算法的修改2.向下调整算法的修改3.插入元素和删除元素函…

vue学习之列表渲染

列表渲染 创建 demo8.html,内容如下 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</…

LeetCode算法心得——判断能否在给定时间到达单元格(动态模拟)

大家好&#xff0c;我是晴天学长&#xff0c;这是一个动态模拟题&#xff0c;跟大佬相比&#xff0c;我的有点繁琐了&#xff0c;但是也算是锻炼到自己的一些细节问题&#xff0c;需要的小伙伴可以关注支持一下哦&#xff01;后续会继续更新的。 1) .判断能否在给定时间到达单元…

Pytorch面试题整理(2023.09.10)

1、pytorch如何微调fine tuning&#xff1f; 在加载了预训练模型参数之后&#xff0c;需要finetuning 模型&#xff0c;可以使用不同方式finetune。 局部微调&#xff1a;加载了模型参数后&#xff0c;只想调节最后几层&#xff0c;其他层不训练&#xff0c;也就是不进行梯度…

【Endnote】如何出现“作者(年份) found that ....”的格式?

如何出现“作者&#xff08;年份&#xff09; found that ....”的格式&#xff1f; 非常简单&#xff01;先用endnote插入文献后&#xff0c;默认显示&#xff1a; 然后&#xff0c;重点来了&#xff0c;点开这个&#xff1a; 然后&#xff0c;将此处的default改成Display as…

unique_ptr的大小探讨

unique_ptr大小和删除器有很大关系&#xff0c;具体区别看如下代码的分析。不要让unique_ptr占用的空间太大&#xff0c;否则不会达到裸指针同样的效果。 #include <iostream> #include <memory> using namespace std;class Widget {int m_x;int m_y;int m_z;publ…

国产化改造之Mysql迁移方案:Mysql Galera Cluster

一、背景 因某业务系统OS国产化改造&#xff0c;现需将生成环境Mysql 主从迁移到新部署的BCLinux OS主机上&#xff1b;如果保障业务不断&#xff0c;平滑迁移并成功割接将是本次方案的重要方向&#xff0c;现场环境涉及需迁移数据780G左右&#xff0c;目标主机OS版本&#xff…

day35 线程

程序&#xff1a;是为了完成特定的任务&#xff0c;用某种语言编写的一组有序指令的集合&#xff0c;是一段静态的代码 进程&#xff1a;是程序的一次执行过程 线程&#xff1a;线程是进程中的一个执行单元 线程是调度和执行的单位 处理器和线程间的关系 创建线程(重点) 创建…

时序分解 | MATLAB实现MVMD多元变分模态分解信号分量可视化

时序分解 | MATLAB实现MVMD多元变分模态分解信号分量可视化 目录 时序分解 | MATLAB实现MVMD多元变分模态分解信号分量可视化效果一览基本介绍程序设计参考资料 效果一览 基本介绍 MVMD多元变分模态分解 可直接替换Excel运行包含频谱相关系数图 Matlab语言 1.算法新颖小众&…

LTGNet-超分辨率OCTA图像分割

目录 一、摘要 二、引言 三、方法 A. Reference-based框架 B. Learnable Texture Generator 四、实验 五、总结 一、摘要 研究背景&#xff1a;光学相干断层血管成像(OCTA)是一种新的视网膜微血管成像方式&#xff0c;已广泛应用于临床。 高分辨率OCT血管造影对于定性和…

Brief. Bioinformatics2023 | 利用深度学习和分子动力学模拟设计抗菌肽

文章标题&#xff1a;Designing antimicrobial peptides using deep learning and molecular dynamic simulations 代码&#xff1a;https://github.com/gc-js/Antimicrobial-peptide-generation 一、问题 PandoraGAN使用手动策划的130个高活性肽的训练数据集&#xff0c;其…

第11章_瑞萨MCU零基础入门系列教程之SysTick

本教程基于韦东山百问网出的 DShanMCU-RA6M5开发板 进行编写&#xff0c;需要的同学可以在这里获取&#xff1a; https://item.taobao.com/item.htm?id728461040949 配套资料获取&#xff1a;https://renesas-docs.100ask.net 瑞萨MCU零基础入门系列教程汇总&#xff1a; ht…