【FOSS】新一代绿色节能对象存储

news2024/10/6 22:31:12

01 背景概述

2020年9月中国明确了“碳达峰、碳中和”目标,2021年,碳达峰、碳中和被首次写入政府工作报告。该事件标志着中国对促进经济高质量发展,社会繁荣和生态环境保护的决心。

据IDC白皮书预测,中国将在2025年成为全球最大数据圈。据统计中国数据中心的用电量约占中国全社会用电量的2%,一年竟要用掉相当于两个半三峡水电站的年发电量。因此,在确保数据中心业务能力满足需求同时,对数据中心的绿色化提出更高要求成为了我国双碳道路上的关键任务,这一目标也成为今后引领数据中心技术和产业升级的全新方向。

大道云行全新分布式对象存储系统,是支持All Flash全闪的分布式对象存储系统,以绿色节能、超大规模数据长期可靠、高性能存取为目标。一个FOSS数据中心的数据量级可达数百P,百万IOPS。FOSS系统可跨zone进行数据复制、容灾。

在这里插入图片描述
因此本文主要阐述FOSS在绿色节能、大规模数据、高性能等方面的优势所在。

02 技术概况

软件架构
在这里插入图片描述

  • 服务层

支持S3标准对象存储接口,并兼容OSS,且通过兼容posix接口,从而支持NAS及HDFS相关文件协议。

不仅可以支撑视频监控、备份归档、广电媒资等传统对象存储使用场景,还可以支撑人工智能(AI)训练、大数据处理以及高性能计算(HPC)等场景。

  • 调度层

使用和管理存储层的资源,实现横向扩展和弹性伸缩;

调控资源分配,控制数据分配到指定的存储层节点;

进行数据聚合、流控、流量平衡、空间平衡;节能调度,降低功耗;

迁移调度,进行数据热度的智能调度,数据健康巡检,生命周期调度。

同时,提供元数据访问,包括调度资源的元数据和服务层的元数据。

  • 存储层

存储层每个控制器是最小单元,提供对象的存取。

存储层包括对象存储接口,VOLUME资源分配算法、EC冗余算法、SSD管理、元数据管理等模块。

  • 驱动层

实现对新型高密度廉价SSD的节能控制。

主要通过两种方式实现,一是SSD直连主机接口,SSD主控在主机端实现,使用简化的NVMe协议进行数据发送、接收和控制;二是通过jbod框连接主机,SSD在JBOD框内,RDMA方式访问SSD。

  • 物理层

支持X86通用服务器及国产鲲鹏、海光服务器为基础的硬件平台。

硬盘

支持各类NVMe SSD、SATA SSD、SAS以及SATA HDD硬盘,包括PCIe SSD;

网络

支持主流 ↓

1/10/25/40/50/100/200GbE网卡、交换机,以及IB设备。

主要指标

绿色网格组织TGG于2007年,制定了数据中心能效比指标PUE,其基本计算方法如下:

PUE = 数据中心总能耗/IT设备能耗

其中,数据中心总能耗包括IT设备能耗和制冷设备、配电设备以及其他设备的能耗,其值大于1,越接近1表明非IT设备耗能越少,即能效水平越好。

根据工信部印发的《新型数据中心发展三年行动计划(2021-2023年)》,至2023年底,新建大型及以上数据中心PUE降低到1.3以下,严寒和寒冷地区力争降低到1.25以下。北京作为数据中心的重要枢纽,管控则更为严格,最低值直逼1.15。

FOSS可通过降低机柜级能耗,助力数据中心提高PUE能效比。

  • 单机柜指标

在这里插入图片描述

  • 节能指标

节能/active模式可手动/智能设置;

节能模式的功耗比active降低一个数量级;

节能/active模式切换的时间<100毫秒。

03 技术特点与分析

绿色节能
在这里插入图片描述

FOSS通过加电组的设计,让系统在保证性能的前提下,尽量少唤醒disk. 让大多数disk都处于待机或深度休眠/下电状态,达成disk使用节能。

