如何避免缓存击穿?超融合常驻缓存和多存储池方案对比

news/2024/12/11 16:43:15/

作者:SmartX 解决方案专家 钟锦锌

很多运维人员都知道,混合存储介质配置可能会带来“缓存击穿”的问题,尤其是大数据分析、数据仓库等需要频繁访问“冷数据”的应用场景,缓存击穿可能会更频繁地出现,影响业务运行。除了更换为全闪存储,目前一些主流厂商可通过“常驻缓存”和“多存储池”这两种技术方案来避免缓存击穿,帮助用户降低成本、提升业务连续性。这两种方案有什么区别?哪个方案更有优势?以下,我们将深入解读常驻缓存和多存储池如何避免缓存击穿,以及它们在成本、性能和管理方面的优劣势。如您有更多观点补充,欢迎在评论区留言。

重要结论

  • 常驻缓存和多存储池方案对缓存击穿的应对思路不同,实际效果也会有些差异。
  • 多存储池可确保全闪业务和混闪业务的充分隔离,在性能要求苛刻的业务场景可能更具优势,但这类场景在实际部署时更偏向采用性能相同但可用性更高的多集群(全闪集群+混闪集群)建设方案。
  • 多存储池方案整体优势不明显,而常驻缓存方案在成本上有较明显的优势,且管理更加简单、通用性更强。

点击下方链接下载超融合技术原理与特性解析合集》,通过三册电子书,了解更多超融合技术知识与产品性能。

SmartX 超融合技术原理与特性解析合集(一)虚拟化与存储icon-default.png?t=O83Ahttps://mobile.smartx.com/p/7d3913

SmartX 超融合技术原理与特性解析合集(二)管理与运维icon-default.png?t=O83Ahttps://mobile.smartx.com/p/8cb16

SmartX 超融合技术原理与特性解析合集(三)全栈能力icon-default.png?t=O83Ahttps://mobile.smartx.com/p/73d10

为什么会出现缓存击穿?

在集中式存储、分布式存储或者超融合基础架构的使用场景中,很多用户都会配置混合存储介质。混合介质存储是指配置固态硬盘(SSD)作为缓存加速 I/O 读写、配置机械硬盘(HDD)作为容量空间,形成“层次存储”以降低存储的整体成本(相比全部使用 SSD 作为存储介质的全闪方案)。

其中,“层次存储”的最常见的数据分层策略是:新写入或经常访问的数据会优先存放在高性能介质(SSD)中,而存在时间较长或不经常访问的数据会被交换到低成本存储介质(HDD)中。

通常的情况下,新产生的数据短时间内被重复访问的概率也比较高,属于热数据;而生成时间比较长的数据通常被再次访问的几率比较低,属于冷数据。当业务系统运行一段时间后,企业中的冷数据会明显多于热数据。因此,这种情况下系统通过 SSD 缓存满足少量热数据的快速响应需求,并将大量冷数据存放在大容量、低成本的 HDD 的机制是有效的。但在一些特殊场景下,这样的缓存机制会受到挑战:

  • 当系统缓存空间不足,可能导致数据被迫直接写入 HDD。
  • 当冷数据从 SSD 交换到 HDD 后,系统再次请求读取或修改 HDD 上的数据。

上述两种情况都有可能引起”缓存击穿“ 的情况发生:由于数据需要直接读/写 HDD 才能完成 I/O 操作,对应的 I/O 延时将大幅度上升;当击穿的情况频繁发生,存储的整体性能也会出现较大程度的下降。

另外,现实中有部分业务场景并不遵循上述的冷、热数据访问规律,从而特别容易触发“缓存击穿”。如:

  • 数据仓库系统:多个数据库服务器会定期将最新的数据同步至数据仓库,属于频繁覆盖写的场景;当中会存在大量“冷数据”需要被读取,并在修改后重新写入存储。
  • 大数据分析系统:大数据分析业务场景经常需要遍历访问所有数据(不区分冷、热),甚至更偏重历史数据的访问,因而产生大量的“冷数据”的访问需求。

企业如果将大数据分析、数据仓库等业务数据存放在“层次存储”中,频繁的“缓存击穿”可能会造成业务系统响应变慢、处理能力急速下降等问题。很明显,通过单一的缓存机制是无法满足此类需求的(业务实际上需要全闪存储,才能保证访问所有数据都能保持一致的响应速度)。

不过,仅为少数几个业务系统而更换为全闪存储,对用户成本又会造成较大的挑战。能否既兼顾存储成本,又能满足个别业务系统的性能要求(不触发击穿)?答案是可以的,针对用户的需求,不同厂商提供的方案不尽相同,但大体可分为两个类别:在混合存储介质部署基础上增加常驻缓存(Pin SSD)多存储池的支持。

常驻缓存 vs 多存储池:解决思路的区别

常驻缓存

