基于VMWare虚拟化vSAN技术构建双活数据中心VSAN延伸集群的出现,不仅使VMware有了自己的存储双活技术,从成本角度来看,更使存储双活这项技术,从“天上”来到了“民间”。通过VSAN延伸集群加上VMware已有的SRM和VR技术,一个全新的、高效低成本的两地三中心方案应运而生。目前市场上常见的硬件厂商的双活方案通常指的是分布式存储双活,如EMCvPlex,HDSVSP,IBMPowerHAHyperSwap,GPFSA-A,SVC等。本质上讲,都是基于某种存储虚拟化技术或者存储同步复制技术。对OS而言,双活的存储要么提供block设备,要么提供共享文件系统。目前业内具有双活能力的存储常是高端存储,正是因为高端,因此其成本相对较高,所以通常只运行一些关键业务,如OracleRAC。在6.1版本中,VSAN也可以提供双活功能(VSAN延伸集群)。相对于传统双活方案,VSAN延伸集群具有一定优势。具体如下:(1)还是那句话,VSAN继承了VMware的基因,即与vCenter集成,操作简单:点击下鼠标就能完成。3VSAN虽然不是开源软件,但是十分开放。VSAN对服务器硬件兼容性列表很长(VSANReadyNode),生态圈很好。(2)我们知道,VSAN属于基于策略驱动的分布式存储,集成在vSphereKernel中,运行在X86上。在此基础上,利用服务器本地盘,实现的VSAN延伸集群,属于低成本双活解决方案。同时VSAN提供双活的保护级别,是VMDK级别的,其颗粒度更高(传统存储双活方案基于LUN)(3)VSAN虽然不是开源软件,但是十分开放。VSAN对服务器硬件兼容性列表很长(VSANReadyNode),生态圈很好。下面我们谈谈VSAN延伸集群的技术细节。整体架构从整体架构来看,VSAN延伸集群也是一个VSAN集群,只是它的ESXi主机分布到两个数据站点上:SiteA和SiteB。每个站点是一个“故障域”。两个故障域之间VSAN数据完全一样,也就是FTT=1.除了两个数据站点,VSAN延伸集群“仲裁站点”的角色由第三站点的见证主机担任,见证主机不提供计算资源和存储资源。数据站点之间通过万兆网络相连,数据站点与见证主机使用普通网即可。当一个站点的虚拟机对VSAN进行写操作的时候,数据将会被双写到两个数据站点磁盘上。版本要求VSAN延伸集群版本要求:vCenterServer6.0U1、ESXi6.0U1。VSAN延伸集群既支持混合磁盘,又支持全闪存阵列。配置规模SAN延伸集群最小配置是1+1+1(两个数据站点和一个仲裁站点ESXi的数量),最大是15+15+1,VSAN双活两个站点的ESXi数量相同。目前高端X86服务器配置都很高,因此15个ESXi对于中小规模的双活需求是够的。如果是大规模的双活要求,那就需要配置多个VSAN延伸集群。每个VSAN延伸集群有一个见证主机即可。见证主机见证主机可以是物理的ESXi,也可以在虚拟机中安装ESXi。VMware提供见证主机的Appliance(免费的OVF),它不消耗客户的vSpherelicense。见证主机不必加入到VSAN集群中,而是在创建VSAN延伸集群的时候进行选择,它位于VSAN集群之外。心跳机制VSAN延伸集群实施完毕后,VSAN会从主站点和备站点分别选出两个ESXi,做站点间心跳通讯检测。VSAN的Master节点位于主站点的某一个ESXi上,Backup节点位于第二个站点的某一个ESXi上。Master节点和Backup节点每一秒钟发一个心跳,如果持续5秒没有心跳,Master将会选择第二站点另外一个ESXi作为Backup。如果备站整体出现故障,Master会从主站点选一个ESXi作为心跳的backup。如果Master和仲裁站点5秒钟没有心跳,那么仲裁站点将被认为出现故障。出现这种情况,可以配置一个新的见证主机即可。脑列问题在解决脑列问题方面,VSAN延伸集群的做法是手工指定主站点。也就是发生脑列后,指定哪个站点存活,这样就避免了很多随机事件。性能VSAN延伸集群很好低解决了本地读的问题。在标准VSAN集群,虚拟机的读操作是从所有数据副读。例如FTT=1,那么对数据进行读操作的时候,50%的I/O来自第一个副本,另外50%I/O将来自第二个副本。同理如果有三个副本的话,那么读的时候,每个副本各占33%。而VSAN延伸集群增加了本地读的特性,例如主站点一个虚拟机读取数据时,所有I/O操作都将源于本站点ESXi的本地盘。为了保证性能,在VSAN延伸集群中,尽量减少不必要的站点之间的vMotion。因为读cache预热是在一个故障域内完成的,如果虚拟机vMotion到另外一个故障域,对方站点的cache则需要过一会才起作用。VSAN集群利用vSphere特有的优势,如vSphereHA的affinity(设置VM和ESXi之间的关联,当某一个ESXi发生故障时,如果条件允许,虚拟机优先在本故障域内其它ESXi上重启),这样既保证性能,又保证高可用。网络要求VSAN的数据站点之间,或者数据站点和仲裁站点之间的网络,二层和三层网络都可以支持,这降低了对大二层的要求。但是,我们推荐在数据站点之间使用二层网络。1数据站点站点之间小于5ms之间的延迟(RTT)。数据站点与仲裁站点之间200的延迟不能超过200ms。2数据站点和仲裁站点之间的带宽最不小于50-100Mbps.3网络划分:管理网络:连接三个站点。二层或者三层网络VSAN网络:连接三个站点。数据中心之间建议二层网络,与仲裁站点之间使用三层网络。VMnetwork:连接数据中心。建议二层网络,这样当虚拟机从一个数据站点vMotion或HA到另外一个数据站点时,IP地址不变。vMotion网络:连接数据中心。二层,三层网络都可以。网络协议1数据站点之间既有组播(metadata/state)又有单播(IO).数据站点和仲裁站点之间走的单播,数据站点之间和数据站点内使用组播协议。最后,向大家介绍一下VMware的两地三中心解决方案。在这个方案中,数据中心分为同城和异地。同城两个数据中心,异地作为灾备中心通常在远端城市。同城之间,利用VSAN延伸集群提供数据同步复制,异地之间,利用VR提供数据的异步复制。这里需要注意的是,在这个方案中,VR提供的RTO最短可以做到5分钟。根据这个方案,如果数据站点内,某一个X86服务器出现故障,vSphereHA会优先让虚拟机在数据中心内其他esxi主机上重启;如果同城一个数据中心整体出现故障,那么HA将会使本站点的虚拟机在同城另外一个站点的esxi重启。如果同城两个数据中心均出现故障,那么SRM将会让这些虚拟机在异地灾备站点重启。