写点什么

分布式数据中心网络互联技术实现

作者:C++后台开发
  • 2022 年 8 月 29 日
    湖南
  • 本文字数:3968 字

    阅读完需:约 13 分钟

通过虚拟机动态迁移技术(如 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:解决存储对延时敏感

跨中心做虚机迁移的第一个技术挑战是存储对延时敏感,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 技术实现。

​图 1. 分布式数据中心的存储互联网络

挑战 2:保持迁移前的运行状态

跨中心做虚机迁移面对的第二个挑战是虚拟机完成 vMotion 之后,不仅 IP 地址不变,而且还保持迁移前的运行状态(如 TCP 会话状态),所以必须将涉及虚机迁移的物理服务器接入同一个二层网络,以便在虚机迁移之后仍然可以访问位于同一网段内的其他虚机(或服务器),因此这种应用场景要求构建跨中心的二层互联网络。

MAC over IP(如 H3C EVI 技术)。通过在 IP 网络上动态构建隧道,实现以太网 VLAN 的跨数据中心部署。这种技术不依赖物理层技术和数据链路层技术,只要网络层 IP 可达,则 VLAN 就可顺势扩展。另外, EVI 技术针对分布式中心应用场景进行了一些优化了设计,例如 EVI 实现了“网关分离部署特性”、“基于控制协议学习 MAC 地址”、“ARP 代理特性”等,所以推荐使用该技术实现数据中心二层互联。

VPLS。一种传统的二层 VPN 技术,运营商通常用该技术为客户提供多站点二层互通。VPLS 主要是基于 MPLS 技术实现,且在各站点间通过广播来学习 MAC 地址,其配置管理较复杂,所以通常情况不建议采用该技术实现数据中心间二层扩展。

DWDM/Dark Fiber。在物理介质层实现数据中心间互联,可以为跨中心二层扩展提供灵活的部署形式,例如,用户既可以直接将两中心的交换机互联实现 VAN 扩展,也可以先在数据中心间建立三层互联通道,再基于 MAC Over IP(如 H3C EVI 技术)技术实现 VLAN 扩展,后者的好处在于可以利用 MAC Over IP 提供了技术特性简化分布式数据中心间 MAC 地址学习、三层路径优化等问题。

【文章福利】另外小编还整理了一些 C/C++后台开发教学视频,相关面试题,后台学习路线图免费分享,需要的可以自行添加:Q群:720209036 点击加入~ 群文件共享

小编强力推荐 C++后台开发免费学习地址:C/C++Linux服务器开发高级架构师/C++后台开发架构师​

挑战 3:解决三层次优路径

跨中心做虚拟机迁移的第三个技术挑战是虚机完成动态迁移之后的三层访问路径问题,如图 2 左侧拓扑,虚拟机位于 A 中心,其 IP 地址是 10.1.1.100。按照传统的部署思路,为保证客户机可以访问位于 A 中心的虚拟机,必须在网络三层转发的 Ingress 方向和 Egress 方向上做如下部署:

Ingress 方向(客户机到虚机):B 中心的核心路由器向客户机方向通告虚机所在子网的路由(如 10.1.10/24),而 A 数据中心的核心路由器将虚机所在的子网地址拆分成两条掩码更长的路由(10.1.1.0/25 和 10.1.1.128/25)向客户机方向通告,由此客户机到虚拟机的访问路径优选走 A 中心方向。

Egress 方向(虚机到客户机):A、B 中心的汇聚层设备已实现二层互通,并且四台汇聚设备加入到同一个 VRRP 组,通过调节 VRRP 的设备优先级保证 VRRP 的 VIP 优选位于 A 中心的汇聚层设备。虚机的网关指向 VRRP 的 VIP,由此虚机的 Egress 流量优选从 A 中心到客户机的路径。

​图 2. 分布式数据中心的三层互联路径优化挑战

传统部署思路存在一个问题,如图 2 右侧拓扑,当虚机从 A 中心迁至 B 中心时,A、B 中心向骨干网通告的包含虚机地址的路由没有变化(Ingress 流量方向不变),VRRP 的主备关系也没有变化(Egress 流量方向不变),因此位于 B 中心的虚拟机发出的流量必须通过跨中心的二层链路到达 A 中心的网关后,才能沿 A 中心的核心路由器被发往客户机,而 B 中心一侧的汇聚设备和广域网出口设备并没有被利用,这就出现了“次优路径”现象。

对于分布距离较近的 A、B 中心(例如,位于同一个园区的两座建筑),这种部署不会带来更多的管理复杂性,容易被客户接受,但对于分区较远的 A、B 中心(数十公里),客户通常会希望根据虚机所在位置动态调整 Ingress 和 Egress 流量路径,确保客户机与虚机之间选择最优路径,以避免远距离排错和网络管理上的复杂性。

目前解决三层网络次优路径的关键技术如下:

Ingress 方向(客户机到虚机)的技术

动态 DNS 解析技术。同一个虚机在不同数据中心通过 NAT(由 SLB 设备实现)呈现不同的服务 IP 地址。GSLB 作为 DNS 服务器,并根据虚机所在的物理位置向客户机解析成不同的服务 IP 地址。这里的关键技术时如何向 GSLB 通告虚机的物理位置并修改 DNS 记录。

RHI(Route Health Injection,路由健康注入)技术。该特性通常由 SLB 设备实现,SLB 周期性的检测服务器/虚拟机的存活状态,当检查结果正常时,SLB 向骨干网中发布一条该虚机地址的主机路由;当检查结果异常时,撤销该主机路由。由此就可以动态的调整从客户机到 A 或 B 中心的 Ingress 流量路径。

Egress 方向(虚机器到客户机)的技术

网关分离技术。为避免 Egress 方向的次优路径,必须在分布式数据中心两侧的汇聚交换机上同时部署相同的 VRRP 配置(A、B 中心的汇聚设备上具有相同的 VRRP VIP 配置),并且还要保证 VRRP 所在 VLAN 的跨中心二层互通。如果汇聚设备已经采用了基于 H3C EVI 技术的 VLAN 扩展,则缺省支持 VRRP 的本地化部署,如果未部署类似 EVI 的技术特性,用户也可以通过配置相应的命令行实现该 VRRP 的本地化部署。

综上所述,为实现跨中心虚机迁移,分布式数据中心之间的三种网络互联的关键技术要求如下(如图 3 所示)。

​图 3. 分布式数据中心的三类互联网络

存储网络互联。跨中心的存储网络互通是保证虚机动态迁移的必备条件,可采用“共享存储方式”或“双活存储方式”。

二层网络互联。虚机动态迁移之后 IP 地址不变,所以在虚机网络接入层应构建跨中心二层网络。可采用 EVI、VPLS、DWDM/Dark Fiber 等技术来实现。

三层网络互联。企业园区或分支机构的客户机通三层网络访问各数据中心,对于能支持虚机跨中心迁移的分布式数据中心来说,传统三层网络部署方案通过跨中心统一部署 VRRP 实现单侧网关出口,但该方案存在三层次优路径问题;一种新解决方案是采用“网关分离技术”并配合“RH 技术或动态 DNS 技术”以优化三层转发路径。

二、 服务器高可用集群跨中心部署

分布式数据中心的另一个应用场景是跨中心的服务器高可用集群部署。服务器高可用集群(HA Cluster),是借助集群软件将网络上的多台服务器关联在一起,提供一致的服务,对外表现为一台逻辑服务器,在集群内同一时间只有一台物理服务器接管服务 IP 并对外提供访问,当该服务器发生故障时,备份物理服务器将接管服务 IP 以继续对外提供访问。高可用集群在发生服务器切换时,不会保留切换前的计算状态(如网络协议栈、内存、CPU 等)。如图 4 所示。

图 4. 服务器集群高可用集群

各厂商(HP、IBM、微软、Veritas 等)的集群软件需要各服务器采用共享存储、双活存储或支持同步复制的 Active/Standby 存储;由于集群切换之后的服务 IP 没有变化,所以跨中心部署高可用集群时不仅需要实现跨中心 VLAN 扩展,高可用集群间部署的网络心跳链路(Heartbeat)也必须在同一个 VLAN 内。

与虚机迁移应用情况相似,高可用集群在跨中心部署时也要考虑三层路径优化问题,其部署方式同虚机场景相同。

三、 结束语

本文讨论了分布式数据中心的两种应用场景:虚机跨中心迁移及服务器 HA 集群,其中涉及到三种网络互联及相关技术实现。事实上,无论哪种技术方案,只有真正切合客户的实际业务需求和物理环境才是一个好的方案。因此,方案设计时根据需求选择合适的技术实现方式尤为重要。

参考资料

​推荐一个零声教育 C/C++后台开发的免费公开课程,个人觉得老师讲得不错,分享给大家:C/C++后台开发高级架构师,内容包括Linux,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK等技术内容,立即学习


原文:分布式数据中心网络互联技术实现

用户头像

C/C++后台开发技术交流qun:720209036 2022.05.06 加入

还未添加个人简介

评论

发布
暂无评论
分布式数据中心网络互联技术实现_数据库_C++后台开发_InfoQ写作社区