为什么想到要用golang来编写metrics呢?这主要是我们的一个客户那里,k8s网络使用了ovs,并且做了bond,即bond0和bond1,每个bond下面2张网卡。在上了生产后,让我每天都要检查一下网卡是否正常,因为之前就有网卡DOWN了。而我呢,比较懒,不想手动去检查。想着通过prometheus最终展示到grafana,我就在grafana上看看有没有处于异常的网卡就好了。其次呢,我最近刚好在学习go,也想练练手;同时也问了一下研发同学,说很简单,叫我试试,遇到困难时也愿意帮助我。所以,我就打算试试了。
接前面这个写起,比较过linux kernel vxlan device和ovs vxlan的性能,很好奇ovs vxlan是怎么实现的,linux kernel vxlan device是用如下命令创建的。
概述 数据平面开发套件(DPDK)可提供高性能的数据包处理库和用户空间驱动程序。自Open vSwitch(OVS)2.4版 (http://openvswitch.org/releases/NEWS-2.4.0)起,我们将可在OVS中使用DPDK优化的vHost路径。OVS自2.2版起开始提供DPDK支持。 将DPDK与OVS结合使用可为我们带来诸多性能优势。与其他基于DPDK的应用相同,我们可以在OVS中看到网络包吞吐量显著提升,延迟显著降低。 此外,DPDK包处理库还对OVS内的多个性能热点区域进行了
在前文「从 Bridge 到 OVS」中,我们已经对 OVS 进行了一番探索。本文决定从 OVS 的整体架构到各个组件都进行一个详细的介绍。 OVS 架构 OVS 是产品级的虚拟交换机,大量应用在生产
阅读本文大概 4.7 分钟 在前文「从 Bridge 到 OVS」中,我们已经对 OVS 进行了一番探索。本文决定从 OVS 的整体架构到各个组件都进行一个详细的介绍。 OVS 架构 OVS 是产品级的虚拟交换机,大量应用在生产环境中,支撑整个数据中心虚拟网络的运转。OVS 基于 SDN 的思想,将整个核心架构分为控制面和数据面,数据面负责数据的交换工作,控制面实现交换策略,指导数据面工作。 从整体上看,OVS 可以划分为三大块,管理面、数据面和控制面。 数据面就是以用户态的 ovs-vswitchd
先看下OVS整体架构,用户空间主要组件有数据库服务ovsdb-server和守护进程ovs-vswitchd。kernel中是datapath内核模块。最上面的Controller表示OpenFlow控制器,控制器与OVS是通过OpenFlow协议进行连接,控制器不一定位于OVS主机上,下面分别介绍图中各组件。
前言 OVS是一种开源的软件交换机,可安装于通用的虚拟服务器环境中,在虚拟环境中单个、多个物理机上的不同虚拟主机都需要通过OVS实现数据交换。 OVS包含三个重要的组件:ovsdb-server、
Open vSwitch on Linux, FreeBSD and NetBSD
启动 service openvswitch start 创建网桥 ovs-vsctl add-br br0 ifconfig br0 up 显示所有网桥 ovs-vsctl show 删除网桥 ovs-vsctl del-br br0 增加端口 ovs-vsctl add-port br0 eth0 设置网卡为none dhclient br0 用 Namespace 模拟两台虚拟机网络 p netns add network1 ip netns add
惠伟:openstack网络设计-(一)试探zhuanlan.zhihu.com
Linux Bridge 和物理网络一样,虚拟网络要通信,必须借助一些交换设备来转发数据。因此,对于网络虚拟化来说,交换设备的虚拟化是很关键的一环。 上文「网络虚拟化」已经大致介绍了 Linux 内核为了满足网络虚拟化的要求,实现了一套虚拟交换设备——Bridge。本文重点介绍下 Bridge 的加强版——Open vSwitch(OVS),并从 Bridge 过渡到 OVS 的缘由讲起,让大家有个全面的认识。 借助 Linux Bridge 功能,同主机或跨主机的虚拟机之间能够轻松实现通信,也能够让虚拟机
为了使虚拟机与外部进行网络通信,需要为虚拟机配置网络环境。KVM虚拟化支持Linux网桥、Open vSwitch网桥等多种类型的网桥。如图所示,数据传输路径为"虚拟机 -> 虚拟网卡设备 -> Linux网桥或Open vSwitch网桥 -> 物理网卡"。
大家晚上好。那我们开始吧。主要还是抛装引玉,互相学习交流。今天和大家分享下面一些内容: 1.关于openstack中VNF网络性能的一些思考和思路 2.相关的开源项目 3.OVS 2.4 DPDK with IVSHMEM/vHost-user(w/DPDK) 和vHost (w/oDPDK)性能测试数据 4.后续可以一起来做的一些工作 第一部分 关于openstack中VNF网络性能的一些思考和思路 先来介绍一下背景,目前openstack社区版本的一些网络服务如routing,fip,snat,fw,v
1 简介 本文主要介绍基于OpenDaylight子项目OVSDB中的southbound组件来搭建VxLAN网络,包括初始环境搭建和southbound RestConf API调用等。OpenDaylight中的northbound组件也可以用来创建VxLAN网络,但northbound不是基于yang的且OVSDB封装的不好,beryllium版本已经将其删除。 2 实验环境和原理 实验环境 VMware workstation: 11.1,共需要3台虚拟机,其中两台为mininet(mininet-
在重置OVS时,会用到以下命令 1、ovs-vsctl emer-reset 2、ovs-vsctl init 3、rm -rf /etc/openvswitch/* 但这个ovs-vsctl emer-reset命令会触发一个BUG,导致无法恢复流表信息,甚至引起网络回环。 这个BUG在ocata版本中出现,到现在的queens版本也还有,但在之前的mitaka版本却没有。 下面来看下示例
诸如calico flannel等CNI实现,通过牺牲一些功能让网络复杂度得以大幅度降低是我极其推崇的,在云原生时代应用不再关心基础设施的场景下是一个明智之举,给网络调错带来了极大方便。
引言 本文主要对OpenvSwitch(基于2.3.90版本)重点模块的源码实现流程做了简要的阅读记录,Open vSwitch源码阅读笔记(上)已提供,此篇是对上篇的追述及补充,适合阅读OpenvS
在详细进入每个操作步骤之前,会先把全面性的概要操作方法列出来,才不会有种见树不见林的感觉。
作者简介:张渐修,任职于上海同悦信息科技有限公司从事P4交换机市场工作,Wechat: Tooyumzjx。
本文通过docker的网络介绍容器网络的原理以及一些实践,通过实践一遍相信大家会对网络底层的原理有个更深的理解,最后给出对接ovs的教程,这对下一篇k8s对接ovn的原理理解打下一个基础。
https://zhuanlan.zhihu.com/p/273536550zhuanlan.zhihu.com
由之前发布的文章知道 Open vSwitch(Open Source Virtual Switch) 是一款基于软件实现的开源虚拟交换机。
一、Dpdk简介 Dpdk是X86平台报文快速处理的库和驱动的集合,不是网络协议栈,不提供二层,三层转发功能,不具备防火墙ACL功能,但通过DPDK可以轻松的开发出上述功能。优势在于通过Dpdk,可以
惠伟:openstack neutron基础(一)-基本概念zhuanlan.zhihu.com
问题背景: 在开发机上编译ovs,在目标机器上运行,出现来ovs-vswitchd崩溃,dmesg得到如下信息: [ 2807.148361] traps: ovs-vswitchd[10511] trap invalid opcode ip:55d4eed2fb51 sp:7ffe19a29700 error:0 in ovs-vswitchd[55d4eecb2000+721000] [ 2807.401581] traps: [11296] trap invalid opcode ip:55d4eed2fb51 sp:7ffe19a29700 error:0 in ovs-vswitchd[55d4eecb2000+721000] [ 2817.557260] traps: [11324] trap invalid opcode ip:55d4eed2fb51 sp:7ffe19a29700 error:0 in ovs-vswitchd[55d4eecb2000+721000] [ 2822.415470] traps: ovs-vswitchd[11437] trap invalid opcode ip:55aed509cb51 sp:7fffbaf19260 error:0 in ovs-vswitchd[55aed501f000+721000] [ 2827.713594] traps: [11471] trap invalid opcode ip:55d4eed2fb51 sp:7ffe19a29700 error:0 in ovs-vswitchd[55d4eecb2000+721000] [ 2837.869480] traps: [11529] trap invalid opcode ip:55d4eed2fb51 sp:7ffe19a29700 error:0 in ovs-vswitchd[55d4eecb2000+721000] [ 2870.048788] traps: [11587] trap invalid opcode ip:55d4eed2fb51 sp:7ffe19a29700 error:0 in ovs-vswitchd (deleted)[55d4eecb2000+721000] [ 2870.199582] traps: [12442] trap invalid opcode ip:55d4eed2fb51 sp:7ffe19a29700 error:0 in ovs-vswitchd (deleted)[55d4eecb2000+721000] [ 2880.330830] traps: [12459] trap invalid opcode ip:55d4eed2fb51 sp:7ffe19a29700 error:0 in ovs-vswitchd (deleted)[55d4eecb2000+721000] [ 2890.462325] traps: [12484] trap invalid opcode ip:55d4eed2fb51 sp:7ffe19a29700 error:0 in ovs-vswitchd (deleted)[55d4eecb2000+721000] 问题分析: 1,指令错误分析 log的内容是一致的,随便截取一行来看: [ 2807.401581] traps: [11296] trap invalid opcode ip:55d4eed2fb51 sp:7ffe19a29700 error:0 in ovs-vswitchd[55d4eecb2000+721000] 可以看到,是因为执行了invalid opcode导致的。很可能是指令集的原因导致的。 2,定位 根据ip:55d4eed2fb51和map信息ovs-vswitchd[55d4eecb2000+721000],可以推算出来,出错的地址是0x55d4eed2fb51 - 0x55d4eecb2000 = 0x7db51 反汇编,执行命令objdump -D /root/openvswitch-dpdk/openvswitch-2.9.2/vswitchd/ovs-vswitchd > obj,截取0x7db51偏移的代码片段: 000000000007db50 <rte_vfio_enable>: 7db50: 55 push %rbp 7db51: 62 f1 fd 48 6f 15 25 vmovdqa64 0x4ab325(%rip),%zmm2 # 528e80 <__func__.8528+0x950> 7db58: b3 4a 00
一、为什么OVN会出现? OpenvSwitch (OVS) 以其丰富的功能和相对优秀的性能,成为OpenStack中广泛使用的虚拟交换机。下图是2年前的一个调查,时过境迁,nova-network已
首先按下 Ctrl+D 登出 root 跟 Ubuntu 回到 Host 之后用 vagrant 指令关掉并且杀掉 VM
一、前言 本文提供了一种可行的、灵活的方案用于构建跨主机的Docker容器网络。鉴于目前的各类网络方案均依赖其他大型项目(比如CoreOS,Kubernetes)。本文的主旨就是抛开其他不必要的依赖,构建一个在大多数平台上都能运行的网络方案。 pipework,是由Docker的工程师Jérôme Petazzoni开发的一个Docker网络配置工具,由200多行shell代码写成,适合在多种不同的网络环境下配置容器网络,支持多种功能。github获取地址:https://github.com/jpetaz
在上期《云计算与虚拟化硬核技术内幕 (14) —— 不忘初心,删繁就简》中,我们介绍了Linux网桥,也遗留了一些问题:
在过去十几年中,虚拟化已经改变了应用、数据、服务的实现部署方式。服务器的虚拟化给数据中心网络带来了根本性的变化。在传统的数据中心网络架构基础上,出现了一个新的、位于物理服务器内的接入层。这个新的接入层包含的设备是运行在x86服务器中的vSwitch,而这些vSwitch连接着一个服务器内的多个workload(包括容器和虚机)。
一、GNS3简介 GNS3是一个专业的网络模拟器,可以用它来模拟交换机、路由器、防火墙等网络设备。它的功能非常强大,基于它能搭建一个近似于 “真实”的模拟环境。 Wireshark是一个跨平台的网络数据包分析工具,和tcpdump比较它提供了一个友好的GUI界面。GNS3中已经对它进行了集成(安装GNS3的时候自动安装),可以通过GNS3界面直接对网络拓扑中的某条链路抓包分析。 1.1 GNS3架构 GNS3由三部分组成,我们平时使用的是GNS3-GUI,这是一个用Python编写的GUI界面,通过这个界面
从Gartner分析报告谈起 根据Gartner的《Gartner2016年度新兴技术成熟度曲线》,目前SDx目前处于期望膨胀期的末期,也标志着此类技术基本已经成熟状态。软件定义一切(SDx)是市场上一系列技术的总称,包含了通过自动化云计算、开发运营(DevOp),以及快速基础设施配置的驱动,为基础设施可编程性和数据中心互用性改进标准。用“软件定义”一词的潮流源自软件定义网络(SDN),它能将大量不同的个人设备中分散的网络逻辑和政策集成一个软件。由于SDN将软硬件分开,因此可能分离了购买决策,并且允许采用通
Open vSwitch(OVS)项目的开发人员对其性能稍加改进,正如他们所说已经将其提升到了惊人的速度。 这项工作已经持续了一段时间,但具体细节直到今天才在Network Heresy博客上得以总结。这个团队也会在今天的Open vSwitch会议上进一步阐述细节方面做的改进,该会议在VMware总部—加州的Palo Alto举行。 OVS的核心问题,也是过去一到两年中这个团队优先考虑的问题,即它在处理Linux用户空间上花费太多时间,这也被称为慢路径。(另一种是在内核空间中的快速路径。)此前,该小组表示
OpenShift的OVS网络组件有三种模式:ovs-subnet、ovs-multitenant、ovs-networkpolicy。
国家癌症中心2021年年度报告显示,在全世界范围内癌症仍是最主要的死因之一。每年数以百万计的患者因癌症丧生。目前临床中使用的常规肿瘤治疗方法如化疗和放疗,由于其非靶向性分布、有限的肿瘤渗透性和严重的辅料相关毒性,极大地限制了这些技术在临床中的应用。因此,亟需开发新型有效疗法应对已有的挑战。近年来,溶瘤微生物介导的抗肿瘤疗法以其天然的肿瘤靶向能力和优良的免疫激活特性获得了广泛关注。肿瘤灶乏氧、富营养化和免疫抑制的微环境以及肿瘤细胞表面特异性高表达的受体为溶瘤细菌/溶瘤病毒提供了定植、侵染和繁殖的可能。然而,受限于溶瘤微生物的外源性特征,实现溶瘤病毒的安全高效递送极具挑战。
PVE默认使用Linux自带的网桥提供网络交换服务,在划分vlan的时候还需要修改IP路由表文件,配置稍显繁琐。
今天聊的网络虚拟化和前面几期文章中提到的Fabric上SDN中实现的网络虚拟化还不一样,此处网络虚拟化是指在服务器内部如何为虚机提供联通和通向外网时提供网络部分,和SDN实现的网络虚拟化相比没有那么丰富、节点数量也不如后者多。在服务器为主体的网络虚拟化中虚拟交换机和虚拟网卡是2个至关重要的组件。
众所周知,OpenvSwitch 以其丰富的功能和不错的性能,已经成为 Openstack 部署中最受欢迎的虚拟交换机。由于 Openstack Neutron 的架构引入了一些性能问题,比如 neutron-server 要与非常多的 agent 通信,RPC 就是一个性能瓶颈,还有 neutron 里面用到非常多的 namespace,namespace 资源有限而且系统开销比较大,这也是一个性能瓶颈。OVS 社区觉得从长远来看,Neutron 应该让一个其它的项目来做虚拟网络的控制平面,Neutron 只需要提供 API 的处理,于是 OVS 社区推出了 OVN(Open Virtual Switch)这个项目,OVN 是 OVS 的控制平面,它给 OVS 增加了对虚拟网络的原生支持,大大提高了 OVS 在实际应用环境中的性能和规模。
OpenStack最基本和常用的操作就是启动虚机。虚机启动的过程中涉及很多内容,其中非常重要的一个环节就是创建并绑定虚机的虚拟网卡。虚机的创建和管理是Nova的任务,虚机网络的创建和管理是Neutron的任务,而虚机网卡,作为连接虚机和虚机网络的桥梁,其创建和管理则同时涉及了Nova和Neutron。这次介绍一下,OpenStack中虚机的网卡的创建过程。虽然本文的介绍将基于OpenVSwitch,但是你可以发现,很少有特殊于OpenVSwitch的地方,所以其他的二层机制(例如:Linux Bridge)
DPDK与SR-IOV两者目前主要用于提高IDC(数据中心)中的网络数据包的加速。但是在NFV(网络功能虚拟化)场景下DPDK与SR-IOV各自的使用场景是怎样的?以及各自的优缺点?
在上一期,我们留下了一个问题:如何通过让专业的人做专业的事,提升虚拟化网元vSwitch的性能?
OpenStack在这几年风生水起。随着核心模块稳定性的提高,OpenStack已经有了很多大规模商用的案例,所有与云相关的,无论是商用软件还是开源平台都在积极地寻求着与OpenStack的对接,OpenStack正在成为云计算业界事实上的IaaS标准。 在网络这一口,OpenStack经历了由nova-network到Quantum再到Neutron的演进过程。我们首先来简要地看看各个版本网络的特征: 1)Nova-network是隶属于nova项目的网络实现,它利用了linux-bridge(早期,
前群里很多同学做ovs研究,也有很多人来讨论如何自定义OVS匹配域的问题,所以今天的分享主题就围绕OVS匹配处理流程和拓展性展开,这和之前SDNLAB上发的自定义action,可称为姊妹篇。它们是去年研读OVS源码时候的一些收获和心得,今天拿出来和大家分享。 由于拓展匹配域更贴近OVS开发实践,难免会提到代码部分。但为了简洁明了,此次分享主要遵循两个目的:讲清楚其大体逻辑、然后点明需要源码添加的地方,提高匹配域拓展成功率。 一、整体思路 现在进入正题,今天的分享从三个方面进行: 匹配域相关的各个模块简单分析
OpenStack在这几年风生水起。随着核心模块稳定性的提高,OpenStack已经有了很多大规模商用的案例,所有与云相关的,无论是商用软件还是开源平台都在积极地寻求着与OpenStack的对接,OpenStack正在成为云计算业界事实上的IaaS标准。 在网络这一口,OpenStack经历了由nova-network到Quantum再到Neutron的演进过程。我们首先来简要地看看各个版本网络的特征: 1 Nova-network是隶属于nova项目的网络实现,它利用了linux-bridge(早期,目前
运行ovs后,Linux系统中会多出一块状态是down掉的网卡ovs-system:
一、Openstack网络基础 下面对Openstack和Neutron的介绍,要从几个关键词入手。 1. 三代网络 在网络这一口,OpenStack经历了由nova-network到Quantum再到Neutron的演进过程。我们直观地来看看三代网络的对比分析: 1)Nova-network是隶属于nova项目的网络实现,它利用了linux-bridge(早期,目前也支持OVS)作为交换机,具备Flat、Flat DHCP、VLAN三种组网模式。优点是性能出色,工作稳定,支持mu
ovs软件交换机可以基于端口tag号实现vlan的隔离,功能上类似于物理交换机的vlan隔离。而tag号在openstack的各种网络发挥着十分重要的作用,几乎所有的openstack网络都离不开tag号。本文从ovs交换机中tag的作用讲起,解析openstack中各种网络是如何使用tag号,以小见大,剖析原理。
租户创建vpc,租户创建虚拟机,租户创建数据库实现,返回访问的vip,vip主主模式,vip流量尽量负载均衡,同一session保持到固定的LB节点,而且虚拟机迁移时到vip不断流,迁移这个session还保持在同一个LB节点,要求租户流程隔离,LB运行于物理机,LB节点可扩展,后面是k8s pod,数据库实例运行于k8s pod中。
1、安装依赖包:yum -y install openssl-devel wget kernel-devel
领取专属 10元无门槛券
手把手带您无忧上云