开始新对话

未解决

此帖子已超过 5 年

3931

2012年7月23日 01:00

提问:关于vplex的全局分布式缓存

vplex的全局分布式缓存是怎么实现的呢?是通过什么技术来实现连贯性和一致性的保证?多谢

2.1K 消息

2012年7月23日 02:00

1)VPLEX的全局分布式缓存,基本上的工作模式是,多个Vplex的Director同时Cache供主机访问的LUN,使之与访问传统磁盘一样。同时各个Director之间会用分布式的算法使被缓存的LUN尽量在本地的VPLEX上被读取,减少各个Director之间的访问交互。同时,每个Direcrtor都可以服务前端集群的数据请求。

2)一致性保证是通过在Cache中的Coherency Directory实现的。对于前端集群主机来说,任何一个Director对其展示的LUN的数据结构都是一样。一旦一个director有数据写入请求,在本地Cache中写入位置会被锁定,然后在每个director上同步,最后写入物理磁盘。如果在数据还未同步到所有cache之前,有别的前端主机从其他的director上访问同一个位置的数据,算法会将请求redirect到相应director上完成读取请求。

30 消息

2012年7月24日 02:00

谢谢回答。 所以说,一份相同的数据在director之间就会存在多份拷贝是吗?

另外,vplex有写缓存吗?

2.1K 消息

2012年7月24日 21:00


不会,上面所说的是Coherency Directory会在每个Director上存副本,至于实际数据本身,分布式算法会尽量将本地主机访问最多的数据缓存在本地director上。读取数据分为三种情况。

  1. Local Cache Hit - 如果需要读取的数据在本地的Director,直接返回给主机
  2. Global Cache Hit - 本地的Director上没有缓存需要读取的数据,Director在Coherency Directory中找到数据对应的远程的Director,读取数据返回给主机。
  3. Global Cache Miss - 数据在本地和远程的Director中都没有,Director从后端的存储上读取数据返回给主机。

写缓存的话,Vlex是用的write-through cache,写入请求会直接写入到后端磁盘,然后Vlex在缓存里更新Coherency Directory

2.1K 消息

2012年7月24日 22:00

再上张图会更加清楚一些,图中Block Address中的的Block被缓存到不同的Director上的Cache内。同时,每个Director维护相同的Directory保持数据一致性。

Untitled.jpg

2 消息

2013年6月15日 17:00

感觉有点与rac的sga同步控制机制类似

3.2K 消息

2013年6月15日 22:00

如果说RAC是天上的云那么vplex就是地面的海洋。一个天一个地。

找不到事件!

Top