------------------------------------重要说明------------------------------------

以下部分内容来网络,部分自华为存储官方教材

具体教材内容请移步华为存储官网进行教材下载

    网络引用内容无法找到原创,如有侵权请通知

------------------------------------重要说明------------------------------------

图片.png

Global Cache使所有存储服务器上的内存空间在逻辑组成一个统一内存资源池,缓存在任何一个存储服务器上的数据, 在后续其它任何存储服务器接收到访问该数据请求时都可以在全局缓存中命中, 同时所有用户数据在整个集群系统中只缓存一份并且不缓存校验数据, 可以有效发挥缓存对系统性能的影响提高系统整体的性能。

① 全局缓存与数据读取

图片.png 

① 主机E向Node C的客户端发出数据读请求。

② Node C的客户端向分布式锁服务器申请分条资源读锁。

③ 系统检查所读数据的缓存是否在全局缓存中以及缓存在哪个节点上,如图显示该文件分条资源在Node A节点上的缓存中。

④ Node C从Node A节点上的全局缓存中获数据并返回(如果不在全局缓存中,则直接从各个节点上读取该分条数据的所有条带数据后构造出分条数据后再返回)。

分布式锁管理( DLM) 是用于保证全局缓存有效运行, 保证全局缓存共享性、 一致性的基础。 分布式锁管理负责创建分布式锁管理数据结构, 该数据结构包括共享资源锁请求、 存储共享资源的内存以及锁类型等其它相关内容。 只要有进程对该有加锁请求, 共享资源就始终存在, 如果没有任何进程对该资源有加锁请求,布式锁管理器才能删除该资源。 如果进程异常退出. 与该资源相关的锁也就被异常退出. 与该资源相关的锁也就被异常释放。

② 全局缓存与数据写入

图片.png
 

① 主机E向Node C上客户端发出数据写请求。

② Node C的客户端向分布式锁服务器申请分条资源写锁。

③ Node C的客户端申请加锁成功后,Node C将用户数据接收到本节点上的全局缓存中。

④ Node C的客户端将该条带数据根据该文加指定的保护级别进行分片处理,对所有分片后的源是数据通过Erasure Code进行计算生成校验数据片,最后将包括校验数据片在内的数据片写到对应的节点上的保电内存中,写个结点的保电内存成功后则本次写操作成功。