10 倍!BoostKit 鲲鹏全局缓存 3 大创新技术助力 Ceph 性能提升
摘要:本文从四个方面阐述了 BoostKit 鲲鹏全局缓存技术,该技术针对 Ceph 开源存储方案存在的痛点,采用三大创新技术,有效的提高了 Ceph 的性能,最高可以将 Ceph 性能提升 10 倍。
本文分享自华为云社区《【云驻共创】BoostKit鲲鹏全局缓存技术助力Ceph性能提升10倍,真香》,作者:码农飞哥。
1. 存储行业特点及挑战
有统计数据显示,企业应用每增加 100ms 存储时延会造成 1%的销售损失。如下图所示:
从 21 年到 23 年,关键业务的占比从 25%增加到 60%,数据库等中高负载业务从 45%减少到 15%,一般业务从 30%减少到 25%。
对于关键业务一般使用的存储类型是 增强型\极速 SSD 云硬盘(全闪存),这种方式主要的痛点是 要求极致时延和 IOPS SSD 使用成本高。
对于数据库等中高负载业务使用的存储类型是超高 IO 云硬盘(全闪存、均衡型 SAS),这种方式的主要痛点是对性价比降低时延。
对于一般业务使用的是高 IO 云硬盘(均衡型 SATA)
1.1.Ceph 开源存储方案面临的性能挑战
Ceph 开源存储方案面临的性能挑战主要是: IOPS 性能低,IO 时延高。 而造成这种情况的原因主要有如下三个方面:
1. IO 请求流程多,线程切换开销大
2. IO 处理流程长,队列等待多,端到端时延高。
3. IO 随机性大,磁盘带宽利用率低。
IO 的写入流程是:
1. Message 接受入队
2. 三副本数据处理
3. 数据持久化
4. 元数据持久化
5. 资源释放,响应完成。
我们可以看到一个完整的 IO 写入流程包括了 5 大流程,流程真的很长。那么 BoostKit 鲲鹏全局缓存技术又是如何应对这些挑战的呢?
2. 全局缓存创新与价值
BoostKit 鲲鹏全局缓存技术主要有三大创新技术,通过三大创新技术可以实现存储性能飞跃式提升。
1. 缓存前后台分离,缩短 IO 路径
2. IO 聚合,实现磁盘带宽性能
3. 智能预取,提高读缓存命中率。
下面我分别就这三大创新技术进行一个简要的说明。
2.1. 缓存前后台分离,缩短 IO 路径
1. 在计算侧(前台)重定向到全局缓存,读写 IO 请求直接在缓存中命中并实时反馈给上层应用。
2. 全局缓存的 IO 数据异步下刷到后端存储侧(后台)或提前预取数据到全局缓存其实现流程如下图所示:
从图中可以看出读 IO 和写 IO 都是在全局缓存中实现的。写 IO 首先将数据写入缓存中,然后异步下刷到磁盘中。异步 IO 批量预取提前命中,异步数据预取,读 IO 直接从缓存中取数据。这样做的好处就是 提高了异步刷盘速率,保证写缓存 100%命中,降低写时延。提高预取准确率,加大缓存容量,保证读缓存 80%命中,降低读时延。如下图所示:展示了缓存前后台的具体实现。
3. 流程解耦:写缓存刷盘,读缓存淘汰无需互斥,可灵活控制各自水位。
4. 资源解耦:读写缓存并发,Quota 资源等解耦,避免相互影响。
5. 介质类型解耦:读写缓存可分为管理异构缓存介质(RAM,NVMeSSD),实现介质分离。
6. 冗余策略优化:读 cache 使用单副本,提高 cache 空间利用率,写 cache 使用三副本,保证数据可靠性。
2.2. IO 聚合,实现磁盘带宽性能
1. IO 聚合:通过聚合算法,回写策略和垃圾回收等能力,实现随机写小 IO 聚合成顺序写大 IO,实现磁盘带宽的利用率,使性能得到大幅提升。
2. 按需读取:从元数据中获取小 IO 映射关系,下盘读取小 IO 数据,无读放大。
3. 通过高效的索引算法和数据排列,仅提高有效数据块,并和新写入的数据进行 IO 聚合,减少 IO 开销和降低垃圾对业务的影响。具体实现如下图所示:
2.3. 智能预取,提高读缓存命中率
基于创新的负载识别算法,识别不同应用访问 Pattern(如流式、关联、热点等),并通过归一化特征模型制定最优参数(预取门限,长度等),实现 80%以上缓存命中率和 2 倍+读性能提升。
如下图所示:展示了智能预取分离技术架构:
这里主要有两个技术
1. 双引擎分离:创新性的 Client 端推荐引擎+Server 端执行引擎分离的智能预取架构。
2. 全局精准推荐:推荐引擎拥有全局数据访问视图,从而进行全局精准推荐。
3. 全局缓存功能介绍
3.1. 全局缓存技术的整体架构
说完了全局缓存的创新点之后,接下来让我们来看看全局缓存的各个核心功能。全局缓存技术的整体架构如下图所示:
可以用三横+两纵来总结全局缓存技术框架。三横:客户端集群、缓存集群、存储集群两纵:读写路径分离双驱加速的逻辑布局。
1. 写缓存:数据写入、删除功能、保证 Cache 前后台写低时延、
2. 读缓存:数据读取功能,数据预取和淘汰、保证高 Cache 命中。
3. 元数据管理:高性能元数据管理引擎、小 IO 聚合、垃圾回收
4. 集群管理:集群管理、运行状态管理,故障处理框架。
5. 持久化:数据持久化存储,三副本资源池,介质管理。
6. 适配层:对接开源 Ceph 存储,终结 Ceph 语义。
7. 基础设施:系统启动、内存管理、日志、命令行、系统调度。
3.2. 全局缓存功能规格一览
1. 高性能支持单节点 14W IOPS,1ms 时延。
2. 集群兼容性
提供无侵入式接口 API 支持主流 ceph 集群接入
支持块存储服务,对象存储服务
支持快照及克隆功能
支持鲲鹏平台硬件,openEuler,RedHat 系统
3. 可靠性
数据持久化存储防掉电丢失。
数据三副本以节点域存储,防止单点故障。
支持集群故障自动检测,自动故障切换和恢复。
4. 安全性
数据通道和管理通道默认支持 TLS1.3 安全传输
5. 扩展性
支持按需增加缓存节点扩展缓存规模
支持在线升级
数据持久化存储防掉电丢失
数据三副本以节点域存储,防止单点故障
支持集群故障自动检测,自动故障切换和恢复。
4. 全局缓存使用介绍
说完了那么多 BoostKit 鲲鹏全局缓存技术的功能和好处,那么如何使用 BoostKit 鲲鹏全局缓存呢?首先找到用户指南,指南地址是:https://support.huawei.com/enterprise/zh/doc/EDOC1100228002?idPath=23710424%7C251364417%7C9856629%7C253662285
按照用户指南一步步去操作使用吧!!!!
总结
本文从四个方面阐述了 BoostKit 鲲鹏全局缓存技术,该技术针对 Ceph 开源存储方案存在的痛点,采用三大创新技术,有效的提高了 Ceph 的性能,最高可以将 Ceph 性能提升 10 倍。如下图所示:
版权声明: 本文为 InfoQ 作者【华为云开发者社区】的原创文章。
原文链接:【http://xie.infoq.cn/article/c0c0ab9b9116d33c54691b80b】。文章转载请联系作者。
评论