银行多活数据中心网络关键技术研究
作者:范媛媛
来源:《中国金融电脑》 2017年第3期
国家开发银行信息科技局 范媛媛
目前,传统的银行数据中心正在进行变革,加速从“两地三中心模式”(生产中心、同城灾备中心和异地灾备中心)向多活中心转变。多活中心是指多中心之间没有明确的主备之分,每个中心都有生产并互为灾备的任务。这种转变可以解决传统模式存在的问题。一是提高设备利用率。灾备中心只做数据备份不接管业务,投资回报率低;多活中心不再设置专用的灾备资源,不同中心的资源同时承担生产和灾备人物。二是实现最高级别的可用性。异地灾备无法实现实时数据同步,灾备切换非透明,用户能够感知。多活中心可以实现数据零丢失、实时切换。三是提升了运维资源的灾备接管能力。灾备中心的运维资源参与日常生产较少,灾备接管能力较弱;多活中心的运维资源都参与生产,当一个中心发生灾难时,其他中心的人员职责、运维流程、设备资源、系统资源不需过多调整即可接管。
虽然多活数据中心的优势明显,但其建设却是一个复杂的系统工程,涉及网络、存储、数据库、应用系统等技术层面。就网络层面而言,跨数据中心的网络互联互通设计、网络对业务的感知能力及对应用流量的牵引是方案设计的重点和难点,本文从这两个方面对多活数据中心网络进行研究。
一、数据中心间大二层网络扩展
实现数据中心多活的必要条件是服务器资源的跨数据中心调配。随着虚拟化技术的发展,多活数据中心引入服务器虚拟机动态迁移技术,虚拟机迁移要求迁移前后的IP 和MAC 地址不变,这就需要虚拟机迁移前后的网络处于同一个二层域内。因此,跨数据中心虚拟机迁移和服务器跨数据中心集群要求跨数据中心的大二层网络扩展,从根本上改变了传统的数据中心间三层路由互联的网络架构。
1. 二层互联方式
数据中心之间部署裸光纤,通过port-channel 将两个数据中心互联,使用trunk 在数据中心间实现VLAN的扩展,是纯二层的部署方式。纯二层网络架构的优点是网络结构简单,转发速度快,稳定性好,部署简单;缺点是可扩展性较差,适用于端对端扩展,无法扩展到第三个节点,另外二层广播域过大存在一定的安全隐患,仅适合小型的数据中心间互联。为了避免二层风险扩大,各主流网络技术厂商提出解决二层环路的解决方案,例如思科的VPC 技术、华为的CSS 技术和华三的IRF 技术。
2. 基于封装技术的三层互联方式
目前数据中心之间一般是通过广域网三层路由互联,为利用现有网络资源快速实现跨数据中心大二层扩展,就需要在广域网上建立一个逻辑二层通道,即“L2 over L3”封装技术。该技术的工作原理是一种基于MAC 的路由,将二层MAC 数据帧封装在三层IP 数据包中,通过控制层面协议建立基于MAC 的路由表,通过各数据中心的边缘设备将数据包逐一动态封装进行转发,从而把隔离在不同数据中心的二层域叠加成一个跨数据中心的大二层网络。各主流网络技术厂商也提出各自的解决方案,例如思科的OTV 技术、华三的EVI技术。以EVI 技术为例,跨数据中心网络大二层部署方式如图1 所示。
采用这种部署方式的最大好处是不影响现有数据中心网络,通常在数据中心汇聚设备上旁挂两台边缘设备进行数据中心之间的EVI 互联,兼做负载分担和设备冗余考虑。当数据中心站点EVI 设备上线时,原有的EVI节点不需要做任何改变就能够自动完成所有EVI 虚链路的建立,进而实现大二层网络的扩展。
二、基于智能DNS 服务的多活数据中心网络架构设计
对于业务级别的多活而言,在多活数据中心网络环境下,通过数据中心前端多活及内部多活技术,用户能够就近或按其他预定策略访问可用数据中心的相应服务,从而实现应用系统的高可用,提高应用系统的响应速度,提升用户访问体验。
基于智能DNS 服务的多活数据重心网络实现原理是利用智能DNS 解析技术,业务应用以唯一域名方式为所有发布相同服务的数据中心提供统一的入口,依据预先设定的负载策略,将客户端访问请求分配到不同数据中心,从而实现数据中心站点间的负载均衡调度。需要部署的关键网络设备是全局负载均衡设备和本地负载均衡设备,分别以F5 厂商的GTM 和LTM 为例。GTM 设备部署于基础服务器区,作为全网的智能DNS服务器,负责多活数据中心业务的智能动态DNS 解析;GTM 通过LTM 监控业务状态,并可实时通知同步组内的其他GTM 设备,对于每一个DNS 请求按照预定策略返回最佳结果。LTM 设备部署于各数据中心内部的服务器区,负责各自数据中心内部的服务器间负载均衡和健康检查。
本文设计的网络架构创新点是将数据中心内部的服务器区按功能划分为Web 层、APP 层和DB 层,在每一层前面均部署LTM 设备,应用系统从客户端到Web层、Web 层到APP 层、APP 层到DB 层都进行健康检查和智能域名解析,以实现各层流量在数据中心间及服务器间动态分发,避免了因某一层故障导致整个数据中心服务无法使用的情况,从而大大提高整个应用系统的可用性及每层流量分发的动态最优化。网络架构图如图2 所示。
基于智能DNS 服务的双活应用网络调度处理过程如图3 所示,具体步骤如下:
(1) 分布在两个数据中心站点的DC1-LTM 和DC2-LTM,对其上部署的虚IP(VIP)分别为VIP1 和VIP2,对应同一个域名如web.com 的相同业务,进行健康检查。
(2)VIP1 和VIP2 健康检查通过, 则GTM 的web.com 域名对应的VIP1 和VIP2 的DNS 解析条目均标记为可用。
(3) 某客户端访问web.com 前, 向GTM 发起DNS 解析请求。
(4)GTM 在VIP 可用性判断的基础上,根据预先设定策略,返回查询结果。如按就近机制web.com 对应的IP 地址是DC1-LTM 上配置的VIP1。
(5)客户端发起的业务流量经过IP 网络转发至DC1-LTM 上配置的VIP1。
(6)DC1-LTM 按照负载均衡策略将业务流量分发到DC1-server 上。
(7)若步骤(1)中的VIP1 健康检查失败,GTM的web.com 域名对应的VIP1 DNS 解析条目标记为不可用,对新发起的DNS 解析请求,将全部回复可用的DC2-LTM 上的VIP2。但因客户端具有本地DNS 缓存,在缓存超时之前,客户端仍会在本地将web.com 解析成VIP1。
(8)DC2-LTM 按照负载均衡策略将业务流量分发到DC2-server 上。
从Web 层到APP 层和APP 层到DB 层的网络调度过程相同,只需将访问源看做客户端即可。
多活数据中心的建设和发展无疑是当前银行业积极探索的技术热点之一。本文对传统数据中心向多活数据中心转变中涉及的网络架构调整、关键网络技术及业界实践进行了设计和分析,解决了虚拟机跨数据中心迁移、服务器跨数据中心集群、网络对业务动态可用性和状态感知及数据中心间业务协同调度机制等问题,实现了为应用系统的多活运行提供智能、可靠、高效的网络平台。此外,为确保多活数据中心的良性运转,技术仅仅是其中一个方面,管理、服务、流程、人员等方面也都需要进行配套调整优化。