NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

第一期观点|革命性软件定义存储 HBlock,极致易用背后的技术解析

天翼云

  • 2023-09-05
    北京
  • 本文字数:3106 字

    阅读完需:约 10 分钟

大小:1.69M时长:09:51
第一期观点|革命性软件定义存储 HBlock,极致易用背后的技术解析

近日,天翼云联合 InfoQ 举办了以“存储难题新解法,揭秘极致易用的 HBlock”为主题的线上技术分享会”。天翼云国际业务事业部存储产品线总监潘亚莲与研发专家武志民参与了第一期分享,以“革命性软件定义存储 HBlock,极致易用背后的技术解析”为主题,讲解了 HBlock 在产品理念、应用场景、技术架构设计等方面的内容,本文将对其观点进行详细阐述。

天翼云推出革命性软件定义存储 HBlock  


IDC 预测,到 2025 年我国数据量将增长到 48.6ZB,这给企业存储系统的容量、性能、运维、成本、灵活性等维度带来全方位挑战。此外,由于过度配置、数据孤岛、冗余备份、低访问速度、低效搜索,以及中断性的传输和迁移等操作,机房存在存储资源利用率低的问题。


为了解决异构存储和数据孤岛给企业带来的存储高成本、低效率的难题,天翼云研发出业界首款存储资源盘活系统——HBlock。


HBlock 整体视图


HBlock 是一款全用户态的软件定义存储产品,能够和底层基础设施完全解耦,和服务器上现有的业务并存,可以把通用的 X86、ARM、龙芯等不同架构的服务器和它上面管理的存储资源统一管理,转换成高性能的虚拟存储阵列,通过标准的 iSCSI 协议提供分布式块存储服务。

高效管理,轻松盘活  


用户可以通过 HBlock 对自己的存储资源进行全面高效的管理与使用,这些是通过管理平面各种功能来实现的。从管理平面上看,HBlock 分为四层:访问接入层、校验层、服务层和数据层。


HBlock 管理平面


在访问接入层,用户可以使用 API、命令行、管理控制台的方式,对 HBlock 进行灵活、直观、全面的管理。


在校验层,HBlock 采用 HTTPS、加密鉴权以及接口校验的方式来确保接入的安全。


在服务层,用户可以根据自己本地硬件资源来选择创建单机版或集群版服务端,3 分钟就可完成部署,对存储资源进行创建、删除、扩容、统计、监控等操作。使用过程中出现任何问题,天翼云工程师都可以远程协助,接入到系统进行故障诊断排查,若考虑到隐私问题,也可以将运行日志发送给天翼云工程师进行排障。用户也可以设置邮件地址,来及时接收系统的告警信息。


在数据层,HBlock 对用户的数据进行统一管理,通过独特的技术架构实现高性能。

HBlock 极致易用背后的关键技术  


HBlock 不光为用户提供了高效、全面、灵活的管理手段,还提供了极高的性能。这一切的背后,是优秀的技术架构。HBlock 的技术架构从上到下分为三层:访问层、存储服务层和操作系统及硬件层。


HBlock 技术架构


最上方是访问层,通过 iSCSI 提供块存储服务,通过 API、命令行、Web 界面提供管理服务,还支持 OpenStack、K8S 的 CSI driver 等管理方式。


中间是存储服务层,其核心是分布式租约模块,它是天翼云完全自研的,不要求时钟强一致或频率强一致,就可以给数据服务和管理服务,提供一致性保证。


存储服务层还提供利旧检测功能,用户在安装 HBlock 之前,可以利用这个工具对磁盘、网络、CPU、内存,从多个性能维度进行综合检测,让用户尽早的对各个部件的性能有基准的认识,识别出潜在的性能短板。


存储服务层的另一个重要模块是缓存,这是 HBlock 高性能优化的重点,后面会详细介绍。


存储服务层还包括 HA、数据冗余、故障域、数据重构等模块,提供了高可用、高可靠保障。IO 调度、索引、数据均衡模块,根据智能调度算法,保证各个节点、各个磁盘负载均衡,及时移出出现性能瓶颈的组件。


最下方操作系统和硬件层,HBlock 做到了真正的硬件异构。例如,对于不同规格的磁盘,在分配数据的时候,会根据磁盘的容量、负载、性能表现、网络时延等信息去动态分配不同权重,然后计算出不同分配方式,保证各个组件在集群里发挥出最好的性能。

