Zeta-A Scalable and Robust East-West Communication Framework in Large-Scale Clouds

Introduction

这篇文章实际上在处理网关的几个挑战。

  1. 可扩展性。云网络中实例规模的扩大导致了转发规则消耗的快速增加。因此,安装大量的规则将限制单个VPC和整个网络的规模。
  2. 稳健性。尽管特定设备的故障概率通常很低,但大规模云中的网络异常事件是频繁和不可避免的,包括设备故障[18, 59]和流量突发[68, 81]。它们会造成严重的网络拥堵/中断,降低了用户的体验。
  3. 延迟。配置转发规则和建立/恢复通信的延迟是一个关键指标。当实例启动/迁移时,一些先前的解决方案要求控制平面通知所有相关的主机,并安装/更新规则,这尤其影响到短期任务。例如,一个函数任务(如MilliSort和MilliQuery[47])通常在几毫秒内完成,而启动一个函数实例并为其建立连接可能需要几秒钟。

云网络中现有的东西向通信解决方案通常分为两大类。一类是硬件解决方案,如AWS Nitro系统[6, 67]、Azure基于FPGA的SmartNIC[28, 46, 61]和阿里云基于P4的网关[57]。另一种是软件解决方案,包括预编程模型(如VMware NSX [39, 56])和网关模型(如Google Cloud Hoverboard [22])。

考虑到硬件的高成本和长开发周期,软件解决方案已成为许多中型云供应商的首选。然而,现有的软件解决方案也面临着几个关键的缺点(详见§2.1)。首先,预编程模型为虚拟机预先安装了许多规则,并与控制平面相耦合。传统的网关模型依赖于为主机区分配的固定网关,并与计算节点的位置相耦合。因此,它们缺乏适应大规模网络的可扩展性或稳健性。其次,现有的控制回路很复杂,这加剧了网络异常事件的恢复延迟,包括设备故障/过载和虚拟机迁移。

Background and Motivation

包括之前工作的缺点。

本篇工作的优点。

Design

Design Goals

设计点有以下四个

  • Robustness
  • Low Latency
  • Scalability
  • Compatibility

System Overview

如图2所示,为了实现上述设计目标,我们提出了一个高效的东西向通信框架,称为Zeta,它由三个核心模块组成。网关集群、主机上转发和框架管理。

  • 网关集群层建立了一个基于VXLAN隧道的转发网络[48]。它利用XDP为租户实例提供高性能的流量转发和按需的规则卸载(§4.2)。网关集群的应用确保了更好的可扩展性和稳健性。网关检测大象流并向源主机发送OAM(Opera- tions, Administration and Maintenance)数据包,其中包含直接路径规则(§4.3)。此外,Zeta采用多IPs迁移来实现门路故障/过载/扩展的快速恢复,这使得故障恢复对主机/租户透明(§4.4)。
  • 主机上的转发层根据OVS上的规则来传输流量。在部署一个新的VPC之前,将在主机上预装一个默认规则,它包括一个流量条目和一个组条目,以实现集群内网关的负载平衡(§5.1)。当两个虚拟机第一次通信时,头包将根据默认规则被发送到一个特定的网关。每个主机都部署了一个Zeta代理,它负责解析OAM数据包,并在主机上的OVS上安装直接路径规则。此外,基于Zeta Agent的轻量级控制回路可以对网络调整做出快速反应,如被动实例迁移(§5.2)。
  • 框架管理层管理整个网络,并进一步增强了网关克隆的稳健性。当Zeta被初始化时,管理层将确定VPC-集群的映射,用于集群间的负载平衡(§6.1)。为了处理异常事件和流量动态,多IPs调度器将动态调整配置(如多IPs分配和集群部分),从而避免部分集群的过载,以提高鲁棒性(§6.2)。