基于VXLAN技术的高校数据中心灾备方案的设计与实现
2023-04-06郑霁郭雯王军王辉史宇
郑霁 郭雯 王军 王辉 史宇
关键词:数据中心;灾备中心;VXLAN;虚拟二层网络
0 引言
近几年,随着云计算技术的飞速发展,高校数据中心利用虚拟化等技术将基础硬件资源池化,建设私有云[1],服务器的整合降低了物理复杂性,提高了运营效率,并且能够动态地重新调整基础资源的用途,使其以最佳方式快速满足日益动态化的业务应用需求[2]。各种资源的共享以及更加灵活地调用资源,使得高校信息化建设得到了高速发展,数据中心承载的应用系统也在快速增长。如何保证系统稳定性、业务连续性和数据可用性已经成为高校信息化建设必须注意的重要问题[3],考虑到建设成本和管理成本,目前高校多采用本地数据中心和同城灾备中心模式。其中,数据中心负责日常数据的生产运行,承担学校各信息业务系统;而灾备中心则为业务系统的正常运行保驾护航,是数据中心预防灾难、减小损失的重要手段。
1 高校数据中心现阶段面临的问题和挑战
1.1 传统网络无法满足数据中心的灾备要求
数据中心网络通常采用三层架构,分别为接入层、汇聚层和核心层。数据中心和灾备中心通过IP网络在三层互联。在汇聚层内,可以实现数据中心内部业务虚拟机的在线迁移,做到在虚拟机的迁移过程中业务不中断;或者实现底层服务器的高可用性,做到服务器故障后,虚拟机能够立刻漂移重启。数据中心大量使用服务器虚拟化技术,虽然大幅提升了数据中心的计算密度,但同时也带来了因业务部署高度集中而产生的风险[4]。面对不同的灾难以及业务系统不同的灾难恢复级别需求,具备异地灾备和异地双活的能力显然是数据中心目前的迫切要求。
无论是虚拟机在线迁移至灾备中心,还是灾备中心在灾难后接管业务,抑或是虚拟机重启漂移至灾备中心,都需要保证虚拟机迁移前后,其IP地址、MAC地址等参数维持不变。这就要求虚拟机的在线迁移或者漂移必须发生在一个二层域中。而传统数据中心网络的二层域是在一个汇聚层内,也就是数据中心内部,因此将虚拟机的迁移限制在了一个局部范围内,显然不能满足高校数据中心的灾备需求。高校数据中心的传统网络拓扑如图1所示。
1.2 传统网络的容量有限
随着高校各业务系统的迅速发展,一个数据中心会有巨大数量的虚拟机需要通信。而容器技术的快速发展使得容器应用也将被大规模部署。传统的VLAN ID是12比特,只能支持212 (4096) 个网络上限,将逐渐满足不了不断快速扩展的数据中心规模。同时,当现有二层网络规模大到一定程度时,共享的二层广播域带来的BUM(Broadcast,Unknown Unicast,Multicast) 流量会严重影响正常的网络通信。大量虚拟机的MAC地址、容器的MAC地址也会导致数据中心交换机的MAC地址表日渐庞大,影响转发效率的同时也给网络的扩容带来不便[5]。
2 基于VXLAN 技术的高校数据中心网络设计
2.1 VXLAN 技术
VXLAN(Virtual eXtensible Local Area Network,虚拟扩展局域网)是一种Overlay(覆盖网络)技术,其本质是一种隧道封装技术[6]。VXLAN 技术通过建立VXLAN 隧道,可以在传统的网络架构上创建大量的虚拟可扩展局域网,在现有物理基础架构的IP网络上创建一个叠加的灵活逻辑二层,而无须重新设计任何数据中心网络。利用已有的IP 网络,可以为分别部署在不同地点的数据中心提供二层互联,同时隔离更多的租户。将二层报文用三层协议进行封装,可实现将虚拟的二层网络在三层范围内进行扩展,同时满足数据中心大二层虚拟迁移和多租户的需求。
虚拟网络独立于底层IP 网络硬件并将物理网络视为可以按需使用和调整用途的传输容量池。与传统架构不同的是,无须重新配置底层物理硬件或拓扑,即可通过编程方式置备、更改、存储、删除和还原虚拟网络。这一革命性的联网方式可发挥软件定义的数据中心的全部潜能。VXLAN虚拟网络使得联网方式发生了变革,不仅使数据中心管理人员能够将敏捷性和经济性提高若干数量级,而且还能极大地简化底层物理网络的运营模式。
VXLAN网络是使用“第3 层中的第2 层”隧道实现的逻辑网络,将虚拟机看到的拓扑从物理网络中解耦出来[7],可以满足灵活的组网需求。它使用MACin-UDP 进行封装,在原始的二层数据帧中添加了VXLAN头部,并被放置到UDP-IP数据包中[8]。由于是利用了通用的UDP 传输,因而成熟度极高。VXLAN的报文封装如图2所示。
VXLAN的报文在原始二层帧之前添加了VXLAN头部和UDP头部封装,完成这两个封装之后,再添加IP头部和以太网头部。
VXLAN头部添加在原始二层帧的前面,64比特(8字节)长度,其中最主要的是VNID(VXLAN网络标识)占用24个比特(3字节);UDP头部是在VXLAN头部和原始二层帧的前面进行封装,64比特(8字节)长度;IP头部是VXLAN隧道的本端节点和对端节点地址(即VTEP IP) ;以太网头部是VXLAN隧道的本端节点和对端节点的MAC地址。
目标宿主主机接收到VXLAN报文后,拆除外层UDP头部,并根据VXLAN头部的VNI把原始报文发送到目的虚拟机[9]。
可以看出,利用VXLAN技术能够很好地满足以下需求:
1) 大二层网络
当VXLAN网络中的虚拟机需要彼此访问时,就会对原始数据包进行封装。报文添加的IP头部是底层源宿主主机和目標宿主主机的端点地址(即VTEPIP) ;报文添加的以太网头部则包含上述主机的MAC地址的二层帧信息。就会在其所属的VTEP和目标虚拟机所属的VTEP之间建立一条隧道,该隧道可以穿越其他数量众多的交换机。这样,将会处于同一个VXLAN中。因此,轻松打破物理网络的局限,让虚拟机的迁移、漂移及双活都可以实现。
2) 网络扩展
在VXLAN 的头部包含有一个VXLAN 标识(即VNI,VXLAN Network Identifier) ,用于区分VXLAN段。VNI在数据报文之中占24比特,故可支持22(4 大于1600万)个VXLAN的同时存在,远多于VLAN的212(4096) 个网络上限。利用VNI可以满足数据中心多用户的需求,解决各类用户之间的安全隔离问题,也减少了VLAN ID 在物理网络中的使用。逻辑二层也支持将逻辑网络空间(VXLAN) 与物理网络(VLAN)桥接。
3) 交换机的MAC地址表维护
在底层虚拟化主机部署VXLAN网络之后,一个底层主机使用一个VTEP IP,一个主机上的所有虚拟机共用一个VTEP IP,通过数据包的探测和动态学习,可以让不同VTEP设备之间知晓彼此的IP以及其与虚拟机设备MAC之间的映射关系。有了这些映射信息,就可以对VXLAN的数据包进行转发。VXLAN的数据包采用MAC-in-UDP 形式,从交换机的角度来看,只是不同的VTEP之间在传递UDP 数据,并不需要记录虚拟机的MAC地址。因此,大量虚拟机和容器应用造成的数据中心交换机MAC 地址表过于庞大、影响转发效率且维护困难的问题可以得到解决。
2.2 VXLAN 的相关概念
1) VTEP (VXLAN Tunnel Endpoints)
VTEP,是VXLAN隧道端点,VXLAN隧道的起点和终点。报文的封装和解封装处理均在VTEP上进行。VTEP可以是交换机,也可以是物理服务器。
VXLAN 分段构建于VXLAN 隧道端点(VTEP) 之间,VXLAN报文中源IP地址为隧道一端节点的VTEP地址,目的IP地址为隧道另一端节点的VTEP地址,一对VTEP地址就对应着一个VXLAN隧道[10]。VTEP会将虚拟机发出的原始报文封装成一个新的UDP报文,并使用物理网络的IP和MAC地址作为外层头,对网络中的其他设备只表现为封装后的参数。从底层主机发送到接入设备的报文便是经过封装后的报文。这样,接入设备就不需要学习虚拟机的MAC地址,它只需要根据外层封装的报文头负责基本的三层转发[11]。在高校数据中心里,虚拟化的底层主机就是一个典型的VTEP 示例。
2) VXLAN 隧道(VXLAN Tunnel)
VXLAN隧道是一个逻辑上的概念,被封装的数据包在隧道的两个端点之间通过IP网络(此文章环境下,为教育专网)进行路由,被封装的数据包在网络上传递时所经过的逻辑路径称为隧道。
2.3 高校数据中心的VXLAN 网络建设思路
根据高校数据中心的现状和实际需求,采用成熟的基于VXLAN技术的产品,按照循序渐进的原则来逐步构建高校数据中心和灾备中心之间的VXLAN虚拟网络。建设的第一步,是在两个中心里选择部分虚拟化的主机来部署VXLAN产品,这样通过实际运行总结经验,并根据具体使用情况修改和调整,为之后数据中心全面部署VXLAN网络打下基础,而不是一蹴而就。
新的网络拓扑结构无须修改任何物理基础架构,数据中心和灾备中心之间仍然是基于现有的教育网专线在三层互联,将VXLAN产品部署在虚拟化的底层主机之上,配置所有隧道的端点地址(即主机的VTEP IP) ,建立彼此之间的端点通信,形成本地之间、本地和异地之间的隧道,成功构建在三层之上的逻辑二层网络。从而满足数据中心的多种灾备需求。图3是部署了基于VXLAN产品之后的高校数据中心的网络拓扑结构。
3 测试与验证
在本次测试环境里,底层主机选择合肥工业大学数据中心和灾备中心的10台主机设备,虚拟化架构未做任何调整;网络环境是现有教育网专线,未做任何调整。因为学校的数据中心和灾备中心使用的虚拟化产品为VMware,所以此次主机底层使用VMwareESXi 6.7以及VMware的VXLAN产品NSX。
10台主机型号、底层虚拟化软件版本及NSX产品版本如表1所示。其中,华为2288H V5为数据中心虚拟化主机,思科UCSB-B200-M5 为灾备中心虚拟化主机。
3.1 配置步骤
1) 主机安装NSX模块
在現网环境下,为数据中心和灾备中心共10台ESXi主机逐一安装NSX内核模块,以构建控制层面和管理层面结构。完成安装后,封装在安装文件VIB中的NSX内核模块在管理程序内核中运行,并提供分布式路由、分布式防火墙等服务以及VXLAN 桥接功能。此操作可以在NSX控制平面进行,或手动下载VIB文件安装。
2) 配置VTEP IP
该实验环境里,每台ESXi主机就是VXLAN隧道的起点或者终点(即隧道端点VTEP) 。配置VTEP地址,形成了本端和对端的VTEP地址,也即VXLAN隧道的源IP地址和目的IP地址。
主机的VTEP IP配置如表2所示。其中,host1-host6为数据中心的虚拟化主机,host7-host10为灾备中心的虚拟化主机。为了安全性,选择校内私有地址为VTEP IP。
3.2 验证VXLAN 隧道建立
完成配置ESXi的VTEP地址(即隧道两端节点的IP) ,需要让任意隧道两端节点进行通信测试,如果数据包可以正常传输,则证明隧道成功建立。
测试结果如图4所示。从结果可以看出,本地数据中心两端节点之间、数据中心和灾备中心的异地两端节点之间都可以正常通信,隧道建立成功。
3.3 验证灾备中心可以接管数据中心虚拟机
如果数据中心的虚拟机迁移至灾备中心后,保持IP不变且正常提供业务,说明虚拟机可以在两个中心之间迁移,则证明两个中心之间的VXLAN虚拟二层网络部署成功,可以实现让两地的虚拟二层网络进行通信。
1) 验证步骤
通过VMware 灾备软件Site Recover Manger 将本地数据中心设置为受保护站点、异地灾备中心设为恢复站点。
随机选择本地数据中心host1-host6上的业务虚拟机A(IP 172.16.10.11,宿主主机host2) 加入保护组,允许保护复制。
进行同步复制,将虚拟机A的副本A放置在灾备中心的host7。
复制结束后,将虚拟机A关机,并启动灾备中心的副本A。测试可以正常访问172.16.10.11(即虚拟机A) 的业务。
2) 验证结果分析
当虚拟机A在host2上关闭,再启动host7上的副本A时,host2和host7的VTEP表格会分别更新其与A的MAC之间的映射关系。当有访问172.16.10.11的请求时,会访问host7的VTEP IP,查看映射表,继而转发,达到访问目标IP(此时该IP对应虚拟机已变更为副本A) 的目的,而不再是访问host2的VTEP IP。这样就实现了在灾备中心恢复的副本A,保持IP不变,业务正常。至此,在灾备中心里运行的副本A完全取代了原数据中心的虚拟机A。对用户来说,不用做任何修改,仍然可以按照之前的方式访问172.16.10.11的业务。
以上测试表明,虚拟机在两个中心之间可以实现跨地区的灾备迁移,灾备中心成功接管了数据中心的虚拟机。证明VXLAN虚拟二层网络可以满足异地灾备和异地迁移的要求,实现了两地二层虚拟网络的互通。
4 结束语
本文分析了VXLAN虚拟二层网络技术应用于高校数据中心的必要性,并结合成熟的网络虚拟化产品设计了基于VXLAN技术的网络架构,实现了完整的构建数据中心和灾备中心的虚拟二层组网配置方案,并通过实验证明了设计方案的实用性和可操作性,也为后续数据中心全面实施虚拟二层网络和实现异地双活中心积累了宝贵经验。