加电组=统一进行节能调度的纠删组(EC:erasure code)

  • 每个node(存储节点)包含多个加电组

加电组涉及磁盘数=EC组条块数=16(EC 12:4)

node加电组个数=磁盘数=36

同时只有一个加电组用于写入

  • node节能情况

EC12:4,36个disk有16个disk加电用于写入

所有节点参与写,节电比例:

1-16/36=55% SSD节电

1/3节点参与写,节电比例:

1/3 55%SSD节电,2/3全SSD节电

  • 加电组的意义

减少node同时加电的disk个数,在没有读请求的情况下,每个node只有16/36=45%的disk加电(写入);

整个机柜最多有26*36=936个数据SSD,放置密度很高,若长期全部加电,容易过热、信号干扰,降低SSD使用寿命;

节省node的用电,降低成本。

  • 调度算法实现节能

写入时,在一组node中进行,其他node不写入,过一段配置周期后,换一批node,实现空间均衡;

读取时,每个用户读取一批时间范围的数据,不会到所有node去读,node的加电组也不会全部加电。

  • 机柜用电、节能定量分析

功耗标准:

交换机 200w-按0.5最大功耗算

四子星 300w-按0.7最大功耗算

1U服务器120w-按0.5最大功耗算

插36个数据SSD,每SSD不节能6w,节能1w

单机柜用电分析

服务器功耗:

交换机2(2000.52)+四子星2(3000.72)+1U服务器26 (1200.5*26)=2180w

SSD功耗, 无节电:26366=5600w

SSD功耗, 1/3工作存储节点(55%SSD节能),2/3休眠存储节点(所有SSD节能):(参考前面阐述-工作节点节电SSD比例为55%, 全机柜2/3的节点休眠)

26*(3660.45+3610.55)*1/3+

26*(36*1)*2/3=1014+624=1638w

总功耗2180+5600=7780w

节约5600-1638=4000w, 节约比例51.4%

每天节约96度电,每月节约2900度电

  • 加电组智能节电

加电组提供智能模式,根据算法在节电/性能两种模式中智能切换,进而在保证集群性能的前提下,提高提高效率,减少人力物力投入。

高存储密度

采用大尺度存储介质(16-32T SSD)的存储框或控制器,按机柜集成:

  • 机柜空间划分

4U网络,2个2U万兆交换机

4U计算,2个2U四子星服务器,8个物理机

28U存储,26个1U存储节点,2个1U预留(用于node数据迁移)

余下6U间隙

  • 采用1U存储node,外插方式,disk容易查看和插拔,易于维护

36个16T数据SSD, 576T裸容量

EC(12+4)-432T交付容量,75%

EC(8+2)-460T交付容量,80%

  • 单机柜最大对象存储容量

26个1U存储节点

裸容量-26*576T=15P

EC(12+4)-交付容量15P*0.75=11P

EC(8+2)-交付容量15P*0.8=12P

线性扩展性

  • 跨域扩展

存储域之间数据的调度,由服务层软件进行

  • 域内扩展存储机柜

存储域,比如华南1,…n

存储域网络:

接入层网络-40-200Gb

机柜内网络-40Gb网络

机柜之间rdma不直通,通过接入层网络转发,因此机柜个数不受网络规模限制

每个机柜提供11-12P交付存储容量,冗余比12+4或8+2

假设一个域的最大支持100个机柜,则每存储域最大交付容量为1100-1200P

在这里插入图片描述

高可靠性

  • 元数据(3副本)

按文件平均>1M算,每个文件元数据最大1000字节*3=3k,元数据比例<3/1000;

按元数据存储介质成本为数据存储10倍算,元数据存储成本约为总成本的3%。

  • 数据高可靠性(纠删EC)

高可靠性 EC冗余(8+2), 一个EC组可同时坏2块盘不丢失数据;

极高可靠性 EC冗余(12+4), 一个EC组可同时坏4块盘不丢失数据;

