分布式存储经过多年的发展,已经逐步形成了成熟的技术体系。现阶段的创新大多是基于已有技术进行细微改进,往往不足以被称为“突破性创新”。不过,最近天翼云存储资源盘活系统 HBlock 异军突起,引起了很多人的关注。有人说它是存储界的 Docker,把轻量做到了极致;也有人说它是一个分布式块存储引擎。天翼云存储资源盘活系统 HBlock 本质上更像是一个软件定义的存储集群控制器,只不过它把易用性、灵活性、兼容性做到了极致,从而在各路人马中大显身手。最初,存储系统都是以硬件形态交付的,例如,我们以前购买的磁盘阵列就是硬件产品。后来,软件定义存储出现了,其理念是以软件的形态交付存储系统,并宣称在任何通用服务器上可以安装。世界上号称做软件定义块存储的厂商中,除了 HBlock 以外,目前没有见过任何一家厂商会把存储软件放在官网供用户下载试用。这就奇怪了,既然软件相对于硬件的优势就是零成本分发,为什么不直接让用户下载呢?如果你去问这些做软件定义存储的厂商,他们会说,“为了避免竞争对手挑毛病,所以就不公开下载。”乍听有道理,但细想就站不住脚:第一,如果竞争对手有心研究你的产品,难道拿不到你的产品吗?第二,甲骨文的数据库、微软的 SQL 服务器、IBM 公司的 DB2 等企业级数据库软件也是竞争关系,不都是公开让用户下载的吗?如果真的突破“重重阻碍”,拿到了他们的软件,你会发现这些软件个个都是好几个 GB,这是为什么呢?因为这些软件,与其说是存储软件,还不如说是“具有存储功能的定制的 Linux 操作系统”!
说到这里,相信读者已经明白了。它们既然是一个定制的 Linux 操作系统,就必然存在以下问题:第一,这种存储软件只能安装在裸机上,这就意味着硬件兼容性问题无法避免。有些厂家提供了硬件兼容性列表,但由于这些厂家本身品牌不像 RedHat、Ubuntu 那么大,没有服务器厂家主动适配它们的软件,所以它们的兼容性列表往往跟不上服务器厂家的产品更新速度。于是,这些厂家不敢把软件公开下载,怕万一客户安装失败,就失去了对软件的兴趣,因此美其名曰“为了给客户提供更好的服务,我们上门安装”。第二,由于 Linux 内核是基于开源协议 GPL v2 发行的,所以基于 Linux 内核进行的二次开发,都必须二次开源。但这些厂家不愿意二次开源,又怕被人举报,所以不敢提供公开下载,仅在用户可控的情况下,才向用户提供产品。也许你会问,把软件预装到硬件上,作为软硬一体的形式交付给用户,是不是可以绕开开源协议 GPL?答案很明确——不行,因为此时的硬件就相当于刻有软件的光盘,交付硬件也是分发软件,也在二次开源范围内。所以,国内那么多存储厂家,可以在海外销售的存储软件或硬件的屈指可数。既然 Linux 操作系统那么大,又存在上述种种不利,为什么存储软件还要把它打包进来呢?很多存储厂商都是在 Ceph 上进行二次开发,但 Ceph 并没有提供完整的存储解决方案,只是提供了一个存储引擎,很多事情还得自己做,其中最为关键的就是 iSCSI 协议的实现。可要实现一个完整的 iSCSI 协议谈何容易,于是很多厂商都想走捷径,在 Linux 内核的 LIO 模块的基础上稍作修改,就搞定了。也正是由于这样,存储产品就离不开 Linux 内核了,最终产品就变成了“具有存储功能的 Linux 操作系统”。这就是走捷径导致了产品同质化。当所有的存储厂商还沉迷于为下一代硬件优化软件性能时,天翼云认为,今天的硬件资源远远未到充分利用的程度,如果能将其盘活,不仅有巨大的商业价值,更是履行央企践行节能社会的职责担当。基于这一独特的价值主张,HBlock 把轻量化放到了首位,使得它在灵活性、兼容性方面开了先河,解决了很多以前想解决而难以解决的问题。
下面是 HBlock 原理图。与众不同的是,HBlock 是一组用户态进程,对下,它可以纳管本地存储空间;横向,它与其他节点上的 HBlock 进程通信从而组成存储集群;对上,它通过 iSCSI 协议向主机提供虚拟盘。与 HBlock 简洁的设计原理相对应,它在产品特性上的优势可谓骈兴错出。HBlock 的安装包只有 170M,但却包含了一个完整的分布式块存储所需要的一切,包括面向普通用户的 Web 门户,高级用户的命令行,和面向程序员的编程接口。其次,只要 1G 内存、5G 硬盘空间就可以安装运行 HBlock,这意味着 HBlock 可以在任何档次的服务器上运行,例如,开发者个人在 Windows 11 上的 Ubuntu 虚拟机里也能正常安装运行。HBlock 是一个完全运行在用户态的软件,安装和运行都无需 root 权限,就像普通的程序一样,可与其他程序运行在同一操作系统中。只要 Kill 掉进程, HBlock 就停止运行了;只要删除相关目录,HBlock 就完全从系统中消失了;更有趣的是,只要把相关目录复制走,整个分布式存储集群就被复制走了。是不是像极了 Docker?HBlock 支持非对称集群,即不同的 Linux 版本、不同的 CPU 指令集架构、不同的处理器核心数、不同的内存、不同的硬盘数、不同的硬盘剩余容量、不同的网卡速率,无论是物理机、虚拟机、或是容器,只要 IP 层互通,就可以组成一个集群。这种极致的兼容性与灵活性使得 HBlock 无所不能装,哪儿都可以用。每款产品都会说它自己稳定、性能好。既然真的那么好,为什么不让大家下载亲自感受呢?而 HBlock 就大大方方让你下载,连你是谁都不问。这就是对质量有信心底气的表现。不得不说这种态度让人好感倍增。2. 在弱网、弱盘、弱算的情况下,保证不丢数据,且跑出硬件性能的上限;3. 开箱性能比开源的 Ceph 快 1-3 倍,能满足绝大部分场景需求;4. 支持任意大比例纠删码,数据冗余开销不到 1%。经过实际测试,性能和稳定性的确不错。建议大家都测试一下。HBlock 提供完备的 API,管理门户、OpenStack Cinder 和 K8s CSI 驱动,都可以基于这套 API 开发。所以,用户也可以基于这套 API 把 HBlock 与自有系统进行集成,或者定制自己风格的管理界面。说了这么多,绿色轻量的 HBlock 有哪些场景适用呢?HBlock 可以被安装在任何服务器中,与任何服务器组成存储集群,其强大的“野外生存”能力使得它可以到处发光发热。利用 HBlock 纳管各类服务器中的空闲存储空间,整合成存储池,并通过 iSCSI 协议向其他主机提供高可用高性能的虚拟盘,提升存储资源的利用率。例如,很多公司用 HBlock生成的虚拟盘存储备份数据。将 HBlock 与应用节点混合部署,利用 HBlock 纳管应用节点的物理盘,并把所形成的虚拟盘又挂回到应用节点本地,使得应用程序访问的是高可用的虚拟盘。通过这种方法,一方面,让应用程序面对的是“不会坏”的虚拟盘,解决了分布式系统的存储高可用问题;另一方面,HBlock 小型轻量,可与应用混合部署,可以直接把应用节点自带的存储空间(甚至是系统盘)整合成高可用的虚拟盘,连额外的硬盘都不需要,大幅降低成本。所以,HBlock 尤其适合于给小型分布式系统当存储底座。例如,将 HBlock 与天翼云并行文件系统 HPFS 混合部署,替代了外置硬盘阵列,可以大幅度降低存储的总体建设成本。不仅如此,也有很多提供边缘计算、各类一体机的厂家,利用 HBlock 纳管一体机的物理盘,然后把应用部署在 HBlock 生成的虚拟盘上,再利用 K8s 对计算任务的调度能力,轻松实现了边缘系统的高可用,并且无需额外购买存储。还可以通过 Helm 对 HBlock 进行打包,实现在 K8s 平台上的一键部署。然后把 HBlock 生成的虚拟盘挂载到其他容器上,实现了整个容器集群的数据持久性和高可用。通过 HBlock 纳管新建的存储资源池,使得这些存储服务器的实际管控权仍在用户手中,用户可以在上面部署其他的应用,以充分发挥硬件的价值。否则,这些服务器只是在财务上属于用户,但用户只能通过管理界面进行有限的操作,失去了对设备的管理权。在全世界范围内检索了一番后,别说没见到一样的存储软件,连类似的也没找到。只能感叹:国企发起飙来,也是蛮厉害的。
好啦,今天的内容分享就到这,感觉不错的同学记得分享点赞哦!
PS:CSDN 企业招聘 持续分享程序员学习、面试相关干货,不见不散!