The Design and Implementation of Open vSwitch

  • 文章名称:The Design and Implementation of Open vSwitch
  • 文章来源:Pfaff B , Pettit J , Koponen T , et al. The Design and Implementation of Open vSwitch[J]. ;login:: the magazine of USENIX & SAGE, 2015, 40:págs. 12-16.

Abstract:

我们描述了Open vSwitch的设计和实现,它是一个面向所有主要管理程序平台的多层、开源虚拟交换机Open vSwitch是为虚拟环境中的网络而重新设计的,其主要设计与传统的软件交换体系结构不同。我们详细介绍了Open vSwitch用来优化操作和节省管理程序资源的高级流分类和缓存技术,我们根据过去七年使用和改进开放式虚拟交换机的部署经验,评估开放式虚拟交换机的性能。

1 Introduction:

在过去的15年里,虚拟化改变了我们计算的方式。例如,许多数据中心完全虚拟化,以便在灾难恢复期间提供快速的资源调配、向云的溢出,改进可用性。尽管虚拟化仍将覆盖所有类型的工作负载,但虚拟机的数量已经超过了服务器的数量,进一步的虚拟化没有停止的迹象。

服务器虚拟化的兴起带来了数据中心网络的根本性转变,出现了一个新的网络访问层,其中大多数网络端口是虚拟的,而不是物理的。因此,工作负载的第一跳交换机越来越多地驻留在Hypervisor中。在早期,这些Hypervisor“vswitch”主要关注提供基本的网络连接。实际上,他们只是通过将物理L2网络扩展到驻留的虚拟机来模仿他们的ToR同类。

随着虚拟化工作负载的激增,这种方法的局限性变得显而易见——为新的工作负载重新配置和准备物理网络会减慢它们的供应,并且将工作负载与物理二级网段耦合会严重限制它们与底层网络的移动性和可扩展性。这些压力导致了网络虚拟化的出现,在网络虚拟化中,虚拟交换机成为虚拟机网络服务的主要提供者,使得物理数据中心网络在虚拟机管理程序之间传输IP隧道数据包。此方法允许虚拟网络与其底层物理网络分离,并且通过利用通用处理器的灵活性,虚拟交换机可以为VM、其租户和管理员提供逻辑网络抽象、服务和工具Identical专用物理网络。

网络虚拟化需要一个功能强大的虚拟交换机——转发功能必须基于每个虚拟端口进行连接,以匹配管理员配置的逻辑网络抽象,并且跨虚拟机监控程序实现这些抽象也从细粒度的集中协调中受益匪浅。这种方法与早期的虚拟交换机形成鲜明对比,对于早期的虚拟交换机而言,静态的且主要是硬编码的转发管道已经完全足以为虚拟机提供到物理网络的二级连接。

虚拟网络的日益复杂、网络虚拟化的出现以及现有虚拟交换机的局限性,使得开放式虚拟交换机得以迅速普及

如今,在其原始平台Linux上,Open vSwitch可以与大多数管理程序和容器系统一起工作,包括XEN、KVM和Docker。Open vSwitch还可以在FreeBSD和NetBSD操作系统上“开箱即用”地工作,并且到VMware ESXi和Microsoft Hyper-v虚拟机监控程序的端口正在进行中。

本文介绍了Open vSwitch的设计与实现。其设计的关键是围绕开放式虚拟交换机普遍部署的生产环境所要求的性能,以及网络虚拟化所要求的可编程性。与传统的网络设备不同,无论是软件还是硬件,都是通过专业化来实现高性能的。相比之下,Open vSwitch是为灵活性和通用性而设计的,它必须在不需要专门化的情况下实现高性能,适应所支持平台的差异,同时与Hypervisor及其工作负载共享资源。

因此,本文首先关注这种张力——开放式虚拟交换机如何在不牺牲通用性的前提下获得高性能。论文的其余部分安排如下,第2节提供了有关虚拟化环境的进一步背景,而第3节描述了Open vSwitch的基本设计。随后,第4、5和6节描述了Open vSwitch设计如何通过流缓存优化虚拟化环境的需求缓存如何对整个设计(包括其数据包分类器)产生广泛影响以及Open vSwitch如何管理其流缓存。然后,第7节通过分类和缓存微基准来评估Open vSwitch的性能,同时还提供了多租户数据中心中Open vSwitch性能的视图。在结束之前,我们将在第8节讨论正在进行的、未来的和相关的工作

2 Design Constraints and Rationale:

虚拟交换机的操作环境与传统网络设备的环境截然不同。下面我们简要讨论这些差异所带来的限制和挑战,既揭示了Open  vSwitch设计选择背后的基本原理,又强调了它的独特之处。

Resource sharing:

传统网络设备的性能目标倾向于使用专用硬件资源在最坏情况下实现线速性能的设计,而使用虚拟交换机的资源节约至关重要,交换机是否能够跟上最坏情况下的线速,对于最大化Hypervisor的主要功能(运行用户工作负载)的可用资源来说是次要的。也就是说,与物理环境相比,虚拟化环境中的网络在最坏的情况下为常见情况进行优化,这并不是说最坏的情况并不重要,因为它们确实是会在实践中出现的。端口扫描、点对点会合服务器和网络监控都会产生异常的流量模式,但必须得到适当的支持,这一原则告诉我们:例如,大量使用流缓存和其他形式的缓存在常见情况下具有高命中率),会降低CPU使用率并提高转发率。

Placement:

在网络边缘放置虚拟交换机是一个既简单又复杂的问题,可以说,拓扑位置作为叶子与Hypervisor和VM共享命运,这消除了许多标准的网络问题。然而,这种布局使缩放变得复杂,在虚拟机监控程序之间的点对点IP隧道网格中,单个虚拟交换机拥有数千个虚拟交换机作为对等点并不少见。虚拟交换机在虚拟机引导、迁移和关闭时接收转发状态更新,虽然虚拟交换机直接连接的物理网络端口相对较少(按照网络标准),但远程虚拟机监控程序中的更改可能会影响本地状态,尤其是在数千(或更多)个管理程序的大型部署中,转发状态可能处于不断变化的状态。

本文讨论的一个受此原理影响的设计的主要例子是针对O(1)更新而设计的Open-vSwitch分类算法.

SDN, use cases, and ecosystem:

Open-vSwitch有三个额外的独特要求,最终导致其设计不同于其他虚拟交换机:

首先,Open-vSwitch自诞生以来一直是OpenFlow交换机。它故意不与单一用途、紧密垂直集成的网络控制堆栈绑定,而是通过openflow[27]重新编程。这与其他虚拟交换机的特征数据路径模型进行了对比[24,39]:与转发asic类似,它们的分组处理管道是固定的。只能配置预先安排的功能。(hyper-v虚拟交换机[24]可以通过添加二进制模块来扩展,但通常每个模块只向数据路径添加另一个单一用途的功能。)openflow的灵活性在sdn的早期是必不可少的,但很快就明显,高级用例,如ne网络虚拟化,导致长的数据包处理管道,从而比传统的虚拟交换机更高的分类负载。为了防止open vswitch比竞争对手的虚拟交换机消耗更多的hypervisor资源,它被迫实现流缓存。第三,与其他主要的虚拟交换机不同,open-vswitch是开源的多平台虚拟交换机。与所有在单一环境中操作的闭源虚拟交换机不同,开放虚拟交换机的环境通常由选择操作系统分发和管理程序的用户选择。这迫使开放式vSwitch设计变得相当模块化和便携。

转载于:https://www.cnblogs.com/chelinger/p/11543129.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值