降级情况下,不允许写入;

坏的SSD可通过返厂修复,做到影响的数据最小。

  • 快速rebuild

每个SSD disk读写吞吐大于1GB,整个EC组每秒读写吞吐大于8GB;

按每秒4GB的EC吞吐算:

当一个disk fail,要读出所有EC数据块,进行运算,总运算量为16T8,总时间为16T8/4G=32k秒,约9小时。

通过采用专用硬件计算、合并数据等优化方法,降低rebuild时间,优化EC能力,有望达成每秒8-12GB的EC吞吐量,总rebuild时间有望降低到3-4.5小时。

高可用性

  • 写数据

任意node可用,则可写。

  • 读数据

如果控制器物理故障不可恢复,可更换控制器,将已有的SSD重新插入重建。

可观测性

  • 系统状态监控

硬件状态(CPU,内存,网卡,disk,风扇…);

IO(流量,IOPS,QPS…);

空间(已用空间,剩余空间);

各级服务状态。

  • 存储资源监控

每个disk巡检情况;

volume的空间占用率,擦写次数;

已用空间的资源分布(空间均衡观测);

每个租户占用的volumes(聚合性观测)。

高级特性

  • QLC分层

QLC闪存颗粒拥有比TLC更高的存储密度,同时成本上相比TLC更低,优势就是可以将容量做的更大,成本上更低,但劣势就是P/E寿命更短,理论擦写次数低。

我们研发出特有的分层机制,同时支持高性能写数据层和(温/冷)读数据层,数据先写入到写缓存层,再根据算法定期将数据迁移到QLC磁盘组成数据层,保证数据能大块顺序写入到QLC介质中,大幅降低数据擦除的频率,且不会有无效的数据搬移,从而弥补了QLC介质的缺陷,让用户在拥有的高性能的同时,还实现了最优的成本。

全域范围SSD磨损平衡,最大程度降低SSD写放大,提高QLC使用寿命。

  • 大比例的EC纠删码机制

支持8+M,12+M,16+M的大比例纠删码,在保证一定的数据安全性前提下,提供更高的可用容量,从而节省整体投资并降低能源损耗。

未来还将通过宽条带化技术,支持36+4,146+4等大比例EC, 以达到更高的存储容量可用率。

  • 压缩/重删

根据数据类型智能适配压缩算法:

在视频分析等特定场景下,如果采取有损压缩不影响业务,选择有损压缩得到很高的压缩率。

基于全域的相似性去重:

散列算法设计为相似性哈希,可度量两个块之间的近似距离,从相似的数据块生成相同的散列。相似性哈希是一种语义标记,它们表明了不同的数据块之间的高度相关性。相似性去重,在图像存储等场景,依然能有较好的去重比例。

实现压缩/重删的同时保障性能以及稳定性是业界一直以来的难题,FOSS在自研架构层面就加入了压缩/重删层,通过不断优化,达成了压缩/重删对系统带来的性能影响非常小

04 发展展望

随着大数据、物联网、人工智能深度学习和数字化经济的爆炸式增长,个人和企业的数据比以往任何时候都多。使能这些数据,需要创新的高性能、大容量、低碳节能的存储产品和智能数据分析解决方案。高性能和绿色节能看似相斥,但通过存储分层方案,我们达成了完美的结合。

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

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

相关文章

团队数千人,苹果XR头显核心高管大曝光

上周&#xff0c;彭博社Mark Gurman从参与研发的相关人士了解到的消息&#xff0c;阐述了苹果XR头显开发简史。本周&#xff0c;继续公布了参与到苹果XR头显研发工作的一些关键岗位或高管人士。相关阅读&#xff1a;《苹果XR头显简史&#xff1a;现实困境与未来预期》 Mark Gu…

Flutter Overlay 你用上了么

