HBlock

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) 等产品集成形成解决方案，广泛应用于视频监控、医疗影像、智算服务等应用场景 。

 参考资料