银行VPLEX

如何吃透 Vplex Globa distributed cache工作原理,大神来细讲一下,让运维人员心里踏实应对故障?

 双写原理,数据落盘的全过程 是什么样的一个流程??
如何保证cache一致性,【这个一致了,两边存储数据就一致了】?? 欢迎大神指点迷津。

参与9

3同行回答

讲起来比较复杂,试着说一下,看看能不能讲清楚。分布式缓存一致性,是 VPLEX 的核心技术,也是 VPLEX 实现双活的主要技术基础。分布式是指缓存的管理是跨控制器的,一致性是指所有控制的缓存是全局的,互相能感知对方状态。VPlex 实现分布式缓存一致性的关键组件是缓存一致性目录,该...显示全部

讲起来比较复杂,试着说一下,看看能不能讲清楚。

分布式缓存一致性,是 VPLEX 的核心技术,也是 VPLEX 实现双活的主要技术基础。分布式是指缓存的管理是跨控制器的,一致性是指所有控制的缓存是全局的,互相能感知对方状态。

VPlex 实现分布式缓存一致性的关键组件是缓存一致性目录,该目录记录着 cache 里的所有数据的归属信息,比如数据块 37 属于哪个控制器,该目录状态会实时更新且 share 给所有控制器,对于 VPLEX Metro 方案,缓存一致性目录可以跨 VPLEX 集群扩展,以提供实现跨站点的缓存一致性。

下面用读写 I/O 的流程来简单描述一下如何实现的。

对于读请求来讲:

读 I/O 从某个控制器的前端口进来,先查看该控制器本地 cache 是否命中,如果命中,直接返回,如果没有命中,则去查找缓存一致性目录,看看别的控制器缓存里是否有要访问的数据,如果有,则从对应的控制器 Cache 中将其读取到本地 Cache ,再返回给主机;如也没有命中,则从本地后端的存储中读到本地 Local 中,修改缓存一致性目录的状态,然后返回给主机。

在双活状态下,虽然缓存一致性目录是跨 VPLEX 集群的,但对于读操作来讲,如果在本地集群缓存没命中,就直接去后端存储读数了,不会去远端的 VPLEX 缓存中读数据,因为机制认为链路的延时要大于本地存储的延时。

对于写请求来讲:

写 I/O 从某个控制器的前端口进来,先找本地 cache 中有没有对应的旧数据,有的话先把它废除,同理,根据缓存一致性目录查找别的控制器缓存中是否有旧数据,有的话也要废除,然后新数据写入本地缓存,并且透写到后端存储中,存储返回确认。

与此同时,另外一个 vplex 集群也会执行相应的操作,将旧数据废除,然后写入新数据,同时新数据透写到后端存储,返回确认给 vplex 。

Vplex 在收到两边存储返回的确认后,认为该写操作成功,给主机返回写入确认。

这一系列的步骤说起来比较繁琐,实际情况下几乎都是同时瞬间完成的,所以不用担心对性能的影响。通过这种机制,可以保证不论是本地主机访问本地 vplex ,还是异地主机访问异地 vplex ,看到的数据是完全一致性的,这个也是双活的技术基础。

不过分布式缓存一致性是 vplex 内部机制,可以了解一下原理,实际运维中不用担心数据一致性的问题,这是 VPLEX 内在机制保证的。

收起
硬件生产 · 2020-09-03
浏览1102
cpc1989cpc1989课题专家组存储工程师某保险公司
VPLEX现在主要就local和Metro两种方案了,Geo方案本身也少,也由其他方案替代了,不知道你是不是想了解的是VPLEX Metro 的分布式缓存的原理。VPLEX Metro在物理上是两个站点,逻辑上两个集群,而且VPLEX只有读cache,没有写cache,这也是VPLEX保持强一致性的关键。数据落盘的过程中...显示全部

VPLEX现在主要就local和Metro两种方案了,Geo方案本身也少,也由其他方案替代了,不知道你是不是想了解的是VPLEX Metro 的分布式缓存的原理。
VPLEX Metro在物理上是两个站点,逻辑上两个集群,而且VPLEX只有读cache,没有写cache,这也是VPLEX保持强一致性的关键。数据落盘的过程中是数据写动作分为两个路线,一个写到本地VPLEX集群的本地存储,一个同步到异地站点的VPLEX集群,并写到异地存储中,只有两个落盘动作都完成后,写到VPLEX的动作才结束。

收起
保险 · 2020-09-03
浏览986
guwenkuanguwenkuan联盟成员系统架构师金融
分为两部分全局cache目录,和每个director的cache。读IO会首先查询全局目录看看是否在cache里,如果有也从相应的director里读取数据,如果没有,也从存储读取,并更新全局目录,下次短期内再读取则会命中。 ...显示全部
分为两部分全局cache目录,和每个director的cache。读IO会首先查询全局目录看看是否在cache里,如果有也从相应的director里读取数据,如果没有,也从存储读取,并更新全局目录,下次短期内再读取则会命中。

收起
银行 · 2020-09-01
浏览1026

提问者

bbaimm88
系统架构师银行
擅长领域: 灾备双活存储

问题来自

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2020-09-01
  • 关注会员:4 人
  • 问题浏览:2197
  • 最近回答:2020-09-03
  • X社区推广