常驻缓存功能是在保留原有的缓存机制不变的前提下,可动态地将部分缓存空间(SSD)划分给特定的业务系统作为容量层使用,从而使得处于常驻缓存中的数据不再被交换到低性能硬盘(HDD),并确保业务系统不会发生“缓存击穿”导致性能下降的情况发生。也可以理解为,常驻缓存功能可为特定业务提供全闪的存储空间;因此,除了避免缓存击穿,常驻缓存功能还可为关键业务提供稳定的高性能、低时延。

多存储池

多存储池是指在同一个集群内根据存储介质设备的类型、性能,将存储资源划分为多个池;每个存储池可以对应不同的存储介质。如:集群中选择一定数量的 SSD 组建全闪存储池,另外一部分 SSD 和 HDD 则组建混合存储池。多存储池功能使得同一个集群里面可同时存在全闪和混闪存储池,用户可以根据业务对存储的性能需求,决定业务数据放置到哪个存储池更合适。

常驻缓存 vs 多存储池:成本、性能与管理的对比分析

常驻缓存和多存储池两种方案都可以解决因特定业务产生的“缓存击穿”问题,但两者解决问题的思路是不同的,实际效果会有一定差异。下面我们将以超融合基础架构场景为例,对比常驻缓存与多存储池方案在成本、性能和管理方面的优劣势。

硬件成本对比

常驻缓存和多存储池方案共同的需求出发点就是降低存储成本,因此硬件成本是一个核心关注点。

硬件要求对比
多存储池:
  • 构建多存储池通常需要以主机为单位,每个存储池至少包含 3 台主机,组建 2 个存储池则至少需要 6 台主机。对于小规模起步的用户有一定的成本压力。
  • 多存储池要求全闪池的每个主机至少包含 2 块 SSD;而混闪池主机至少包含 2 块 SSD。
常驻缓存
  • 启用常驻缓存对最低主机数量没有特定要求,与普通集群要求一致(最小集群规模 3 台主机)。
  • 启用常驻缓存功能,理论上不需要增加 SSD 的数量,只需要确保缓存空间足够(同时满足常驻缓存和常规缓存的空间需求)。
模拟配置对比

我们根据以下需求进行模拟配置:

  • 数据仓库虚拟机(全闪)的容量需求为 20TB,其他普通业务虚拟机(混闪)的容量总需求为 120 TB 。
  • 服务器参考规格:2U 机箱,前面板满配 12 个硬盘插槽。
多存储池模拟配置:

常驻缓存模拟配置(3 节点集群满足业务需求):

常驻缓存模拟配置(6 节点集群提供更多容量空间):

从模拟配置对比中可以看到:

  • 多存储池的最小规模需要 6 台服务器,相比常驻缓存需要额外增加 3 台服务器硬件成本。
  • 集群规模同样是 6 台服务器的情况下,常规缓存方案可提供更多的可用存储空间。

性能对比

多存储池:
  • 多存储池方案中,全闪池的 SSD 与混闪池的缓存 SSD 是隔离的,性能上不会互相影响。
  • 当全闪存储池的 SSD 数量足够多时,性能上限会比混闪池更高,但造价也会相应地增加。
常驻缓存
  • 常驻缓存与普通缓存共享一组 SSD,有一定几率发生资源争抢的情况。

从性能上对比,多存储池方案中不同的存储池之间是天然隔离的,可以确保全闪池的业务不会受到混闪池的影响,相对常驻缓存在一定优势;而常驻缓存存在缓存盘资源争抢的可能,但也可以通过存储 QoS* 和扩展缓存盘来消除资源争抢的风险。

*存储 QoS:指可以为虚拟机整机或者指定的虚拟卷设置存储 IOPS 或者带宽上限,避免单一应用占用过多性能资源,可一定程度上避免资源争抢的情况发生。

管理难度对比

多存储池:

由于全闪池与混闪池之间是完全隔离的,数据无法实现共享访问。多个存储池在超融合环境下会带来一些限制。

  • 虚拟机存储位置:当集群存在多个存储池,用户需要设置一些策略去明确定义哪些业务或者虚拟机放置到哪一个存储池当中;当业务虚拟机的需求发生变化时(如最初在混闪池,后续业务规模、重要性提升,要求转移到全闪池运行),需要人工介入,执行存储迁移操作。
  • 虚拟机在线迁移:在全闪存储池里面的虚拟机无法通过主机在线迁移的方式移动到混闪存储池所在的主机。如果要实现上述的迁移目标,需要同时执行存储数据和主机的迁移,迁移过程会涉及大量的数据复制,使得迁移时间变得很长,同时对网络带宽占用也比较高。

因此,相比普通集群,多存储池的管理复杂度更高。

