当前位置: 首页 > news >正文

对象存储Ozone EC应用和优化

01


前言

1.1 EC

纠删码(Erasure Coding)简称 EC,是一种编码技术,通常被用于 RAID 和通信领域来保证数据的可靠性。采用纠删码编码的文件通常称为纠删码文件或者 EC 文件,EC 文件在小部分损坏时,也能够解码出可靠的数据。

Ozone 的数据可靠性是通过冗余副本实现的,为了保证某一文件的可靠性,通常要付出原文件几倍(通常是 3 倍)大小的存储。随着数据量的不断增长,冗余副本将会带来巨大的成本开销,为了降低冗余数据成本,Ozone引入了纠删码技术。

1.2 数据冷热特性

数据的冷热特性‌是指数据在存储和访问频率上的差异,通常根据数据的使用频率和重要性进行分类。热数据是指那些经常被访问的数据,通常存储在高性能的存储系统中,以确保快速的访问速度。而‌冷数据则是指那些不常被访问的数据,通常存储在成本较低的存储介质上,以节省存储成本和访问延迟‌。

据IDC统计,实际生产环境中,热数据仅占10%,冷数据占60%,剩下30%则为温数据。

02


EC在Ozone中的应用

2.1 EC的优势

前言中介绍到,为了保证文件可靠性,Ozone底层存储采用三副本,即假如用户写入一个2M大小的文件,实际底层存储容量为6M。而如果使用EC编码的方式存储,如果采用3-2-512K,实际存储容量为4M,采取此方式编码的文件相比于三副本,可节省约 33% 的存储;如果采用4-2-512K,则实际存储容量为3M,采取此方式编码的文件相比于三副本,可节省约 50% 的存储。由此得出结论:EC编码存储能够有效节约存储空间,且EC比例越高,效果越好。

2.2 EC在对象存储产品中的应用

2.2.1 智能分层

由于文件存在冷热特性,对于热文件,这些文件对业务至关重要且需要频繁访问,因此在存储时可以采用三副本存储,以实现快速数据访问‌。对于温文件或者冷文件,这些文件的访问频率没有那么频繁,且用户能够接受较高的访问延迟,在存储时可以采用EC编码的方式存储。由于EC存储的成本较低,因此根据文件访问情况进行分类,不同的类型采用不同的存储方式,可以有效地降低用户成本,提高资源使用率。

基于上述特性,对象存储推出智能分层存储产品类型。

智能分层是一种根据文件生命周期来分层降级存储的方式。如上图所示,文件刚写入时访问频率高,此时底层次采用标准多副本存储;当一段时间后,访问频率下降,文件逐渐由热转温,此时采用EC编码方式存储;在一段时间后文件访问频率继续下降,此时采用更高的EC配比存储;最后变成冷数据,此时转为归档存储。

用户可以根据自身的需求配置降级的时间及转存的类型。文件写入时会在元信息中记录写入时间,定时扫描文件的信息,如果文件在到达降级时间点之前未出现访问情况,则将该文件按降级后的存储方式覆盖写一遍;如果在到达下次降级时间点之前,文件被访问,则此时降级时间重置。

2.2.2 归档存储

在智能分层中,当数据最终转成冷数据,基于冷数据存储需求,对象存储推出归档存储产品。

归档存储适用于存储时间长且访问频率低的数据存储,采用的EC比例高,读取时延也高,因此读取前需要进行解冻。

解冻的过程中会将数据另写一份三副本存储的临时数据,此时从临时数据中读取。

2.3 动态EC配比

在前文介绍到,不同的EC比例对节省存储空间有不同的效果。那如果EC比例相同的情况下,不同的块大小是否也会对存储空间产生影响。

以下面这个例子为例,此时写一个512K大小的文件,都是用3-2的EC比例。当块大小分片是256K、512K和1M时,最终占用空间分别为1M,1.5M,2.5M。

