如今,企业对核心业务7*24小时的不间断运行和数据保护需求越来越高,企业越来越依赖于数据处理来进行业务运营,一旦数据由于某种原因丢失,就有可能造成整个组织在运营上的重大不便和经济损失,企业的信誉也将受到影响。与此相适应,数据保护技术也逐渐发展,从以前单纯的数据备份到数据容灾,从主-备模式的容灾方案到"双活"数据保护方式,IT厂商和用户一直不断的采取各种各样的办法来试图保护数据存储,保护企业核心业务连续运行。
IT厂商的双活解决方案模式主要分为两类,网关型双活和阵列型双活。网关型双活的典型代表有EMC vplex,IBM SVC等,阵列型双活的典型代表有NetApp MCC,HDS GAD,EMCSRDF等,每厂商的解决方案根据不同的应用的场景都有各自的优势之处。
EMC存储双活方案是通过vPlex网关产品,具备接管异构其他厂商存储的能力(有相关性兼容性列表说明),将各存储厂商的存储虚拟化为存储池,为上层应用服务器提供存储资源。从2010年vPlex发布以来其的硬件已经更新了VS1、VS2和VS6三代。2016年推出的VS6硬件引擎间通过40Gb IB互联(替代FC),在性能上相比VS2硬件提升了2倍、时延下降1/3,并支持更多卷数量。vPlex6.0 (VS6硬件) 也升级OS至GeoSynchrony6.0针对闪存做了优化。
物理结构
组网:主机同时连接到两站点的vPlex,两站点的vPlex之间通过FC或10Ge连接,后端阵列只与本地的vPlex连接;vPlex之间和vPlexWitness之间均需要IP网络连接。vPlexManagement Console 是 VPLEX 机柜中的1U 服务器。此服务器向vPlex提供GUI管理界面,在双引擎和四引擎配置中,此服务器由UPS 提供备用电源。
异构接管:看看vPlex如何接管外部设备的,外部(包含异构存储)存储把LUN映射给vPlex后,在vPlex上呈现为Storage vol,基于Storage Vol在生产Extents,它可以是Storage Vol的部分或全部(每个StorageVol最多128个),Extents不能跨Storage Vol,再以Raid的形式组织Extents成Dev(Raid支持0,1和拼接);没有被其他Dev组织的Dev称为Top LevelDevice,在Top Level Device上创建Virtualvolumes提供给主机,并支持在线扩展。最后由主机接口和Virtual Volume组成Storage Views,可以直接映射给主机访问。
架构:从vPlex5.0(VS2硬件)开始,在vPlex产品系列vPlex Local和vPlex Metro中添加了vPlex Geo,从而扩展并增强了vPlex 4.0(VS1硬件)虚拟存储的功能。vPlex Geo 扩展了vPlex Access Anywhere 存储的覆盖范围,能通过异步通信支持多达 50ms 的往返时间(RTT)站点间延迟。vPlex通过 Access Anywhere支持长距离共享、访问和重新定位数据拷贝。
vPlex系统可以包含一个或两个vPlex 群集。vPlex Local系统包含一个群集,vPlex Metro和vPlex Geo包含两个群集系统组成。这些群集可提供vPlex Access Anywhere功能。每个vPlex 群集均包含vPlex Management Console,一个、两个、四个或八个引擎,每个引擎包含一个备用电源。
vPlexLocal用于使用单个vPlex 群集管理数据中心内的数据移动和访问。支持单、双或四配置(分别包含一个、两个或四个引擎),本地vPlex组成local集群(4引擎8控制器),两站点local集群再组成Metro远程集群(最大8引擎,16控制器),16节点AA集群。
vPlexMetro使用两个vPlex群集且包括独特功能,支持使用直写缓存方式在两个群集之间镜像数据。vPlexMetro部署中的群集不要求有相同数量的引擎。例如,vPlex Metro系统可能由一个带两个引擎的群集和另一个带四个引擎的群集组成。
vPlex Geo用于两个异步远距离节点之间使用 Access Anywhere进行访问。vPlex Geo分布式卷使用回写缓存支持 Access Anywhere分布式镜像。如同 vPlex Metro,vPlex Geo系统也包含两个群集,这些群集无需具有相同数量的引擎。
vPlexMetro 和 vPlex Geo系统可根据需要包括 Witness。Witness 作为虚拟机部署,且只支持VMware,部署在与两个vPlex群集不同的故障域中(第三方站点)。在两个vPlex 群集之间进行仲裁,发生站点故障和群集间通信中断时,Witness 用于改善应用程序可用性。
Witness与vPlex Metro(RTO和RPO为0) 和 vPlexGeo(RTO=0,群集间最大50毫秒的延迟,RPO接近0)配合使用,协调无缝故障切换(区分站点故障或连接故障)作为 ESX 主机中的虚拟机运行,驻留在两个vPlex群集以外的域中。通过IP连接到vPlex。
双活特性
vplex双活特性就是通过vPlex Metro的Distributed Device(分布式镜像卷)功能实现,并提供跨站点的双活应用。vPlex Metro由两套vPlex集群构成,每个站点的vPlex设备都有自己专属的本地存储阵列。通过创建分布式镜像卷为跨设备的镜像卷,可提供双活访问。两个站点的vPlex集群各有一个卷,两个卷的ID一样。
vPlex的关键能力AccessAnywhere是通过分布式一致性缓存技术(Distributed Cache Coherenece)来实现,在集群内及跨区域的另一集群间完成缓存数据的一致性;实现跨主机、跨集群、跨数据中心的访问和在节点之间同步镜像。vPlex通过把控制器的单个内存系统进行合并以形成分布式缓存。分布式设计可以跨 vPlex Metro 和Geo系统进行扩展,以提供全局系统的缓存连贯性和一致性。
分布式一致性缓存技术在实现上面,并没有强求所有的Cache都保持统一,而是基于目录形式来跟踪细小的内存块通过锁的粒度来加强扩展能力。 每个引擎的cache分为本地Cache (Cache local)和全局Cache (Cache global);每引擎的本地Cache 只有26GB,其余为全局Cache 。
读的时候先读Local Cache ,如命中直接读取;如在Global中命中,则从对应的引擎Cache中将其读取到Local Cache,再反馈主机;如没有命中,则从本地后端的存储中读取到Local中,并同时修改Local和GlobalCache中的信息与索引信息。
写如数据时,vPlex Metro会通过透写方式写到两个站点,待数据写入两地的磁盘阵列后,才会向主机回应写完成。数据写入后,Cache一致性机制会随即通知Cache页面的变化,并在所有引擎上共享该信息,达到各引擎系统的共享。
由于不同站点的主机可同时读写访问同一个卷,分布式缓存一致性技术保证不同站点的主机访问数据的一致性,这确保了主机访问分布式卷时将始终收到该卷最新的一致数据。
写的时候先判断是否在Local、Global Cache中有对应的旧数据,如没有直接写入Local cache;如有旧数据,先废除旧数据再写入Local;再写入后端存储;然后反馈完成,同时Global Cache中的索引做相应修改。在vPlex Metro、local中数据写入两个集群下方硬盘即反馈完成;在vPlex GEO中数据写入本地集群的存储、远端内存,即反馈完成。
vPlexLocal和Metro都使用直写缓存模式。在直写缓存中,在虚拟卷收到主机的写请求时,数据将写入到映射卷的后端存储卷。阵列确认该数据后,vPlex会将确认发送回主机,指示写入成功。此缓存模式不适用于 vPlex Geo 系统,在该系统中 vPlex群集支持更大RTT 间隔部署。对于此距离,大多数应用程序不能接受同步直写操作的延迟。
相反vPlexGeo使用回写缓存实现无需同步操作的数据持久性。在此缓存模式中,vPlex接受主机写入缓存并将镜像数据复制到另一个本地控制器的内存中,然后向主机确认数据。最后再将数据异步转储到后端存储阵列。出现电源故障时,vPlex中的缓存保险存储逻辑会将任何未写入的缓存数据存储到本地SSD存储上。
vPlex的分布式Cache针对读IO可以加速、提高性能;但是写IO会增加延时。在IO写入时,vPlex接收主机IO后,需要查询远程vPlex节点是否有读缓存(旧数据),通知该缓存失效,远程vPlex返回确认后,才可写入镜像卷。