写缓存的多模式匹配  


HBlock 作为块存储产品,其性能最直观地反映在数据读写能力上。HBlock 是通过写缓存与读缓存的设计来实现高性能的,接下来,我们就详细了解一下 HBlock 写入与读取数据的过程。


首先,看一下写入数据流:


客户端发起写请求,数据正常放到写缓存以后,继续往下到第二个备节点的写缓存,写成功最终才会向客户端反馈成功。那这样既可以保证数据在两个节点都有(避免了单点故障),又可以保证数据不需要落盘,到缓存就结束,IO 路径也可以尽量短,这样写的延时是相对比较低的。这是 HBlock 写入的基本流程,也被称为 WriteBack。


Write back


数据在写缓存里,根据不同的策略执行落盘。有定量策略,比如脏数据达到一定的比例后就会落盘,有定时策略,比如脏数据达到一定的时间了就落了。还有主动策略,比如客户端如果主动的发过来 sync 命令,也会落盘。落盘后会把数据放到读缓存,之后更新索引。


可能有用户会担心:虽然避免了单点故障,但是如果数据已经写入内存返回写入成功,但还未落盘这段时间,集群整体发生故障,数据一样会丢。


针对这种担心,HBlock 设计了另外两种写缓存模式,WriteThrough、WriteAround


WriteThrough 模式下,数据到写缓存以后会继续等待数据落盘,等到数据真正落完盘以后再去向客户端反馈成功。


WriteAround 跟 WriteThrough 很类似,唯一的区别就是最后一步,它在落完盘以后数据不会进入到读缓存。


WriteThrough 与 WriteAround


这三种不同的写缓存,它们有各自的适用场景。比如 WriteBack,它的数据都是到内存就结束,所以它的读写性能相对来说比较高。WriteThrough 和 WriteAround 每次数据都要落盘,所以它的写性能相比 WriteBack 来说要低一些。对于 WriteAround 来说,因为最后数据不进读缓存,所以它更适合于写多读少的场景,相应它占用的内存也是最少,所以在具体使用的时候,可以根据不同的业务场景去做不同的配置。

可以将三种缓存模式总结成下表:



关于 WriteThrough 和 WriteAround,因为每次写都会落盘,会明显增加系统调用,更严重的是会增加对磁盘 sync 的次数。因此 HBlock 设计了自适应的写缓存,根据客户端的并发情况和磁盘的负载表现,去动态的调整对 sync 合并的时机,去平衡写请求等待时间和底层磁盘压力。

读缓存与预读器的优化机制  


了解完数据写入流程,接着,看一下数据读取流程:


读请求到达以后,会依次从写缓存、读缓存中寻找数据。若没找到数据,就会到相应的磁盘上直接读,HBlock 会根据网络距离和节点负载选择最合适的节点。当它读完以后会把数据放到读缓存里,最后就可以向客户端返回数据了。


考虑到时间局部性原理,刚访问过的数据,将来可能还会被访问,这些数据就进入读缓存。根据不同的场景用户可以调整读缓存的大小或直接关掉。


考虑到空间局部性的原理,刚读过的数据它相邻位数据也有可能会被读到,所以会由预读器来判断是否需要从磁盘里提前把这些数据读上。通过预读器,HBlock 大幅度提升了客户端小 IO 的顺序读的性能,减少了客户端读请求的响应延时,避免对磁盘进行频繁的小 IO 的操作,更好的发挥磁盘的性能。


以上就是 HBlock 高性能背后的各种缓存机制,它们也确实发挥出很好的效果:块存储主要的性能指标是大 IO 的带宽和小 IO 的 IOPS,与开源的 Ceph 进行对比,从带宽的角度看,HBlock 的写性能稳定优于开源 Ceph,从 IOPS 的角度看,HBlock 的写性能更是可以达到开源 Ceph 的 3-5 倍。

福利来了!HBlock 尝鲜活动震撼发布!


为帮助更多政企客户高效、低成本搭建软件定义存储平台,天翼云推出了 HBlock 尝鲜活动,尝鲜期内用户将有机会免费使用 HBlock。活动规则如下:


报名时间:2023.8.21-2023.10.31

用户特权:尝鲜期报名且激活授权的用户,将获得上限 1PB、1024 节点的永久免费 License,欢迎企业客户、集成商伙伴踊跃报名!

