近日,天翼云联合权威科技媒体InfoQ举办了以“新存储,更轻量”为主题的线上技术分享会。天翼云存储产品线总监武志民讲解了HBlock的创新设计和技术。

高性能·高可用·高可靠

自研创新解决存储技术难题 

天翼云自主研发的业内首款存储资源盘活系统HBlock能够与底层基础设施完全解耦,同服务器上现网业务并存,将x86、ARM、龙芯等异构通用服务器中的存储资源统一管理,通过标准的iSCSI协议提供分布式块存储服务。

在性能方面,HBlock单卷IOPS可达15万次、读写延迟小于200微秒,这要归功于自研的分布式多控架构和智能调度算法,以及多模式写缓存与读缓存的设计。写缓存方面,HBlock具有三种模式,可以根据不同场景的读写需求动态调整。读缓存方面,HBlock采用按需更新、分段加锁、高效淘汰算法和智能预读器等多重机制,提升内存利用率、提高缓存命中率,并优化高并发场景下的数据访问性能。

HBlock的缓存设计

HBlock通过多重机制确保高可用性:采用一主多备架构,无需外部时钟服务器,实现秒级故障切换,保证数据一致性和无丢失;优化写入速度,在存储紧张时平滑降速,避免业务中断,并通过限速管理内存和重构操作,确保在高负载下稳定运行。

HBlock独创的副本折叠技术允许在一个故障域放多个副本来提高小规模集群的数据高可靠性。例如,只有三个故障域时,可以每个故障域放置两个副本,将EC2+1扩展为EC4+2,得盘率不变的情况下显著提升数据的容错能力,在扩容时,HBlock可智能调整数据分布,以最大化故障域的利用。

HBlock的副本折叠设计

HBlock通过创新设计,全面解决了存储系统中的种种难题,真正实现了“高性能·高可用·高可靠”的卓越存储解决方案。

低门槛·巧分配·超灵活

轻量设计定义存储未来形态

HBlock使用门槛极低,安装包只有170MB左右,1核4GB内存即可部署,可安装在任何主流Linux操作系统上,3个命令即可完成安装,3分钟建立数据中心级别集群,轻松发挥硬件资源的全部潜力。

HBlock的独特的存储引擎设计,可将元数据和数据分配到最佳位置,实现系统轻量化。

HBlock多级元数据管理

首先,HBlock设计了一级索引(记录iSCSI卷逻辑地址与数据位置)、二级索引(汇总一级索引,提高查询效率)和三级索引(记录集群内数据分布,缓存中存储,快速定位数据)的多级索引架构。其次,索引缓存机制优化了数据访问,通过逐级访问减少对元数据服务的依赖。第三,元数据持久化采用与数据相同的保护方式,确保数据和索引的容错能力。最后,HBlock支持轻量化混合部署,仅需三个节点即可完成元数据、iSCSI和数据服务的部署,充分利用硬件资源。

HBlock灵活的多存储池功能可以充分发挥硬件潜力,可统一管理不同规格的硬件设备,根据性能和容量创建多种存储池,例如SSD高性能池和HDD容量池,也可创建跨节点高速缓存池,提高资源共享效率。

HBlock将轻量化与高效能相结合,彻底革新了存储的部署和管理方式,重新定义了未来存储系统的形态。

HBlock凭借卓越的创新设计和技术实现,不仅解决了存储系统中的性能、可用性和可靠性难题,更开创了存储新纪元,重新定义了分布式存储的未来形态。未来,HBlock将持续推动行业进步,为各行各业的数字化转型注入动力,释放数据的巨大潜能,为创新应用场景的实现提供坚实基础,助力企业开启更广阔的数字化发展新篇章。

天翼云HBlock众测活动火热进行中

为了让“轻量存储”走进更多企业,InfoQ和天翼云联合举办“HBlock有奖众测活动”,欢迎广大存储Geek踊跃报名,深度体验轻量存储带来的不一样,将使用心得发布在InfoQ写作社区,即可参与评选并获得丰厚礼品!

