写点什么

第一期观点|革命性软件定义存储 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:053571

评论

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

软件测试/测试开发丨Pytest结合数据驱动

测试人

Python 程序员 软件测试 数据驱动 pytest

Android 组件化神器之Arouter

java易二三

Java 程序员 计算机

加强预算管理一体化,走进全面预算管理的数智化时代

智达方通

全面预算管理 预算管理 预算管理一体化

MySQL运行时的可观测性

GreatSQL

数据库 greatsql

2023上海国际智慧停车展览会

AIOTE智博会

城博会 智慧停车展 智慧停车展会 智慧停车博览会

Kafka 开飙了!5分钟,带你体验一把“速度与激情”

java易二三

Java Docker 计算机

Bartender 4 for Mac:mac菜单栏应用管理软件

胖墩儿不胖y

Mac软件 菜单栏管理

校源行丨开放原子开源基金会赴南大和南理工走访交流

开放原子开源基金会

开源

使用Dubbo这么久,才知道这些功能竟如此“亮眼”

java易二三

程序员 dubbo 计算机

稳定高效!NineData x SelectDB 完成产品兼容互认证

NineData

数据管理 大数据分析 SelectDB NineData 产品兼容互认证

GPT-4 全面开放,首部 AIGC 监管法规出台,字节入局大模型 | AIGC 月报速览

码上跃见

AI AIGC GPT #科技 GPT-4

应用管理平台Walrus开源,构建软件交付新范式

SEAL安全

开源软件 企业号 8 月 PK 榜 Walrus

代码随想录Day46 - 动态规划(八)

jjn0703

软件测试/测试开发丨Vuetify框架的使用

测试人

vue.js 程序员 软件测试 vuetify

Spring 中 @Primary 注解的原理是什么?

江南一点雨

spring

手机直播源码开发,协议讨论篇(三):RTMP实时消息传输协议

山东布谷科技

软件开发 RTMP 源码搭建 手机直播源码 实时消息传输协议

我们招聘啦!(Java、测试、后端)

数新网络官方账号

大数据 数据仓库 企业招聘

GC的前置工作,聊聊GC是如何快速枚举根节点的

Java随想录

Java JVM

我可能开发了世界上最快的通用排序算法,比快排快 60%

java易二三

Java 程序员 计算机

Java中的常量:让程序更加稳定和可维护

java易二三

Java 程序员 常量 计算机

在探索的道路上持续“做对”,火山引擎A/B测试成为这家企业数字基建

字节跳动数据平台

大数据 A/B 测试 企业号 8 月 PK 榜

IPD(集成产品开发)与CMMI的对比

禅道项目管理

中型敏捷GenAI模型:面向企业垂直领域应用的实用型AI

Baihai IDP

AI AIGC LLM 白海科技 敏捷AI

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