由此可知,不同的EC配会影响最终占用的存储空间。因此,当写文件时,先根据文件大小,算出不同EC配比下最终占用空间大小,选择空间占用最少的EC配比,可以最大限度的节省存储空间。

2.4 EC的限制

一是性能问题,以6-3-512K为例,每个文件块由原来的 3 副本变成了包含9个Block的Block Group,而且这9个Block必须分布在不同的机器,每次读操作至少需要6个Block 才能还原数据,也就是至少需要6个DN同时返回,数据才能被正常解析;而在3副本模式下,一个DN上就有完整的 Block,只需要最多1个DN返回就可以读取,所以EC在生产中可能会放大DataNode的请求量,带来额外的负担。

二是如果数据块有损坏的情况,读取后还需要对数据修复,这部分需要消耗cpu,并且EC比例越高,数据块损坏的概率越高。

03


EC修复限速

EC比例越高,数据块损坏的概率越高,由此带来了EC数据修复的问题。Ozone社区的EC修复触发条件有两种:一是读修复,即当读到丢失副本的文件时,会触发异步数据修复;二是Datanode定时向SCM(Storage Container Manage)汇报副本,当发现某个副本缺失时,会触发修复任务。

由于数据修复会消耗cpu,而EC数据修复是异步任务,且没有限制单个DanaNode上数据修复任务并发数,可能会导致修复任务消耗大量cpu,影响线上稳定性。

因此我们对于EC修复任务增加了限流功能,其主要是利用令牌桶原理,对单个DanaNode上数据修复任务并发数进行限制,如果当前任务数还未达到上限,则起异步修复任务修复数据,否则任务将进入队列等待令牌释放;如果超过最长等待时间,则此次修复任务舍弃,等待下次触发修复任务。

下面是增加限速后,DanaNode cpu使用率波形图。当增加限速后,cpu使用率明显下降。

推荐阅读:

智汇云 API 市场:赋能大模型创新

OpenAI-o4mini-RFT 技术调研及实践

极速转码的设计与实现


更多技术干货,

请关注“360智汇云开发者”👇

360智汇云官网:https://zyun.360.cn(复制在浏览器中打开)

更多好用又便宜的云产品,欢迎试用体验~

添加工作人员企业微信👇,get更快审核通道+试用包哦~

图片

相关文章:

  • 多电流传感器电流检测方法多电流传感器电流检测方法
  • 图片转Latex软件
  • HarmonyOS运动语音开发:如何让运动开始时的语音播报更温暖
  • 中断相关知识
  • C语言的全称:(25/6/6)
  • python模块——tqdm
  • An improved YOLACT algorithm for instance segmentation of stacking parts
  • 双面沉金PCB应用:打造卓越电子设备的黄金工艺
  • 深入浅出:计算机网络体系结构——信息世界的“交通规则”
  • C语言速成15之告别变量碎片化:C 语言结构体如何让数据管理从混乱走向有序
  • MCP协议三种传输机制全解析
  • 在线OJ项目测试
  • C++.OpenGL (7/64)摄像机(Camera)
  • 云服务器厂商机房是什么
  • 玛哈特辊式矫平机:塑造金属平整的精密力量
  • U-Mail邮件加密,保障邮件系统信息安全
  • 5.1 HarmonyOS NEXT系统级性能调优:内核调度、I/O优化与多线程管理实战
  • LlamaIndex 工作流简介以及基础工作流
  • 开源语义分割工具箱mmsegmentation基于Lovedata数据集训练模型
  • x32dbg/x64dbg SwissArmyKnife 插件导入map文件不生效
  • 海南做网站公司/搜索引擎优化seo专员招聘
  • 淄博免费网站建设/优化设计
  • 怎么让学生在网站上做问卷调查/北京百度关键词排名
  • 有什么正网站做兼职的/windows优化大师要会员
  • 丰胸建设网站/朋友圈广告怎么投放
  • 有什么网站是可以做动态图的/职业技能培训班