Open vSwitch:开放虚拟交换
虚拟交换并不是一个新概念。VMware 开创了服务器虚拟化的先河,它允许虚拟交换机取代物理交换机,这意味着在托管 VM 的服务器上运行的软件堆栈可以运行连接到虚拟或逻辑以太网端口的交换功能。Open vSwitch (OVS) 等虚拟交换机与 Linux 中包含的传统虚拟 L2 网桥之间的主要区别在于,它们旨在处理高度动态的云环境,其中网络状态(配置和实时)可能需要在使用 vSwitch 实例的主机。
虽然有专有的虚拟交换机解决方案,例如 Cisco Nexus 1000V 和 VMware vSphere 分布式交换机 (vDS),但 Open vSwitch 既是最突出的开源替代方案,也是其他开源网络项目越来越重要的固定装置。OVS 适用于 Xen 和 KVM 等 Linux 虚拟机管理程序,是 Xen Cloud Platform 和 XenServer 6.0 中的默认设置,并集成到 OpenStack 中,我们将在本系列的后续部分中对其进行介绍。内核数据路径模块现在也直接包含在 Linux 中。
OVS 旨在通过 OpenFlow 实现网络控制和通过 Open vSwitch 数据库协议进行管理,它充当软交换机,还能够将数据平面处理卸载到网络接口控制器 (NIC) 或外部硬件交换机上的交换芯片上。它的一些重要功能包括:
· 支持VXLAN、IPsec等隧道协议
· OpenFlow 兼容性,包括许多虚拟化扩展
·每个虚拟机接口的流量监管。
· 使用链路聚合控制协议 (LACP) 进行链路聚合
· 与 IPv6 的兼容性
Open vSwitch的设计
Open vSwitch 主要由一些存在于用户空间中的控制平面组件以及处理实际数据平面功能的内核模块组成。
· ovs-vswitchd:最重要的组件是运行交换机的Ovs-vswitchd。它通过 netlink 协议直接与 OVS 内核模块对话。如果内核处理的出站数据包没有决定如何转发的缓存条目,内核会向 Ovs-vswitchd 发送消息,后者会在数据库中查找与相关数据包匹配的流表条目。 转发指令返回给内核,内核建立一个缓存条目。ovs-vswitchd 也可以与 OpenFlow 控制器通信。
· Ovs-dbserver:此服务器支持 Ovs-vswitchd 的管理平面功能,通常使用 OVS 的 OVSDB 模式存储所有配置更改。它向用于配置交换机的外部 OVS 客户端提供基于 JSON-RPC 的 OVSDB 协议。
与 Cisco Nexus 1000V 或 VMware 的解决方案不同,OVS 没有本地 SDN 控制器。它被设计为与第三方控制器和云编排器一起使用,因此可以使用 OpenDaylight 或 OpenStack Neutron OpenFlow 和 OVSDB 插件。
开放 vSwitch 和 SDN
OVS 在 SDN 创新的进程中发挥了重要作用,因为它既开放又高性能。
“Open vSwitch 是OpenStack 部署中最受欢迎的网络后端,并被广泛接受为事实上的标准 OpenFlow 实现,”OVS 贡献者 Justin Pettit、Ben Pfaff 和 Ethan Jackson 在 Network Heresy 的一篇文章中解释道。“要使 Open vSwitch 取得成功,它不仅必须具有高度可编程性和通用性,还必须非常快。在过去的几年里,我们的开发工作正是集中在这种紧张关系上——构建一个不会影响通用性或速度的软件交换机。”
在过去的几个版本中,OVS 的性能有了显着提高。例如,允许内核向 ovs-vswitchd 发送更少异常的内核缓存 megaflow 支持(基于字段通配符)等功能,以及 ovs-vswitchd 中的分类器改进(如优先级排序、分阶段查找和前缀跟踪)显着减少进入内核的兆流数量从数百万增加到数十。OVS 2.0 还使 ovs-vswitchd 成为一个多线程进程,并能够更好地分离实时和管理平面任务。
要点: Open vSwitch 是一个著名的基于 Linux 的虚拟交换机的开源项目。作为 Cisco 和 VMware 解决方案的替代方案,它是主要的创新平台和公认的标准开放式交换机,可与 OpenFlow 一起使用。主要特性包括其对 OpenFlow 控制平面的利用、其用于管理平面的高度灵活的 OVSDB 协议、将数据平面处理卸载到硬件的能力,以及其高性能设计和随时间推移的进步。
审核编辑:郭婷
全部0条评论
快来发表一下你的评论吧 !