写点什么

10 倍!BoostKit 鲲鹏全局缓存 3 大创新技术助力 Ceph 性能提升

  • 2022 年 1 月 25 日
  • 本文字数:2488 字

    阅读完需:约 8 分钟

摘要:本文从四个方面阐述了 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 倍。如下图所示:


点击关注,第一时间了解华为云新鲜技术~

发布于: 刚刚阅读数: 3
用户头像

提供全面深入的云计算技术干货 2020.07.14 加入

华为云开发者社区,提供全面深入的云计算前景分析、丰富的技术干货、程序样例,分享华为云前沿资讯动态,方便开发者快速成长与发展,欢迎提问、互动,多方位了解云计算! 传送门:https://bbs.huaweicloud.com/

评论

发布
暂无评论
10倍!BoostKit鲲鹏全局缓存3大创新技术助力Ceph性能提升