VPLEX技术核心:分布式缓存一致性
VPLEX Local本身可以理解为本地虚拟化产品,谈到和InVista在定位上的区别,王彦飞解释道,无论是InVista还是SVC等现有的虚拟化解决方案,更多的面对中低端的存储应用,客户的核心业务很少用这些方案来实施虚拟化的。VPLEX是更加高端的虚拟化解决方案,最终可将用户系统中,所有的数据和资源统一管理起来。
此外,VPLEX强调的是异地的数据中心整合,本地的存储虚拟化只是VPLEX功能的一个子集。VPLEX的目标是做到跨系统、跨地域、跨联邦的管理,换句话说,是在为将来过渡到私有云或公有云奠定基础。
王彦飞强调,VPLEX的技术核心是“分布式缓存一致性”,根据王彦飞的介绍,正是因为这项核心技术优势,使得VPLEX方案和目前所有厂商的虚拟化方案截然不同,并能够实现异地的数据中心整合。对跨数据中心的所有负载实现跨引擎的平摊或者实时迁移,来自任何一个主机的I/O请求可以通过任何一个引擎得到响应。
王彦飞介绍,缓存一致性的记录目录使用少量的元数据,记录下哪个数据块属于哪个引擎更新的,以及在何时更新过,并通过4K大小的数据块告诉在集群中的所有其他的引擎。在整个过程中实际发生的沟通过程,远远比实际上正在更新数据块少很多。
VPLEX核心技术:分布式缓存一致性数据流示意图。上方是一个目录,记录下左侧的主机读取缓存A的操作,并分发给所有引擎
VPLEX核心技术:分布式缓存一致性数据流示意图。右侧主机需要读取该数据块时,会先通过目录查询,确定该数据块所属的引擎位置,读取请求会直接发送给引擎,并直接从数据块所在的缓存上读取
当一个读请求进入时,VPLEX会自动检查目录,查找该数据块所属的引擎,一旦确定该数据块所属的引擎位置,读的请求会直接发送给该引擎。一旦一个写入动作完成,并且目录表被修改,这时另一个读请求从另一个引擎过来,VPLEX会检查目录,并且直接从该引擎的缓存上读取。如果该数据仍然在缓存上,则完全没必要去磁盘上读取。
如上图,来自图中左侧主机的操作,由Cache A服务,会记录一个更新状态,并分发给所有所有引擎知道。如果读取的需求来自最右侧的服务器,首先通过目录查询。通过这种技术可以实现所有引擎一致性工作,而且这个技术不仅可以跨引擎还可以跨VPLEX集群,而VPLEX集群可以跨区域,因此缓存一致性也可以跨区域部署。
分布式缓存一致性技术使VPLEX相比传统的虚拟化方案拥有更高的性能和可靠性,并实现异地数据中心的虚拟化整合
对传统的虚拟化架构来说,如果虚拟化的I/O集群中有一个节点坏了,那么性能就会降低一半,而且实际情况降低不止一半。因为坏了一个节点,这个节点缓存一般会被写进去。因为没有缓存,操作会直接写到硬盘里。如果图中中心这个节点坏掉,那主机所有的可用性都没有了。而VPLEX如果有一个引擎或者一个控制器坏掉了,那这个引擎的负载会均摊到其他活动引擎上。这样总体来讲用户可以维持可预知性能,性能降低也不那么明显。