通过虚拟机动态迁移技术(如VMware的vMotion)可实现数据中心间的计算资源动态调配,通过服务器高可用集群技术可实现数据中心间应用级容灾,这两种应用场景统称为“分布式数据中心(Distributed Data Center)部署方式”,其特点是一个应用系统在IP地址不变的情况下可以在不同数据中心对外提供服务,但同一时段此应用只出现在一个数据中心,数据中心的访问用户不感知这种变化。本文针对这一特点,阐述分布式数据中心的三种互联方案——数据中心间存储网络互联方案、数据中心服务器接入层二层网络互联方案、数据中心间三层网络互联方案各自的技术实现要求。
一、 虚拟机跨中心动态迁移
最常见的分布式数据中心应用场景是基于“动态虚拟机迁移技术”的跨中心计算资源调配,如Vmware ESXi产品的vMotion技术可以在不中断虚机运行状态的情况下,将虚机从一个物理服务器迁移到另一个物理服务器。vMotion的核心技术是虚拟机内存及CPU运行状态在不同物理机之间的拷贝,而迁移前后的两台物理机需要通过“共享存储(Shared Storage)方式”或“双活存储(Active-Active)方式”共享相同的虚机映像文件。对于采用NAS技术实现的共享存储,两台物理机必须能访问到相同盘阵上的目标文件;对于采用SAN扩展技术实现的共享存储,两台物理机需要访问具有相同LUN ID的存储设备。共享存储方式的数据中心存储网络互联方案如图1左侧拓扑,存储设备只部署在A中心,NAS或SAN跨A、B中心部署,当虚机从A中心迁至B中心时,B中心的物理服务器仍然可以访问位于A中心的存储设备。
1. 挑战1:解决存储对延时敏感
跨中心做虚机迁移的第一个技术挑战是存储对延时敏感,B中心对存储的访问延时较大,随着两中心间的距离增大,迁至B中心的虚机I/O性能随之下降。采用双活(Active/Active)方式的存储技术(如EMC VELEX Metro)可以较好的解决共享存储方案的访问延迟问题。如图1右侧拓扑,在A、B中心都同时部署物理存储设备,并且通过SAN互联,由位于A、B中心的存储控制器在A、B中心间虚拟出一个逻辑存储设备,两中心的物理服务器访问具有相同LUN ID的逻辑存储设备,存储控制器实现读I/O请求的就近访问以及写I/O的双侧同步。因此,当A中心的虚机迁至B中心时,B中心的服务器通过本地的存储控制器访问本地的存储设备,因此该方案的I/O延迟比共享存储方式小。FC SAN互联通常借助传输技术(DWDM、SDH等)实现,也有基于IP技术的FCIP互联方案,但FCIP在实际部署中不多见。iSCSI SAN互联及NAS网络互联都基于TCP/IP技术实现。
2. 挑战2:保持迁移前的运行状态
跨中心做虚机迁移面对的第二个挑战是虚拟机完成vMotion之后,不仅IP地址不变,而且还保持迁移前的运行状态(如TCP会话状态),所以必须将涉及虚机迁移的物理服务器接入同一个二层网络,以便在虚机迁移之后仍然可以访问位于同一网段内的其他虚机(或服务器),因此这种应用场景要求构建跨中心的二层互联网络。二层互联的技术主要有如下三类(具体技术介绍详见《IP领航》第二十五期“大二层技术”,本文不再赘述)。
l MAC over IP(如H3C EVI技术)。通过在IP网络上动态构建隧道,实现以太网VLAN的跨数据中心部署。这种技术不依赖物理层技术和数据链路层技术,只要网络层IP可达,则VLAN就可顺势扩展。另外, EVI技术针对分布式中心应用场景进行了一些优化了设计,例如EVI实现了“网关分离部署特性”、“基于控制协议学习MAC地址”、“ARP代理特性”等,所以推荐使用该技术实现数据中心二层互联。
l VPLS。一种传统的二层VPN技术,运营商通常用该技术为客户提供多站点二层互通。VPLS主要是基于MPLS技术实现,且在各站点间通过广播来学习MAC地址,其配置管理较复杂,所以通常情况不建议采用该技术实现数据中心间二层扩展。
l DWDM/Dark Fiber。在物理介质层实现数据中心间互联,可以为跨中心二层扩展提供灵活的部署形式,例如,用户既可以直接将两中心的交换机互联实现VAN扩展,也可以先在数据中心间建立三层互联通道,再基于MAC Over IP(如H3C EVI技术)技术实现VLAN扩展,后者的好处在于可以利用MAC Over IP提供了技术特性简化分布式数据中心间MAC地址学习、三层路径优化等问题。
3. 挑战3:解决三层次优路径
跨中心做虚拟机迁移的第三个技术挑战是虚机完成动态迁移之后的三层访问路径问题,如图2左侧拓扑,虚拟机位于A中心,其IP地址是10.1.1.100。按照传统的部署思路,为保证客户机可以访问位于A中心的虚拟机,必须在网络三层转发的Ingress方向和Egress方向上做如下部署:
l Ingress方向(客户机到虚机):B中心的核心路由器向客户机方向通告虚机所在子网的路由(如10.1.10/24),而A数据中心的核心路由器将虚机所在的子网地址拆分成两条掩码更长的路由(10.1.1.0/25和10.1.1.128/25)向客户机方向通告,由此客户机到虚拟机的访问路径优选走A中心方向。
l Egress方向(虚机到客户机):A、B中心的汇聚层设备已实现二层互通,并且四台汇聚设备加入到同一个VRRP组,通过调节VRRP的设备优先级保证VRRP的VIP优选位于A中心的汇聚层设备。虚机的网关指向VRRP的VIP,由此虚机的Egress流量优选从A中心到客户机的路径。
传统部署思路存在一个问题,如图2右侧拓扑,当虚机从A中心迁至B中心时,A、B中心向骨干网通告的包含虚机地址的路由没有变化(Ingress流量方向不变),VRRP的主备关系也没有变化(Egress流量方向不变),因此位于B中心的虚拟机发出的流量必须通过跨中心的二层链路到达A中心的网关后,才能沿A中心的核心路由器被发往客户机,而B中心一侧的汇聚设备和广域网出口设备并没有被利用,这就出现了“次优路径”现象。对于分布距离较近的A、B中心(例如,位于同一个园区的两座建筑),这种部署不会带来更多的管理复杂性,容易被客户接受,但对于分区较远的A、B中心(数十公里),客户通常会希望根据虚机所在位置动态调整Ingress和Egress流量路径,确保客户机与虚机之间选择最优路径,以避免远距离排错和网络管理上的复杂性。
目前解决三层网络次优路径的关键技术如下:
l Ingress方向(客户机到虚机)的技术
¡ 动态DNS解析技术。同一个虚机在不同数据中心通过NAT(由SLB设备实现)呈现不同的服务IP地址。GSLB作为DNS服务器,并根据虚机所在的物理位置向客户机解析成不同的服务IP地址。这里的关键技术时如何向GSLB通告虚机的物理位置并修改DNS记录。
¡ RHI(Route Health Injection,路由健康注入)技术。该特性通常由SLB设备实现,SLB周期性的检测服务器/虚拟机的存活状态,当检查结果正常时,SLB向骨干网中发布一条该虚机地址的主机路由;当检查结果异常时,撤销该主机路由。由此就可以动态的调整从客户机到A或B中心的Ingress流量路径。
l Egress方向(虚机器到客户机)的技术
¡ 网关分离技术。为避免Egress方向的次优路径,必须在分布式数据中心两侧的汇聚交换机上同时部署相同的VRRP配置(A、B中心的汇聚设备上具有相同的VRRP VIP配置),并且还要保证VRRP所在VLAN的跨中心二层互通。如果汇聚设备已经采用了基于H3C EVI技术的VLAN扩展,则缺省支持VRRP的本地化部署,如果未部署类似EVI的技术特性,用户也可以通过配置相应的命令行实现该VRRP的本地化部署。
综上所述,为实现跨中心虚机迁移,分布式数据中心之间的三种网络互联的关键技术要求如下(如图3所示)。
l 存储网络互联。跨中心的存储网络互通是保证虚机动态迁移的必备条件,可采用“共享存储方式”或“双活存储方式”。
l 二层网络互联。虚机动态迁移之后IP地址不变,所以在虚机网络接入层应构建跨中心二层网络。可采用EVI、VPLS、DWDM/Dark Fiber等技术来实现。
l 三层网络互联。企业园区或分支机构的客户机通三层网络访问各数据中心,对于能支持虚机跨中心迁移的分布式数据中心来说,传统三层网络部署方案通过跨中心统一部署VRRP实现单侧网关出口,但该方案存在三层次优路径问题;一种新解决方案是采用“网关分离技术”并配合“RH技术或动态DNS技术”以优化三层转发路径。
二、 服务器高可用集群跨中心部署
分布式数据中心的另一个应用场景是跨中心的服务器高可用集群部署。服务器高可用集群(HA Cluster),是借助集群软件将网络上的多台服务器关联在一起,提供一致的服务,对外表现为一台逻辑服务器,在集群内同一时间只有一台物理服务器接管服务IP并对外提供访问,当该服务器发生故障时,备份物理服务器将接管服务IP以继续对外提供访问。高可用集群在发生服务器切换时,不会保留切换前的计算状态(如网络协议栈、内存、CPU等)。如图4所示。
各厂商(HP、IBM、微软、Veritas等)的集群软件需要各服务器采用共享存储、双活存储或支持同步复制的Active/Standby存储;由于集群切换之后的服务IP没有变化,所以跨中心部署高可用集群时不仅需要实现跨中心VLAN扩展,高可用集群间部署的网络心跳链路(Heartbeat)也必须在同一个VLAN内。
与虚机迁移应用情况相似,高可用集群在跨中心部署时也要考虑三层路径优化问题,其部署方式同虚机场景相同。
三、 结束语
本文讨论了分布式数据中心的两种应用场景:虚机跨中心迁移及服务器HA集群,其中涉及到三种网络互联及相关技术实现。事实上,无论哪种技术方案,只有真正切合客户的实际业务需求和物理环境才是一个好的方案。因此,方案设计时根据需求选择合适的技术实现方式尤为重要。