Flutter Overlay 你用上了么 前言 Flutter中的Overlay是一个用于在屏幕上显示浮层的组件。它可以用来在应用程序中创建弹出窗口、提示框、菜单、对话框等等。 Overlay通常用于在用户与应用程序交互时显示临时性的UI元素&#xff0c;例如&#xff1a;用户点击按钮时显示下拉菜单…

3dMax一键窗户可入库插件使用方法详解

3dMax一键窗户(可入库)插件使用教程 3dMax一键窗户(可入库)插件,支持在选中的多边形上创建窗户模型,并可以自定义窗户形状,保存到库里下次使用。 【安装方法】 1.复制“窗户样本”文件夹到D盘根目录(D:\窗户样本) 2.拖动插件脚本到3dmax视口中打开即可。 【创建窗户】…

SolidWorks装配体中让弹簧随装配体运动的方法

弹簧是我们日常设计中最常用的几种零部件之一&#xff0c;但是弹簧不跟螺栓一样装好之后是相对静止的&#xff0c;弹簧在装配好后需要进行运动&#xff0c;在SolidWorks装配体中可以让弹簧跟随其他物体运动&#xff0c;操作分为三大步&#xff1a; 一、创建弹簧&#xff08;使…

微服务: Seata AT 分布式事务配置出现异常解决(相当全面)(下篇)

目录 1. 文章传送门 -> 上篇传送门: 微服务: Seata AT 分布式事务以及配置方式(上篇) -> 中篇传送门: 微服务: Seata AT springCloud整合分布式事务以配置方式(中篇) 2. 异常总结分类: 3. 解决上述问题: -> 解决上述问题一: 1. no available service null f…

面了一个测试工程师要求月薪23K,总感觉他藏了很多面试题...

最近有朋友去华为面试&#xff0c;面试前后进行了20天左右&#xff0c;包含4轮电话面试、1轮笔试、1轮主管视频面试、1轮hr视频面试。 据他所说&#xff0c;80%的人都会栽在第一轮面试&#xff0c;要不是他面试前做足准备&#xff0c;估计都坚持不完后面几轮面试。 其实&…

七人拼团系统开发模式,如何做到短短几个月就销售额上亿?

随着经济的迅速发展&#xff0c;市场上的商业模式也是层出不穷&#xff0c;而且各具特色&#xff0c;看得人眼花缭乱。最近又新出了一个七人拼团商业模式&#xff0c;不仅能够助力企业快速裂变获客&#xff0c;还能迅速提升产品销量&#xff0c;达到短短几个月就销售额上亿的“…

MariaDB 主从同步配置

1 服务器结构 角色ip地址安装教程主节点192.168.31.102CentOS-7 安装 MariaDB-10.8从节点192.168.31.103 2 原理&#xff1a; 原理&#xff1a; &#xff08;1&#xff09;master服务器将数据的改变记录到二进制binlog日志&#xff0c;当master上的数据发生改变时&#xff0c…

【连续介质力学】张量场

张量场 张量场表示张量 T ( x ⃗ , t ) T(\vec x, t) T(x ,t)在空间 x ⃗ \vec x x 和时间 t t t中如何变化&#xff0c;将张量场视为可微函数 如果一个张量场不依赖于时间&#xff0c;则此张量场称为定常场&#xff0c;例如 T T ( x ⃗ ) T T(\vec x) TT(x )&#xff1b;相…

如此优秀的低代码平台,佬们一起来体验一把!

前言&#xff1a;低代码平台是一种新兴的应用开发技术&#xff0c;将可视化建模、自动生成代码和开发者编写的代码结合在一起&#xff0c;使应用程序的开发变得更加快速、简单且高效。低代码平台的基本思想是通过消除繁琐的手动编码工作&#xff0c;来让开发者更好地专注于业务…

基于 Spring Boot + MyBatis Plus + Vue Element 实现的后台管理系统 + 微信小程序

