OVS + kernel datapath 的安装
***kernel datapath的OVS编译安装
- 下载源代码
$ git clone https://github.com/openvswitch/ovs.git - 准备工具:生成configure文件
- GNU make
$ make --version - 一个C语言编译器,GCC 4.6以上,Clang 3.4以上
$ gcc --version - libssl
$ apt-get isntall libssl1.0.0 - libcap-ng0
$ apt-get install libcap-ng0 - libtool
$ apt-get install libtool - autoconf
$ apt-get install autoconf - Python 2.7,并且确保six库可用
$ python
...(
看默认的python是否是2.7版本
)
$ pydoc modules | grep six
...(
如果没有叫six的python module,请安装python-pip
$ apt install python-pip
然后如下安装six
$ pip install six
) - 注意ovs 内核模块的版本与Linux内核版本号
2.7版本的OVS能安装在Linux 3.10~4.9的内核上
- GNU make
- $ ./boot.sh
- 配置
$ ./configure \
--with-linux=/lib/modules/$(uname -r)/build 编译内核模块,指定当前内核地址
[CFLAGS="-g -o2"] 编译用户空间的代码时的编译参数,-g带debug,-O2指定编译器优化级别
[EXTRA_CFLAGS="-Wno-error=data-time"] 编译内核模块时的编译参数
[--enable-Werror] 编译其警告作为错误处理
[LIBS=-ljemalloc] 使用jemalloc代表libc中的内存管理库 - 编译OVS
$ make - 安装OVS用户态程序
$ make install - 安装内核模块(把相关*.ko文件安装至/lib/modules/$(uname -r)/extra/中
$ make modules_install - 挂载安装的内核模块
$ /sbin/modprobe openvswitch - 配置数据库
$ mkdir -p /usr/local/etc/openvswitch
$ ovsdb-tool create /usr/local/etc/openvswitch/conf.db vswitchd/vswitch.ovsschema - 启动数据库程序
$ mkdir -p /usr/local/var/run/openvswitch
$ ovsdb-server --remote=punix:/usr/local/var/run/openvswitch/db.sock \
--remote=db:Open_vSwitch,Open_vSwitch,manager_options \
--private-key=db:Open_vSwitch,SSL,private_key \
--certificate=db:Open_vSwitch,SSL,certificate \
--bootstrap-ca-cert=db:Open_vSwitch,SSL,ca_cert \
--pidfile --detach --log-file - 初始化ovsdb数据库
$ ovs-vsctl --no-wait init - 启动vswitchd守护进程
$ ovs-vswitchd --pidfile --detach --log-file - 完成,可以测试了
$ ovs-vsctl add-br br0
$ ovs-vsctl show
OVS + kernel datapath 的安装的更多相关文章
- ovs + kernel datapath 的分片与重组流程
非VXLAN的收发包调用栈 netdev_frame_hook() netdev_port_receive() ovs_vport_receive() ...
- OVS+DPDK Datapath 包分类技术
本文主体内容译于[DPDK社区文档],但并没有逐字翻译,在原文的基础上进行了一些调整,增加了对TSS分类器的详细阐述. 1. 概览 本文描述了OVS+DPDK中的包分类器(datapath class ...
- linux kernel 源码安装
有时我们在安装系统后,发现没有安装当前系统的内核源码在/usr/src/kernels目录下,其实我们是少安装了一个rpm包: 当你配置好yum源后: yum install kernel-devel ...
- jupyter notebook使用时路径问题和kernel error,安装opencv
修改路径: 在C:\Users\Administrator\ .jupyter 目录下面只有一个“migrated”文件. 打开命令窗口(运行->cmd),进入python的Script目录下输 ...
- OpenVSwitch 硬件加速浅谈
https://zhuanlan.zhihu.com/p/57870521 本文首发SDNLAB. 现代的虚拟化技术使得开发和部署高级网络服务变得更加简单方便.基于虚拟化的网络服务,具有多样性,低成本 ...
- Open vSwitch FAQ (一)
Basic Configuration Q: How do I configure a port as an access port? A: Add "tag=VLAN" to y ...
- openvswith Frequently Asked Questions
Open vSwitch <http://openvswitch.org> 参考地址:http://git.openvswitch.org/cgi-bin/gitweb.cgi?p=ope ...
- 在 Ubuntu 12.04 上通过源码安装 Open vSwitch (OVS)
安装 Ubuntu 12.04, 而且更新系统 apt-getupdate; apt-getupgrade; 安装所需的package apt-get install automake autocon ...
- 安装OpenvSwitch (ovs)
简介 搭建SDN环境少不了SDN交换机,SDN交换机跟普通交换机最大的区别就是将普通交换机的数据平面和控制平面相分离,SDN交换机只负责数据的转发,而控制指令则由更上一级的控制器下发. Open vS ...
随机推荐
- Java高级特性(基础)
1.StringBuffer.StringBuilder和String一样,也用来代表字符串.String类是不可变类,任何对String的改变都 会引发新的String对象的生成:StringBuf ...
- Linux下deb包安装工具(附带安装搜狗输入法)
环境是在ubuntu14下的 #1.gdebi安装 使用deb安装工具gdebi,这个工具能解决所有依赖问题 sudo apt-get install gdebi #2.搜狗输入法 deb包下载地址: ...
- 2017-4-18 ADO.NET
1.什么是ADO.NET? (是一种数据库访问技术) ADO.NET的名称起源于ADO(ActiveX Data Objects),是一个COM组件库,用于在以往的Microsoft技术中访问 ...
- mapTask并行度优化及源码分析
mapTask并行度的决定机制 一个job的map阶段并行度由客户端在提交job时决定,而客户端对map阶段并行度的规划的基本逻辑为:将待处理数据执行逻辑切片(即按照一个特定切片大小,将待处理数据划分 ...
- 计算单词出现的次数--linq
1.直接给出代码:声明数据,也可以是txt等文件,通过File类的静态方法读取其中的文本,再转换成List<string>数组. private static List<string ...
- spring学习总结一----控制反转与依赖注入
spring作为java EE中使用最为广泛的框架,它的设计体现了很多设计模式中经典的原则和思想,所以,该框架的各种实现方法非常值得我们去研究,下面先对spring中最为重要的思想之一----控制反转 ...
- hadoop高可靠性HA集群
概述 简单hdfs高可用架构图 在hadoop2.x中通常由两个NameNode组成,一个处于active状态,另一个处于standby状态.Active NameNode对外提供服务,而Standb ...
- MySQL 完整和增量备份与恢复
MySQL 完全备份与恢复 1.数据备份的重要性 在企业中数据的价值至关重要,数据保障了企业的业务的运行,因此数据的安全性及可靠性是运维的重中之重,任何数据的丢失都有可能会对企业产生严重的后果.造成数 ...
- Android系统--输入系统(十二)Dispatch线程_总体框架
Android系统--输入系统(十二)Dispatch线程_总体框架 1. Dispatch线程框架 我们知道Dispatch线程是分发之意,那么便可以引入两个问题:1. 发什么;2. 发给谁.这两个 ...
- JavaScript中的DOM函数与关键字汇总
DOM节点的属性 属性 描述 attributes数组 获取某个节点的所有属性子节点(实际是一个NodeList对象) childNodes数组 获取某个节点的所有子节点,可以按数组方式访问子节 ...