×
嵌入式 > 存储技术 > 详情

如何实现多控缓存一致性?

发布时间:2021-12-24 发布时间:
|

  高端IT系统的缓存管理一直是个极具挑战性的课题,从计算领域到存储领域,该问题普遍存在。

  比如,多核心多CPU体系中的分布式L1/2/3缓存的一致性管理,而随着从SMP到NUMA的演进,NUMA架构下的分布式缓存管理更是增加了CPU内硬件的复杂度。在存储领域,全对称多活多控制器存储系统从一开始便普遍使用集中式的数据缓存来保证缓存一致性。

  本文对几种多控高端存储下的缓存一致性管理、缓存镜像管理等方面做简要分析,并以浪潮AS18000高端存储系统为例来实际分析。

  1.    多控高端存储系统的缓存管理的几种方式

  1.1  集中式缓存管理

  在这种缓存管理模式下,集群中所有节点均不维护本地缓存,而是所有节点共享访问一个集中存放的缓存,数据在缓存中只有一份副本,不会也不可以出现多份副本。在计算领域,典型例子比如单颗CPU芯片内的多个核心共享的LLC(LastLevel Cache)。在存储领域,典型例子则是某些厂商的高端存储系统中所使用的集中式缓存,比如下图架构所示:

  集中式缓存一致性管理

  该缓存管理架构的优点是天然的缓存一致性,因为不存在多个副本,不需要特殊过程来维护缓存一致性。对于高端存储系统而言,该设计的劣势则是需要缓存集中放置,需要使用某种外部网络来连接集中的缓存,而且提供异步化的类似IO的访问方式,编程复杂,难以掌控和优化,需要投入大量成本。

  1.2  任意关联对称式分布式缓存

  所谓分布式缓存,指的是集群中的每个节点都有自己独享的缓存,这种情况会给缓存一致性管理上带来极大的复杂性,当然,所获得的收益便是一旦命中则性能会非常好。所谓对称式指的是集群中所有节点在缓存管理的地位上是均等的,都可以自行控制管理各自的缓存。所谓任意关联,则是指任意节点均可以缓存任意数据块,数据块大小视不同产品设计而定,比如多CPU集群的缓存数据块大小为一个缓存行,Cache Line,一般为64Byte大小。而对于高端存储系统,则一般以4K及其整数倍为粒度。

  因为可以任意缓存,所以会导致多个集群节点同时缓存有同一个数据块的多个不同版本的副本,从而导致一致性问题。解决的办法则是效仿多CPU缓存一致性管理方面的思路,采用MESI一致性基本协议及其变种,可以在尽量减少广播通信的前提下实现任意关联分布式缓存一致性。

  该设计的优点则是可以充分利用缓存空间,且学院派高逼格凸显。劣势则是成本高,因为需要一个低时延的网络来实现MESI协议流量,否则性能将很差;另外,需要一个高速搜索算法来搜索对应目标数据块在缓存中的位置,必要时引入硬加速比如TCAM等,成本再次增加。


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
一文详解云存储结构的模型