特别说明:免费尝鲜版本为 HBlock 3.4,HBlock 支持 PB 级部署,用户需自行准备硬件设备,天翼云提供 HBlock 重大缺陷修复、邮件和电话咨询服务,但不提供产品新增功能,尝鲜期内报名未激活授权或尝鲜期后报名需正常付费。



2023-09-05 15:052961

评论

发布
暂无评论
发现更多内容

华为云开源项目OpenTiny中TinyVue有什么优势?

英勇无比的消炎药

开源 Vue 组件库

终于有人把动态规划、冒泡排序、二叉树、链表、栈全部讲清楚了

Java你猿哥

数据结构 算法 二叉树 排序 LeetCode算法

超级详细|Linux系统下从0到1的玩法大全

浅羽技术

Linux unix 操作系统 命令 三周年连更

全栈开发实战|Vue进阶——使用静态模块打包工具webpack

TiAmo

Vue webpack 三周年连更 静态模块打包

《人间失格》

后台技术汇

三周年连更 人间失格

The Beacon链游NFT系统开发技术

薇電13242772558

NFT

超简单!Java 项目自动生成接口文档教程

Apifox

Java 接口文档 API 文档生成 自动生成

GitHub爆款!Java性能优化:轻松道破软件性能调优,不止搞定JVM

Java你猿哥

Java JVM Java性能优化

为什么说网络安全行业是IT行业最后的红利?

网络安全学海

网络安全 安全 信息安全 渗透测试 WEB安全

ARB链质押挖矿代币空投游戏dapp系统开发合约定制

开发微hkkf5566

生物计算大模型技术在药物研发领域的应用

Baidu AICLOUD

生命科学 PaddleHelix

中国边缘云公有云服务市场 Top2,百度智能云让智算无处不在

Baidu AICLOUD

分布式云

品牌活动|行云创新出席“新工业·智物联”全国巡回 CEO 峰会

行云创新

行云创新 新工业 智物联 全国巡回CEO峰会珠海站

阿里“妈宝级”之作,Kubernetes原理剖析与实战应用手册,太全了

做梦都在改BUG

Java Kubernetes k8s

Mybatis返回集合类型到底是空集合还是null?源码解读

做梦都在改BUG

Java 源码 mybatis

ChatGPT及大模型专题研讨会在蓉成功举办共探前沿技术与产业发展

NLP资深玩家

天呐!我真的没想到推特GIF动图保存到手机相册竟然简单几步就能完成!

frank

twitter

上海首个大模型产业发展研讨会圆满落幕,众顶尖专家共探大模型产业

NLP资深玩家

每个Java程序员都必须知道的四种负载均衡算法

做梦都在改BUG

Java 负载均衡 负载均衡算法

拿来吧你!保姆级Docker底层原理及源码实战手册,上线点赞破10W

做梦都在改BUG

Java Docker 容器

我认真总结并分析了Spring事务失效的十种常见场景

做梦都在改BUG

Java spring Spring事务

python中对象引用 | python小知识

AIWeker

Python python小知识 三周年连更

Java中的「接口」到底是什么?

海拥(haiyong.site)

三周年连更

【Linux】firewall-cmd之防火墙简介及命令详解【附加实战⭐建议收藏!!⭐】

A-刘晨阳

Linux 防火墙 Firewalld防火墙 三周年连更

JSF源码分析(一)

京东科技开发者

spring jsf 企业号 4 月 PK 榜

Typescript- 数据类型

格斗家不爱在外太空沉思

typescript 三周年连更

GPU 加速药物研发与基因组学分析

Baidu AICLOUD

生命科学

面试官:介绍一下什么是缓存雪崩、缓存击穿、缓存穿透?

Java你猿哥

redis 面试题 缓存穿透 缓存击穿 缓存雪崩

浅谈智能语音交互

六月的雨在InfoQ

语音识别 语音合成 三周年连更 智能语音交互

大语言模型时代狂飙以来,到底是谁在让你失业|社区征文

小诚信驿站

三周年征文

一文详解RocketMQ-Spring的源码解析与实战

华为云开发者联盟

开发 华为云 华为云开发者联盟 企业号 4 月 PK 榜

第一期观点|革命性软件定义存储 HBlock,极致易用背后的技术解析_云计算_InfoQ精选文章