Py学习  »  docker

核心技术无捷径,存储界的Docker,他们把轻量做到了极致!

程序员好物馆 • 1 年前 • 430 次点击  
分布式存储经过多年的发展,已经逐步形成了成熟的技术体系。现阶段的创新大多是基于已有技术进行细微改进,往往不足以被称为“突破性创新”。
不过,最近天翼云存储资源盘活系统 HBlock 异军突起,引起了很多人的关注。有人说它是存储界的 Docker,把轻量做到了极致;也有人说它是一个分布式块存储引擎。天翼云存储资源盘活系统 HBlock 本质上更像是一个软件定义的存储集群控制器,只不过它把易用性、灵活性、兼容性做到了极致,从而在各路人马中大显身手。

什么是软件定义存储?
最初,存储系统都是以硬件形态交付的,例如,我们以前购买的磁盘阵列就是硬件产品。后来,软件定义存储出现了,其理念是以软件的形态交付存储系统,并宣称在任何通用服务器上可以安装。
为什么存储软件都不能直接下载?
世界上号称做软件定义块存储的厂商中,除了 HBlock 以外,目前没有见过任何一家厂商会把存储软件放在官网供用户下载试用。这就奇怪了,既然软件相对于硬件的优势就是零成本分发,为什么不直接让用户下载呢?
如果你去问这些做软件定义存储的厂商,他们会说,“为了避免竞争对手挑毛病,所以就不公开下载。”乍听有道理,但细想就站不住脚:第一,如果竞争对手有心研究你的产品,难道拿不到你的产品吗?第二,甲骨文的数据库、微软的 SQL 服务器、IBM 公司的 DB2 等企业级数据库软件也是竞争关系,不都是公开让用户下载的吗?
如果真的突破“重重阻碍”,拿到了他们的软件,你会发现这些软件个个都是好几个 GB,这是为什么呢?因为这些软件,与其说是存储软件,还不如说是“具有存储功能的定制的 Linux 操作系统”!
说到这里,相信读者已经明白了。它们既然是一个定制的 Linux 操作系统,就必然存在以下问题:
第一,这种存储软件只能安装在裸机上,这就意味着硬件兼容性问题无法避免。有些厂家提供了硬件兼容性列表,但由于这些厂家本身品牌不像 RedHat、Ubuntu 那么大,没有服务器厂家主动适配它们的软件,所以它们的兼容性列表往往跟不上服务器厂家的产品更新速度。于是,这些厂家不敢把软件公开下载,怕万一客户安装失败,就失去了对软件的兴趣,因此美其名曰“为了给客户提供更好的服务,我们上门安装”。
第二,由于 Linux 内核是基于开源协议 GPL v2 发行的,所以基于 Linux 内核进行的二次开发,都必须二次开源。但这些厂家不愿意二次开源,又怕被人举报,所以不敢提供公开下载,仅在用户可控的情况下,才向用户提供产品。
也许你会问,把软件预装到硬件上,作为软硬一体的形式交付给用户,是不是可以绕开开源协议 GPL?答案很明确——不行,因为此时的硬件就相当于刻有软件的光盘,交付硬件也是分发软件,也在二次开源范围内。所以,国内那么多存储厂家,可以在海外销售的存储软件或硬件的屈指可数。
为什么存储软件要打包一个 Linux 操作系统?
既然 Linux 操作系统那么大,又存在上述种种不利,为什么存储软件还要把它打包进来呢?
因为想走捷径!
很多存储厂商都是在 Ceph 上进行二次开发,但 Ceph 并没有提供完整的存储解决方案,只是提供了一个存储引擎,很多事情还得自己做,其中最为关键的就是 iSCSI 协议的实现。
可要实现一个完整的 iSCSI 协议谈何容易,于是很多厂商都想走捷径,在 Linux 内核的 LIO 模块的基础上稍作修改,就搞定了。也正是由于这样,存储产品就离不开 Linux 内核了,最终产品就变成了“具有存储功能的 Linux 操作系统”。这就是走捷径导致了产品同质化。
天翼云 HBlock 有什么不一样?
当所有的存储厂商还沉迷于为下一代硬件优化软件性能时,天翼云认为,今天的硬件资源远远未到充分利用的程度,如果能将其盘活,不仅有巨大的商业价值,更是履行央企践行节能社会的职责担当。基于这一独特的价值主张,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 就大大方方让你下载,连你是谁都不问。这就是对质量有信心底气的表现。不得不说这种态度让人好感倍增。
先看看 HBlock 官方文档怎么说的吧:
1. 在任何单点故障下,都能实现秒级切换;
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 企业招聘 持续分享程序员学习、面试相关干货,不见不散!



    
点分享
点收藏
点点赞
点在看

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/170722