当前位置: 首页 > news >正文

CentOS-6.4 下成功安装openvswitch

     最近需要研究openvswitch的工作原理,所以着手搭建openvswitch的环境。

     由于centOS 的稳定性,一直受到本人青睐。选择了最近新发布的CentOS-6.4_64的作为系统和LTS的openvswitch1.4.6,但事实证明这个选择极具挑战性,所以将探究过程记录于此。

      网上大部分资料显示的是使用Fedora_17安装openvswitch,因为内部自带ovs的内核模块。最关键的是关于在CentOS-6.3/6.4的安装文章基本属于转载,经过本人多次尝试,发现根本行不通。

      主要分为两派(当然的参照自带安装说明文档来安装了):

        1.属于参考INSTALL安装的,在./configure --with-linux= /usr/local/`uname -r`/build (指定内核源码路径)以后,在 make编译过程中提示大量错误,INSTALL 文档并未说明如何修改,安装无法继续进行。

       2.属于参考INSTALL.RHEL安装的(介于CentOS 和RHEL的关系),  发现居然default RPM source directory   $HOME/rpmbuild/SOURCES 根本找不到,所以 

            rpmbuild -bb rhel/openvswitch.spec

      不能成功执行,而且难以解决。

     注:大量依赖相关软件版本很低,不符合要求,需要升级(yum和tarball方式都要用到)例如autoconf .当然前提是INSTALL 上写明的依赖软件包还是要事先装上的

       所以各种错误各种复杂。

       本人的安装步骤:

       1、依据INSTALL文档, 尽量使用yum安装所有能安装的依赖软件包。

       2、 我直接使用 yum update ,升级了系统可以升级的所有软件包。(最好更换yum源到163的源)

       3、手动tarball安装 autoconf  version 》= 2.64

       4、在openvswitch官网下载好openvswitch-1.4.6.的压缩包文件

       5、 tar -zxvf  。。。。。

       6、 将以前build链接删掉,重新链接上(有过报错的经历才知道,这一步的重要性)

              cd  /lib/modules/`uname -r`

               rm build

              ln -s /usr/src/kernels/`uname -r`/ build

      7、cd ~/openvswitch-1.4.6

     ./boot.sh

     ./configure -with-linux=/lib/modules/`uname -r`/build

  8、在进行make之间先将skbuff.h 的几个定义注释掉,否则后面回报错(可以在第9步后)

             vi openvswitch-1.4.6/datapath/linux/compat/include/linux/skbuff.h   

            将242和244行的 static inline struct page *skb_frag_page(const skb_frag_t *frag)和static inline void skb_reset_mac_len(struct sk_buff *skb)注释掉。

例如:

        skbuff-post-comment-openvswitch

     9 、#make

      其实最好先不进行第8步,第8步需要注释掉的函数也不完全,最好建议先make然后会报错,显示哪个文件的函数有重定义,再去直接注释掉比较合适(本人就遇到三个地方重定义,需要注释掉)

    10、make install

    11、 查看在工作的bridge模块.

             lsmod | grep bridge

             卸载掉    rmmod bridge

    12、insmod datapath/linux/openvswitch_mod.ko

    13、查看下: dmesg | tail

      

  

    基本到这就差不多了。

    探索成功安装的过程学到了很多其他的知识,还是十分令人高兴的。

    通过这次也发现,google的力量远远强于“百度”,英文文献确实十分丰富。

    关键参考博客:http://networkstatic.net/open-vswitch-red-hat-installation/#!prettyPhoto


相关文章:

  • 一个简单的端口扫描程序
  • 《BREW进阶与精通——3G移动增值业务运营、定制与开发》一书的网店地址
  • apue.h
  • Linux 临时mount 移动设备
  • 文件描述符、文件表项、V节点表项、dup
  • linux 第一个内核模块Hello World
  • Linux 根据端口查找进程
  • tshark命令行的使用
  • 联通iPhone,真的是狼来了?
  • GCC -L-l -D -I 参数的用法
  • 将SVN与BUG跟踪管理集成
  • Linux 内核中软中断机制
  • DAS、NAS、SAN...
  • Linux bridge 网桥模块内部数据包转发流程
  • C++ 标准库中的allocator是多余的
  • Angular js 常用指令ng-if、ng-class、ng-option、ng-value、ng-click是如何使用的?
  • CEF与代理
  • Fabric架构演变之路
  • JS变量作用域
  • Lucene解析 - 基本概念
  • Mysql数据库的条件查询语句
  • webpack入门学习手记(二)
  • 初识 webpack
  • 精益 React 学习指南 (Lean React)- 1.5 React 与 DOM
  • 爬虫模拟登陆 SegmentFault
  • 应用生命周期终极 DevOps 工具包
  • 云大使推广中的常见热门问题
  • 自制字幕遮挡器
  • MPAndroidChart 教程:Y轴 YAxis
  • 分布式关系型数据库服务 DRDS 支持显示的 Prepare 及逻辑库锁功能等多项能力 ...
  • #图像处理
  • $.extend({},旧的,新的);合并对象,后面的覆盖前面的
  • (4)通过调用hadoop的java api实现本地文件上传到hadoop文件系统上
  • (5)STL算法之复制
  • (NSDate) 时间 (time )比较
  • (PHP)设置修改 Apache 文件根目录 (Document Root)(转帖)
  • (Redis使用系列) Springboot 实现Redis消息的订阅与分布 四
  • (含react-draggable库以及相关BUG如何解决)固定在左上方某盒子内(如按钮)添加可拖动功能,使用react hook语法实现
  • (已解决)什么是vue导航守卫
  • (译)2019年前端性能优化清单 — 下篇
  • (原創) 如何刪除Windows Live Writer留在本機的文章? (Web) (Windows Live Writer)
  • (转)ABI是什么
  • (转)Android学习系列(31)--App自动化之使用Ant编译项目多渠道打包
  • *2 echo、printf、mkdir命令的应用
  • .NET CORE 第一节 创建基本的 asp.net core
  • .net core 6 集成和使用 mongodb
  • .NET 依赖注入和配置系统
  • .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景
  • .net项目IIS、VS 附加进程调试
  • .pings勒索病毒的威胁:如何应对.pings勒索病毒的突袭?
  • @EventListener注解使用说明
  • [] 与 [[]], -gt 与 > 的比较
  • []error LNK2001: unresolved external symbol _m
  • [2018/11/18] Java数据结构(2) 简单排序 冒泡排序 选择排序 插入排序
  • [BUUCTF 2018]Online Tool