HBlock是一款轻量级存储集群控制器,因其可以将服务器集群中闲置零散的存储空间整合为高可用、高性能的逻辑卷,因此被定义为一种存储资源盘活系统。
背景
HBlock 的开发动机源于中国电信集团首席专家江峰发现很多所谓的“软件定义存储”,尤其是提供 SCSI 或 NVMe 接口的块存储系统,并不像应用程序那样能让用户自助下载、安装和使用,而往往是面向存储场景定制的操作系统,因此存在安装包体积大、独占整台服务器、硬件兼容问题多、受 Linux 内核 以及GPLv2协议 限制难以免注册分发等问题。
为此,江峰提出打造一款轻量级存储集群控制器,把存储接口、存储引擎、介质管理和集群管理等模块都集成在一个用户态程序(即控制器)中实现,使之可以像普通应用程序一样被分发和使用,给用户带来更便捷的安装和使用体验。
HBlock 于2023年发布首个稳定版本,支持非独占式、非对称、异构部署,具备高可用、可伸缩等特性。后续迭代中,扩展了对 Kubernetes、OpenStack 的生态支持;实现了存储网关能力,可将逻辑卷数据一致性同步到支持类S3协议对象存储中;支持多级故障域、跨AZ部署、快照、克隆、备份、QoS等能力。
特性
绿色:全用户态设计,不依赖特定版本的Linux内核或发行版,不依赖、不修改操作系统环境,不独占整个硬盘,不干扰任何其他进程的执行,提高现有硬件资源的利用率。
轻量:经过高度优化的zip安装包,纯软件交付,一键部署,3分钟完成集群搭建。单核CPU、2GB内存、10G剩余硬盘空间即可进行单机版本的安装。
灵活:支持物理服务器、裸金属服务器、虚拟机等环境,与底层硬件完全解耦, 支持不同架构通用服务器异构部署,不限品牌、架构、配置。性能和容量弹性扩展,按需扩容。
共生:支持与其他应用同时运行在同一Linux操作系统实例中,并支持直接挂载在本机,供本机业务使用,为业务提供了高可用性保障。
能力
- 安装与配置:HBlock 以小体积压缩包分发,解压后执行 install 命令完成安装,在任一安装了HBlock的服务器执行 setup 命令或在 Web 界面操作,不需要SSH免密配置,可自动发现全部节点并建立集群。
- API 接口:HBlock 提供安装、配置、使用和监控等 API 接口,支持通过接口调用方式集成HBlock能力。
- 异构混部:HBlock 支持将异构服务器组成存储集群,其进程不依赖操作系统内核,不独占资源,可与其他应用混合部署运行在同一Linux实例中,并通过配额功能控制数据目录的磁盘空间占用以实现稳定运行。
- 数据保护:HBlock 支持块数据备份至对象存储,支持 ROW(Redirect-on-Write)快照,并可通过快照生成克隆卷,快照采用增量存储技术以减少空间占用。。支持通过快照生成备份文件进行异地存储[20],实现数据与平台的彻底解耦。即使主系统完全瘫痪或遭受勒索软件攻击,这些独立保存的备份仍可作为可信恢复源,精准还原卷数据,确保数据完整、安全。
- 数据冗余与容错:HBlock 支持定义多级故障域(机房/机架/服务器/数据目录),通过多副本或纠删码(EC)实现数据冗余。当故障域不足时,可通过副本折叠功能在同一故障域内部存储冗余数据。
- 存储介质分级:HBlock 支持创建基于不同存储介质的存储池(如 SSD/HDD)。用户可为逻辑卷(LUN)指定高速缓存池与后端(低速)存储池,系统自动迁移冷数据至后端(低速)存储池。
- 动态资源分配:HBlock 支持自动精简配置,按实际写入数据量动态分配存储空间,支持横向扩展存储容量。
- 多维度服务质量控制:支持为存储卷、存储池设置指定的QoS策略,以及为存储池设置池内卷的默认QoS策略,以IOPS/带宽双维度动态调控,防止任一客户端或工作负载独占带宽与 IOPS,实现异常流量实时阻断,确保关键业务始终获得可预测、可抢占的资源通道,在混合负载下维持性能稳态,有效解决资源争抢问题,提升关键业务的性能稳定性。
- 访问权限管理:基于访问路径白名单与客户端认证机制实现存储卷访问控制,确保未授权的客户端对卷完全不可见,支持为不同租户配置独立的逻辑存储分区。 [21]
技术
- 非对称环境下的存储集群虚拟化技术:面向混合部署环境的资源感知和调度技术,使得存储系统不再独占资源,可与其他业务系统共存。独立自主开发存储核心协议,实现了存储集群控制器纯软化和小型化。
- 读写性能优化:HBlock 支持 WriteBack/WriteThrough/WriteAround 三种写缓存模式,可根据业务需求动态调整数据持久性与性能优先级策略。读缓存设计包含分段锁机制、LRU 淘汰策略及预读算法,支持按需更新缓存内容。通过索引与数据的多级缓存分层技术,实现客户端负载与硬件资源之间的自动平衡,实现最佳的读写性能。
- 服务可用性优化:HBlock 采用分布式多控架构实现故障切换,主控与备用节点通过强一致性协议同步缓存数据,混沌环境保障服务可用性不降级。自动控制写入速度,当资源紧张时自动限制 IOPS,避免系统过载。支持数据重构与均衡任务的可调节速率策略,允许管理员根据实时负载动态分配带宽资源。
- 数据冗余与完整性保护:HBlock 支持多副本及纠删码(EC)冗余策略,其中 EC 算法最大支持 128 个数据块与校验块组合(得盘率≥98%),支持副本折叠技术和卷级别冗余控制。采用 CRC32C 算法校验 iSCSI 数据传输完整性,数据写入时同步记录 SHA-256 摘要,读取阶段执行内容与摘要的对比验证。定期扫描提前发现和修复存储介质可能出现的静默错误,限制其影响范围,确保数据的完整性与可靠性。
- 动态数据分布策略:HBlock 使用综合节点容量、IO 压力、网络延迟、介质性能的策略进行数据分布,支持横向(增加节点)与纵向(扩展存储设备)两种扩容模式。新增存储设备优先承接数据写入,系统自动识别低负载时段执行存量数据再均衡任务。创建高可用卷时,采用无初值预测分布模型结合实时节点状态选择服务节点,提升性能表现。
- 网络异步系统中强一致性技术:不依赖时钟服务器,集群各节点时钟不同步仍可以保障数据一致。
Roadmap
- 数据增量同步:采用基于对象存储的增量同步协议,支持将原集群数据上传至云端存储后,在新集群执行数据还原,并保持多集群间的数据同步。
- iSCSI 持久预留(PR):LUN 级别的锁机制,通过注册和预留的流程工作,并具有用于受控故障转移的抢占功能。其主要目标是通过确保一次只有一个节点向磁盘写入,用于共享存储中来防止集群系统中的数据损坏。
- 虚拟化加速:与VMware VAAI 和 微软 ODX 深度集成,大大提高iSCSI LUN之间的数据传输能力
应用
HBlock 通过标准 iSCSI 协议提供分布式块存储服务,部署集群后可通过卷管理功能挂载存储卷至本地或远程主机,作为标准块设备使用,支持与文件服务、数据库和虚拟机文件系统 (VMFS) 等产品集成形成解决方案,广泛应用于视频监控、医疗影像、智算服务等应用场景 。
参考资料
评论 (0)