OVS概述
Open vSwitch (OVS)是一款基于软件实现的虚拟化以太网交换机,真实存在的程序,存在于内核态下
OVS能够支持多种标准的管理接口和协议,还可以支持跨多种物理服务器的分布式环境
OVS提供了对Openflow协议的支持,并且能够与众多开源的虚拟化平台相整合(Openflow是支持SDN的协议)
OVS位于ROOT模式下,VM位于NON-ROOT模式下,进行转发流量时会触发VM exit(退出NON-ROOT,进入ROOT),返回结果时会触发VM entry(退出ROOT,进入NON-ROOT),性能较低。
OVS的主要作用:
传递虚拟机之间的流量
实现VM和外界网络的通信
DVS概述
分布式虚拟交换机,提供与虚拟机相连的端口,另一端是与虚拟机所在的主机上的物理以太网适配器相连的上行链路(不是真实存在,只是逻辑存在)
虚拟机选择DVS上的端口组时,DVS会把上面的配置,如:vlan,端口类型,流量策略等同步到OVS上
当需要性的物理网络隔离时可以创建一个新的DVS,不同的DVS之间默认时物理隔离的
主要作用:实现对OVS的统一管理与配置
使虚拟机在跨主机迁移时确保其网络的配置保持一致性
EVS概述(EVS=OVS+DPDK)
弹性虚拟交换机,是用户态下的OVS,借助于DPDK的网卡管理、API和大页内存来提升物理网卡收发包性能和处理能力。
①、EVS关键技术:
A、物理网卡访问:DPDK高速数据通道
B、报文处理:大页内存
C、交换业务处理:轮询转发,减少调度开销
多核(线程)并行处理
Openflow流表转发优化
D、前后端技术:vhost-user技术
注:当OVS加入DPDK这个驱动后,使得OVS位于用户态,减少VM exit和VM entry(网络IO没有VM exit和VM entry,其他流量存在),提高网络IO性能
EVS中的概念
A、Sockets:计算机之间进行通信的一种约定或一种方式。通过 socket 这种约定,一台计算机可以接收其他计算机的数据,也可以向其他计算机发送数据
B、Vring:虚拟机网卡缓冲区,实现并发处理
C、DPDK:数字平面开发套件,用户态下操作物理网卡函数,包含完整的vhost库,能够包含完整的virtio逻辑,在OVS中直接抽象成一个端口vport。
优势: 转发性能高,尤其是短包转发性能、较内核OVS可提升8~9倍以上。 问题: 主要支持Intel网卡,其他网卡支持的较少;
对OVS-DPDK而言,旁路内核Datapath,功能较内核缺失。需要在用户态下开发; IVSHM的安全性需要关注。热迁移功能难以实现;
vSwitch会消耗宝贵的CPU资源。