管理后台的 Vue3 版本采用 vue-element-plus-admin &#xff0c;Vue2 版本采用 vue-element-admin 管理后台的移动端采用 uni-app 方案&#xff0c;一份代码多终端适配&#xff0c;同时支持 APP、小程序、H5&#xff01; 后端采用 Spring Boot、MySQL MyBatis Plus、Redis …

UnityVR--组件3--Line Renderer--线性渲染

目录 前言 Line Renderer组件介绍 Trail Renderer组件介绍 使用Line Renderer绘制线段 使用系统工具或自定义工具绘制线段 Trail Renderer简单制作子弹拖尾效果 前言 Line Renderer线性渲染组件用于在3D中渲染线段&#xff0c;如之前在小游戏中做过的激光门伤害&#xff0…

Axure设计—动态条形图(中继器)

本文将教大家如何用AXURE中的中继器动态条形图。 一、效果介绍 如图&#xff1a; 预览地址&#xff1a;https://i7x7i9.axshare.com 下载地址&#xff1a;https://download.csdn.net/download/weixin_43516258/87807039?spm1001.2014.3001.5503 二、功能介绍 简单填写中继…

PyQt5桌面应用开发(17):类结构+QWebEngineView

本文目录 PyQt5桌面应用系列PyQt5学习PyQt5类结构和帮助速查实现与解释最终界面和完整源代码界面完整的代码 总结 PyQt5桌面应用系列 PyQt5桌面应用开发&#xff08;1&#xff09;&#xff1a;需求分析 PyQt5桌面应用开发&#xff08;2&#xff09;&#xff1a;事件循环 PyQt5桌…

Spring 如何处理请求参数和表单数据

当我们开发 Web 应用程序时&#xff0c;处理请求参数和表单数据是必不可少的。Spring MVC 是一个流行的 Java Web 框架&#xff0c;提供了多种方式来处理请求参数和表单数据。本文将介绍 Spring MVC 中处理请求参数和表单数据的常用方式&#xff0c;并提供相应的代码示例。 处…

Redis数据结构-SDS

一、SDS&#xff08;Simple Dynamic String&#xff0c;简单动态字符串&#xff09; Redis没有使用C语言传统的字符串表示方式&#xff08;以’\0’结尾的字符数组&#xff09;&#xff0c;而是自己实现了sds的抽象类型&#xff0c;Redis默认使用sds作为字符串的表示。 set ms…

新视野(2023.5.5-2023.5.12)

一、知识&#xff1a; 媒体账号买卖网站 A5新媒体交易&#xff1a;https://xmt.a5.net/ 新媒虎:https://www.xinmeihu.com/ 二、资讯&#xff1a; GPT最大的竞争对手Claude宣布支持100K的上下文&#xff01;基本上一本中篇小说都能塞进去了&#xff0c;你再不需要ChatPDF这种…

【框架源码】手写Spring框架IOC容器核心流程

要是想要了解Spring IOC底层&#xff0c;首先我们就得先了解什么是IOC。 IOC就是控制反转&#xff0c;把对象创建和对象之间的调用过程交给Spring进行管理。 使用IOC目的就是之前我们创建对象的方式都是用new的方式创建&#xff0c;这个方式有个缺点&#xff0c;被创建对象的…

【halcon资料】取出区域的轮廓上所有转折点

一、说明 在区域运算的时候&#xff0c;有时候需要用图形的顶点来描述&#xff0c;比如&#xff0c;两个图中对象需要对齐&#xff0c;或者仿射变换&#xff0c;于是特征点是需要提取的。本文给出一个提取顶点的示例。 二、算子 1.1 get_region_polygon算子 &#xff08;1&a…

2023互联网Java面试真题1000道(附答案)

前言 2023 跳槽不迷茫&#xff0c;大家可以先收藏再看&#xff0c;后续跳槽都能用上的&#xff01; Java程序员绝大部分工作的时间都是增删改查&#xff0c;很多人觉得这项工作没什么技术含量&#xff0c;任何一件事情都要站在不同的角度去考虑&#xff0c;对于大部分的java程序…