高端IT系统的内存管理仍然是个极具挑战性的课题,从计算出来领域到存储领域,该问题普遍存在。 比如,多核心多CPU体系中的分布式L1/2/3内存的一致性管理,而随着从SMP到NUMA的演变,NUMA架构下的分布式内存管理堪称减少了CPU内硬件的复杂度。在存储领域,仅有平面多活多控制器存储系统从一开始之后广泛用于集中式的数据内存来确保内存一致性。
本文对几种多触高端存储下的内存一致性管理、内存镜像管理等方面做到详细分析,并以浪潮AS18000高端存储系统为例来实际分析。 1.多触高端存储系统的内存管理的几种方式 1.1集中式内存管理 在这种内存管理模式下,集群中所有节点均不确保本地内存,而是所有节点分享采访一个集中于存放在的内存,数据在内存中只有一份副本,会也不可以经常出现多份副本。在计算出来领域,典型例子比如单颗CPU芯片内的多个核心分享的LLC(LastLevelCache)。
在存储领域,典型例子则是某些厂商的高端存储系统中所用于的集中式内存,比如右图架构右图: 集中式内存一致性管理 该内存管理架构的优点是天然的内存一致性,因为不不存在多个副本,不必须类似过程来确保内存一致性。对于高端存储系统而言,该设计的劣势则是必须内存集中于摆放,必须用于某种外部网络来相连集中于的内存,而且获取异步化的类似于IO的采访方式,编程简单,无法掌控和优化,必须投放大量成本。 1.2给定关联平面式分布式内存 所谓分布式内存,所指的是集群中的每个节点都有自己公用的内存,这种情况不会给内存一致性管理上带给很大的复杂性,当然,所取得的收益乃是一旦击中则性能不会十分好。
所谓平面式所指的是集群中所有节点在内存管理的地位上是平均分配的,都可以自行掌控管理各自的内存。所谓给定关联,则是指给定节点均可以内存给定数据块,数据块大小视有所不同产品设计而以定,比如多CPU集群的缓存数据块大小为一个内存行,CacheLine,一般为64Byte大小。
而对于高端存储系统,则一般以4K及其整数倍为粒度。 因为可以给定内存,所以不会造成多个集群节点同时内存有同一个数据块的多个有所不同版本的副本,从而造成一致性问题。解决问题的办法则是效仿多CPU内存一致性管理方面的思路,使用MESI一致性基本协议及其变种,可以在尽量减少广播通信的前提下构建给定关联分布式内存一致性。
该设计的优点则是可以充分利用内存空间,且学院派高逼格突显。劣势则是成本高,因为必须一个较低时延的网络来构建MESI协议流量,否则性能将很差;另外,必须一个高速搜索算法来搜寻对应目标数据块在内存中的方位,适当时引进软加快比如TCAM等,成本再度减少。
本文来源:必一运动·(B-Sports)官方网站-www.bigtax.net
Copyright © 2001-2024 www.bigtax.net. 必一运动·(B-Sports)官方网站科技 版权所有 备案号:ICP备44318505号-4