常驻缓存
  • 启用常驻缓存后,统一存储池的属性没有改变,集群内虚拟机在任何情况下执行主机在线迁移操作,都不需要进行数据迁移,迁移速度快,不会大量占用网络带宽,并且支持并发迁移操作。
  • 用户不需要刻意区分虚拟机的存储位置,甚至可以在虚拟机运行一段时间后再决定是否启用常驻缓存

因此,常驻缓存相对多存储池有更大的灵活度,而且不会增加管理的难度。

小结

根据上述对比可以看出,多存储池可确保全闪业务和混闪业务的充分隔离,在对性能要求比较苛刻的业务场景下可能更具优势;但这种情况下多存储池的节点规模需要在 6 个或以上,同样的节点规模已经满足组建多集群(全闪集群+混闪集群)条件,此时多集群与多存储池在性能上是基本一致的,但多集群的可用性会更强。因此,多存储池的整体优势并不明显。而常驻缓存方案在成本上有较明显优势,且管理更加简单,通用性更强。

目前,SmartX 超融合 6.1 和分布式存储 5.6 都支持用户开启常驻缓存功能,避免缓存击穿的同时为关键业务系统提供稳定的高性能、低时延保障。SMTX ZBS 5.6 还采用了全新的分层模式,用户可以使用纠删码等依赖存储分层模式的功能,同时读写缓存分区比例可以动态进行调整,优化缓存空间利用率并避免缓存击穿的风险,灵活应对不同业务 I/O 的性能需求。

您还可下载超融合技术原理与特性解析合集》系列电子书,了解更多超融合虚拟化、存储、管理、运维、网络与安全、容器管理等方面的技术解读!

SmartX 超融合技术原理与特性解析合集(一)虚拟化与存储icon-default.png?t=O83Ahttps://mobile.smartx.com/p/7d3913

SmartX 超融合技术原理与特性解析合集(二)管理与运维icon-default.png?t=O83Ahttps://mobile.smartx.com/p/8cb16

SmartX 超融合技术原理与特性解析合集(三)全栈能力icon-default.png?t=O83Ahttps://mobile.smartx.com/p/73d10


http://www.ppmy.cn/news/1554273.html

相关文章

Distance in Tree 树形dp练习(树中两点距离为k的数量板子)

Distance in Tree 题面翻译 题目大意 输入点数为 N N N一棵树 求树上长度恰好为 K K K的路径个数 输入格式 第一行两个数字 N , K N,K N,K,如题意 接下来的 N − 1 N-1 N−1行中,每行两个整数 u , v u,v u,v表示一条树边 ( u , v ) (u,v) (u,v) 输出格式 一个整数 a n…

k8s折腾笔记

k8s折腾笔记 k8s安装、部署、运行demo1.系统环境2.开始安装2.1 先从master节点开始2.2 worker节点 3.遇到的问题4.集群demo k8s安装、部署、运行demo 1.系统环境 两台服务器,都是ubuntu22版本, 一台2核4g,作为master节点 一台2核2g&#xf…

Hyper-V创建虚拟机配置IP等网络配置原理(Linux、Windows为例)

Hyper-V创建虚拟机配置IP等网络配置原理(Linux、Windows为例) 大家知道Windows系统里面内置了Hyper-V管理器,用来创建和管理本地虚拟机环境。今天我创建了两台虚拟机,一台是CentOS7.9(Linux),另…

使用 Streamlit +gpt-4o实现有界面的图片内容分析

在上一篇利用gpt-4o分析图像的基础上,进一步将基于 Python 的 Streamlit 库,结合 OpenAI 的 API,构建一个简洁易用的有界面图片内容分析应用。通过该应用,用户可以轻松浏览本地图片,并获取图片的详细描述。 调用gpt-4o…

springboot系列--拦截器加载原理

一、拦截器加载原理 拦截器是在容器启动时,就创建并加载好,此时并未放入拦截器链中,只是放在一个拦截器集合当中,当一个请求进来之后,会通过匹配路径,查看是否有命中集合中的拦截器的拦截路径,如…

安全架构评审

安全架构评审 1.概述2.安全设计原则3.美团安全架构评审模型安全需求分析架构review攻击面分析和威胁建模攻击面分析威胁列表 1.概述 完整的安全评审会包含安全架构评审、安全代码审核和安全测试三个手段 安全架构评审聚焦于探寻安全设计中的漏洞,以宏观视野全面考…

IoTDB Allocate WAL Buffer Fail Because out of memory

问题及现象 时序数据库 IoTDB 集群报错: The write is rejected because the wal directory size has reached the threshold 53687091200 bytes. You may need to adjust the flush policy of the storage storageengine or the IoTConsensus synchronization pa…

鼠标右键单击Git Bash here不可用

最近在学习git时突然发现右键的git bash没反应,但是去点击应用图标就能正常运行,通常是因为你在安装git之后改变了它的目录名称或者位置,我就是因为安装后改变了一个文件夹的文件名导致不可用 在安装git时系统会默认给鼠标右键选项的git Bas…