数据存储“取经路”,HBlock轻松“渡”!的更多相关文章

  1. 物联网架构成长之路(33)-EMQ数据存储到influxDB

    一.前言 时隔一年半,技术变化特别快,学习也要跟上才行.以前写过EMQ数据转存问题,当时用了比较笨的方法,通过写插件的方式,把MQTT里面的数据发送到数据库进行存储.当时也是为了学习erlang和em ...

  2. 冰河,能不能讲讲如何实现MySQL数据存储的无限扩容?

    写在前面 随着互联网的高速发展,企业中沉淀的数据也越来越多,这就对数据存储层的扩展性要求越来越高.当今互联网企业中,大部分企业使用的是MySQL来存储关系型数据.如何实现MySQL数据存储层的高度可扩 ...

  3. Apache Cassandra——可扩展微服务应用程序的持久数据存储

    通过使用微服务,团队可以更快地响应变化,而无需改动整个应用程序.利用微服务,开发团队可以构建出具有鲁棒性和可扩展性的系统,从而适应当今应用程序的需求.   然而,使用微服务也带来了一系列挑战.在本文中 ...

  4. Android 数据存储五种方式

    1.概述 Android提供了5种方式来让用户保存持久化应用程序数据.根据自己的需求来做选择,比如数据是否是应用程序私有的,是否能被其他程序访问,需要多少数据存储空间等,分别是: ① 使用Shared ...

  5. ios中常见数据存储方式以及SQLite常用的语句

    在iOS中,根据不同的需求对应的有多种数据存储方式: 1.NSUserdefaults  将数据存储到沙盒中(library),方便易用,但是只能存储系统提供的数据类型(plist),不能存储自定义的 ...

  6. 第十二章:Android数据存储(下)

    一.SQLite介绍 提到数据存储问题,数据库是不得不提的.数据库是用来存储关系型数据的不二利器.Android为开发者提供了强大的数据库支持,可以用来轻松地构造基于数据库的应用.Android的数据 ...

  7. Android实现数据存储技术

    转载:Android实现数据存储技术 本文介绍Android中的5种数据存储方式. 数据存储在开发中是使用最频繁的,在这里主要介绍Android平台中实现数据存储的5种方式,分别是: 1 使用Shar ...

  8. iOS数据存储之对象归档

    iOS数据存储之对象归档 对象归档 对象归档是iOS中数据持久化的一种方式. 归档是指另一种形式的序列化,但它是任何对象都可以实现的更常规的类型.使用对模型对象进行归档的技术可以轻松将复杂的对象写入文 ...

  9. android的数据存储方式

    数据存储在开发中是使用最频繁的,在这里主要介绍Android平台中实现数据存储的5种方式,分别是: 1 使用SharedPreferences存储数据 2 文件存储数据 3 SQLite数据库存储数据 ...

  10. Android的数据存储方式(转)

    数据存储在开发中是使用最频繁的,在这里主要介绍Android平台中实现数据存储的5种方式,分别是: 1 使用SharedPreferences存储数据 2 文件存储数据 3 SQLite数据库存储数据 ...

随机推荐

  1. Java线程池Executors

    一 简述 线程池,作为一个管理一组同构工作线程的资源.接受提交的任务,利用线程池中的线程进行工作的处理. 在另一篇<Java多线程设计模式(4)线程池模式>利用非Executors描述了线 ...

  2. 利用 word VBA 将投标文件偏离参数表列数据拷贝至技术偏差表中

    使用 vba 将正偏离参数表的第一列信息复制粘贴至对应的技术偏离表的第4列中.需要同时打开两个 word 文件,在技术偏差表中打开 VBE(可以用ctrl + f11 快捷键),插入模块. 忽略格式的 ...

  3. 设计模式【3.3】-- CGLIB动态代理源码解读

    cglib 动态代理 cglib介绍 CGLIB 是一个开源项目,一个强大高性能高质量的代码生成库,可以在运行期拓展 Java 类,实现 Java 接口等等.底层是使用一个小而快的字节码处理框架 AS ...

  4. chrome浏览器设置允许跨域

    前情 在访问测试搭建的测试环境的时候,发现接口因为跨域全部失败了,服务端又不想设置允许跨域,又急于使用,于是想到是不是可以使用跨域浏览器 放开chrome的跨域设置步骤 复制一个chrome快捷图标, ...

  5. 优雅地打印 HEX 数据

    转载至知乎Murphy https://zhuanlan.zhihu.com/p/320391096 前言 在调试的时候经常要打印内存里的数据,来看看数据及格式是否在预期范围内:以及在调试二进制协议的 ...

  6. win10重装如何跳过微软账号直接设置本地帐户

    ​在添加你的帐户界面,选择脱机帐户 第二个页面,选择有限的体验 第三个页面,设置自己本地的用户名 第四个页面,设置自己本地的密码

  7. 工欲善其事,必先利其器。如何玩转 VS Code?

    Visual Studio Code 作为广受好评的开发工具,已经被越来越多的开发者当作首选的开发工具.然而,你真的了解 VS Code 了吗?你真的会使用 VS Code,把 VS Code 的强大 ...

  8. SpringBoot:通过多个Context限制Bean的活动范围

    从Spring的包扫描说起 SpringBoot会扫描SpringBootApplication注解标注的类,他所在的包以及这个包的子包,把那里面的Bean注册到applicationContext中 ...

  9. MessageConsumer

    @Slf4j @Component public class MessageConsumer { @Autowired private PpcRequestMessageListener ppcReq ...

  10. 冒泡排序------python实现

    if __name__ == '__main__': ''' 算法描述 1.比较相邻的元素,更具大小交互位置 2.对每一对相邻元素作同样的工作,从开始第一队到结尾的最后一对,即可选出最大的数 3.所有 ...