BoostKit鲲鹏全局缓存技术助力Ceph性能提升10倍,真香

简介: 今天开始学习BoostKit鲲鹏全局缓存技术,该技术是鲲鹏实验室最新开源的技术。

今天开始学习BoostKit鲲鹏全局缓存技术,该技术是鲲鹏实验室最新开源的技术。

本文将从如下几个方面展开阐述。

1.存储行业特点及挑战

2.全局缓存创新与价值

3.全局缓存功能介绍

4.全局缓存使用介绍

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开销和降低垃圾对业务的影响。

具体实现如下图所示:


db72ee5606d0e2f9014beeec3b0473c8_8557e5d79a9b4c6cb490b43db4408c22.pngdb72ee5606d0e2f9014beeec3b0473c8_8557e5d79a9b4c6cb490b43db4408c22.png

2.3. 智能预取,提高读缓存命中率

基于创新的负载识别算法,识别不同应用访问Pattern(如流式、关联、热点等),并通过归一化特征模型制定最优参数(预取门限,长度等),实现80%以上缓存命中率和2倍+读性能提升。

如下图所示:展示了智能预取分离技术架构:

这里主要有两个技术

双引擎分离:创新性的Client端推荐引擎+Server端执行引擎分离的智能预取架构。

全局精准推荐:推荐引擎拥有全局数据访问视图,从而进行全局精准推荐。

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系统

4. 可靠性

数据持久化存储防掉电丢失。

数据三副本以节点域存储,防止单点故障。

支持集群故障自动检测,自动故障切换和恢复。

5. 安全性

数据通道和管理通道默认支持TLS1.3 安全传输

7. 扩展性

支持按需增加缓存节点扩展缓存规模

支持在线升级

数据持久化存储防掉电丢失

数据三副本以节点域存储,防止单点故障

支持集群故障自动检测,自动故障切换和恢复。

4. 全局缓存使用介绍

说完了那么多BoostKit鲲鹏全局缓存技术的功能和好处,那么如何使用BoostKit鲲鹏全局缓存呢?

首先找到用户指南,指南地址是:https://support.huawei.com/enterprise/zh/doc/EDOC1100228002?idPath=23710424%7C251364417%7C9856629%7C253662285

按照用户指南一步步去操作使用吧!!!!

总结

本文从四个方面阐述了BoostKit鲲鹏全局缓存技术,该技术针对Ceph开源存储方案存在的痛点,采用三大创新技术,有效的提高了Ceph的性能,最高可以将Ceph性能提升10倍。如下图所示:

相关文章
|
2月前
|
缓存 监控 前端开发
在资源加载优化中,如何利用浏览器缓存提升性能?
通过以上这些方法,可以有效地利用浏览器缓存来提升资源加载的性能,减少网络请求次数,提高用户体验和应用的响应速度。同时,需要根据具体的应用场景和资源特点进行灵活调整和优化,以达到最佳的效果。此外,随着技术的不断发展和变化,还需要持续关注和学习新的缓存优化方法和策略。
100 53
|
10天前
|
数据采集 存储 缓存
如何使用缓存技术提升Python爬虫效率
如何使用缓存技术提升Python爬虫效率
|
14天前
|
存储 缓存 负载均衡
从零到一:分布式缓存技术初探
分布式缓存通过将数据存储在多个节点上,利用负载均衡算法提高访问速度、降低数据库负载并增强系统可用性。常见产品有Redis、Memcached等。其优势包括性能扩展、高可用性、负载均衡和容错性,适用于页面缓存、应用对象缓存、状态缓存、并行处理、事件处理及极限事务处理等多种场景。
37 1
|
2月前
|
缓存 监控 测试技术
如何利用浏览器的缓存来优化网站性能?
【10月更文挑战第23天】通过以上多种方法合理利用浏览器缓存,可以显著提高网站的性能,减少网络请求,加快资源加载速度,提升用户的访问体验。同时,要根据网站的具体情况和资源的特点,不断优化和调整缓存策略,以适应不断变化的业务需求和用户访问模式。
110 7
|
3月前
|
存储 缓存 数据库
缓存技术有哪些应用场景呢
【10月更文挑战第19天】缓存技术有哪些应用场景呢
|
3月前
|
存储 缓存 运维
缓存技术有哪些优缺点呢
【10月更文挑战第19天】缓存技术有哪些优缺点呢
|
4月前
|
缓存 JavaScript 中间件
优化Express.js应用程序性能:缓存策略、请求压缩和路由匹配
在开发Express.js应用时,采用合理的缓存策略、请求压缩及优化路由匹配可大幅提升性能。本文介绍如何利用`express.static`实现缓存、`compression`中间件压缩响应数据,并通过精确匹配、模块化路由及参数化路由提高路由处理效率,从而打造高效应用。
209 15
|
3月前
|
缓存 JavaScript 前端开发
Vue 3的事件监听缓存如何优化性能?
【10月更文挑战第5天】随着前端应用复杂度的增加,性能优化变得至关重要。Vue 3 通过引入事件监听缓存等新特性提升了应用性能。本文通过具体示例介绍这一特性,解释其工作原理及如何利用它优化性能。与 Vue 2 相比,Vue 3 可在首次渲染时注册事件监听器并在后续渲染时重用,避免重复注册导致的资源浪费和潜在内存泄漏问题。通过使用 `watchEffect` 或 `watch` 监听状态变化并更新监听器,进一步提升应用性能。事件监听缓存有助于减少浏览器负担,特别在大型应用中效果显著,使应用更加流畅和响应迅速。
117 1
|
4月前
|
存储 缓存 NoSQL
解决Redis缓存击穿问题的技术方法
解决Redis缓存击穿问题的技术方法
82 2
|
4月前
|
存储 缓存 Java
在Spring Boot中使用缓存的技术解析
通过利用Spring Boot中的缓存支持,开发者可以轻松地实现高效和可扩展的缓存策略,进而提升应用的性能和用户体验。Spring Boot的声明式缓存抽象和对多种缓存技术的支持,使得集成和使用缓存变得前所未有的简单。无论是在开发新应用还是优化现有应用,合理地使用缓存都是提高性能的有效手段。
60 1