存储 频道

给力2010!年终存储新品盘点(磁盘阵列)

  EMC Vplex跨地虚拟存储:

  Vplex与EMC原有的虚拟化产品Invista以及其他厂商虚拟化解决方案截然不同的一点就在于,Vplex可实现远距离的数据中心迁移,也就是支持虚拟机在两个至少相距10公里之外的数据中心之间进行灵活地迁移,根据EMC的介绍,如果在通过VPLEX整合的存储上来进行Long Distance vMotion的话,不仅在速度上表现不错,在吞吐量上也表现惊人。

  支持Vplex远距离虚拟漂移的核心技术则是分布式缓存技术,这一技术主要来自于三年前被EMC收购的名为”YottaYotta“的小公司,从Vplex目前的产品演示来看,这套技术的整套代码已经从之前的私有操作系统完全迁移到Linux上,而且其中最核心的就是分布式一致性缓存技术(Distributed Cache Coherenece),也是其之所以能实现”active-active“模式,能实现跨主机、跨集群、跨数据中心的访问和在节点之间同步镜像,并克服延迟,带宽和连贯性方面的挑战的原因。

  分布式一致性缓存技术在实现上面,并没有强求所有的Cache都保持统一的这种常见做法,而是基于目录形式来跟踪细小的内存块并降低了锁的粒度来加强扩展能力。

  而且由于VPlex所支持的很多用例都有一个特点,单一写(Single Writer),也就是在任何时间一块Block只有一个主机会进行写操作,所以在同步问题方面简化了很多,比如vMotion,vMotion是一个原子操作,在迁移一台虚拟机之前,只会有一台主机访问和这台虚拟机相关的一系列Block,当迁移完成之后,另一台主机会接管相关的读写工作,所以在同一时间内,一个虚拟机的Block只会被一个主机访问。

  VPLEX的技术核心是“分布式缓存一致性”,下图则是“分布式缓存一致性”技术的工作机制示意:正是因为这项核心技术优势,使得VPLEX方案和目前所有厂商的虚拟化方案截然不同,并能够实现异地的数据中心整合。对跨数据中心的所有负载实现跨引擎的平摊或者实时迁移,来自任何一个主机的I/O请求可以通过任何一个引擎得到响应。

  缓存一致性的记录目录使用少量的元数据,记录下哪个数据块属于哪个引擎更新的,以及在何时更新过,并通过4K大小的数据块告诉在集群中的所有其他的引擎。在整个过程中实际发生的沟通过程,远远比实际上正在更新数据块少很多。

EMC Vplex跨地虚拟存储

  分布式缓存一致性数据流示意图:上方是一个目录,记录下左侧的主机读取缓存A的操作,并分发给所有引擎,右侧主机需要读取该数据块时,会先通过目录查询,确定该数据块所属的引擎位置,读取请求会直接发送给引擎,并直接从数据块所在的缓存上读取。

  当一个读请求进入时,VPLEX会自动检查目录,查找该数据块所属的引擎,一旦确定该数据块所属的引擎位置,读的请求会直接发送给该引擎。一旦一个写入动作完成,并且目录表被修改,这时另一个读请求从另一个引擎过来,VPLEX会检查目录,并且直接从该引擎的缓存上读取。如果该数据仍然在缓存上,则完全没必要去磁盘上读取。

EMC Vplex跨地虚拟存储

  如上图,来自图中左侧主机的操作,由Cache A服务,会记录一个更新状态,并分发给所有所有引擎知道。如果读取的需求来自最右侧的服务器,首先通过目录查询。通过这种技术可以实现所有引擎一致性工作,而且这个技术不仅可以跨引擎还可以跨VPLEX集群,而VPLEX集群可以跨区域,因此缓存一致性也可以跨区域部署。

  分布式缓存一致性技术使VPLEX相比传统的虚拟化方案拥有更高的性能和可靠性,并实现异地数据中心的虚拟化整合

  对传统的虚拟化架构来说,如果虚拟化的I/O集群中有一个节点坏了,那么性能就会降低一半,而且实际情况降低不止一半。因为坏了一个节点,这个节点缓存一般会被写进去。因为没有缓存,操作会直接写到硬盘里。如果图中中心这个节点坏掉,那主机所有的可用性都没有了。而VPLEX如果有一个引擎或者一个控制器坏掉了,那这个引擎的负载会均摊到其他活动引擎上。这样总体来讲用户可以维持可预知性能,性能降低也不那么明显。

0
相关文章