原文:http://www.yellow-bricks.com/2014/01/15/virtual-san-read-io/

注明:本文内容基于 VMware VSAN beta 版本撰写,请访问http://www.vmware.com/products/virtual-san/获得有关正式版本的更新信息。



     有一个问题一直困扰着我,就是如果数据可以随意分布在读取缓存、写入缓冲区和磁盘任何位置,那么应该如何处理 Virtual SAN 读取 IO 呢?一位 VMTN 工程师最近对此进行了说明。我想我应该创建一个快速图表来进行阐释。它的基本工作原理是,VSAN 首先检查读取缓存,如果读取缓存中没有需要读取的块,则它会检查该块是否在写入缓冲区或磁盘上。是不是很简单?


     在这种情形下,我绘制了以下两个需要读取的块。块 1 ESXi-01 主动提供,块 2 ESXi-03 主动提供。在使用 ESXi-01 时,该块驻留在读取缓存中,因此会从该缓存进行读取。在使用 ESXi-03 时,该块既不在读取缓存中,也不在写入缓冲区中,因此会从磁盘进行读取。请注意,这是 1 个虚拟机,因此从两个主机进行读取,根据哪个主机主动为该块提供 IO,该块可能驻留在该主机上的读取缓存中。不会主动为该块提供 IO 的主机也不会将该块放在读取缓存中!(当然,如果主动为某个块提供 IO 的主机发生故障,则另一个主机会进行接管。)


Virtual SAN 读取 IO – 缓存/缓冲区/磁盘心轴_第1张图片


     希望对大家有所帮助。

    呼朋引伴,欢迎分享!



————————————————————————————————————————————



作者: Duncan Epping

Duncan Epping 现任 VMware R&D SDDC 新兴解决方案团队首席架构师。他主要负责挖掘现有产品和功能的新机会,并通过对新解决方案或产品进行原型开发来为 VMware 探索新的业务商机。他主要致力于软件定义的存储和业务连续性/灾难恢复解决方案,目前正在申请一项专利。