分享

open-vswitch安装手册--google翻译版

 冬木*细雪 2013-11-26
      如何在Linux,FreeBSD和NetBSD的安装与Open vSwitch
      ================================================== ======

本文档介绍了如何在构建和安装与Open vSwitch
通用Linux,FreeBSD的,或NetBSD的主机。周边的安装细节
在特定平台上,请参阅这些文件中的一个:

    -  INSTALL.Debian
    -  INSTALL.Fedora
    -  INSTALL.RHEL
    -  INSTALL.XenServer

建设要求
------------------

为了编译用户空间程序在打开的vSwitch分布,
您将需要以下软件:

    - 使用GNU make。

    -  C编译器,如:

        * GCC 4.x的

        *锵。铛3.4及更高版本提供有用的静态语义
          分析和线程安全检查。对于Ubuntu,有
          可在铿锵的网站每夜构建的软件包。

    - 的libssl,从OpenSSL的,如果你打算,是可选的,但建议
      连接与Open vSwitch到OpenFlow的控制器。的libssl是
      建立保密性和真实性的要求
      从与Open vSwitch连接到一个OpenFlow的控制器。如果
      已安装的libssl,然后与Open vSwitch会自动建立
      与它的支持。

编译Linux上的内核模块,您还必须安装
以下。如果你不能建立或安装内核模块,你可以
使用用户空间的唯一实现,在性能上的代价。
用户空间实现也可能缺少某些功能。请参阅
INSTALL.userspace获取更多信息。

    - 受支持的Linux内核版本。请参阅自述文件一
      受支持的版本的列表。

      在与Open vSwitch数据通路需要桥接支持
      (CONFIG_BRIDGE)要建成一个内核模块。(这是常见的
      在由Linux发行版提供的内核。)桥模块
      不能被加载或在使用中。如果桥模块运行
      (请用“lsmod的| grep的桥”),您必须删除它(“rmmod的
      在开始之前,数据通路的桥“)。

      对于可选支持入口监管的,您必须启用内核
      配置选项NET_CLS_BASIC,NET_SCH_INGRESS和
      NET_ACT_POLICE,是内置的或作为模块。(NET_CLS_POLICE是
      过时的和没有必要的。)

      要在Linux 2.6.37或更新版本,内核支持使用GRE隧道
      对于GRE必须被编译或可作为一个模块
      (CONFIG_NET_IPGRE_DEMUX)。

      要配置HTB或与Open vSwitch服务HFSC质量,
      您必须启用相应的配置选项。

      要使用TAP设备与Open vSwitch的支持,您必须启用
      CONFIG_TUN。

    - 要构建一个内核模块,你需要的GCC相同的版本,
      被用于构建内核。

    - 对应的Linux内核映像内核构建目录
      该模块上运行。在Debian和Ubuntu,例如,
      包含一个内核二进制文件每个linux-image包有
      与所需的构建相应的linux-头文件包
      基础设施。

如果您是从一个Gi??t树或快照(而不是从工作
发布包),或者如果您修改与Open vSwitch构建系统
或数据库模式,还需要下列软件:

    -  Autoconf的版本2.64或更高版本。

    -  Automake的版本1.10或更高版本。

    -  Python 2.x的,当x> = 4。

如果修改了ovsdbmonitor工具,那么你也将需要
以下内容:

    - 从PyQt4的pyuic4(http://www.)。

要运行单元测试,你还需要:

    -  Perl的。版本5.10.1是众所周知的工作。早期版本应该
      同时工作。

该OVS-vswitchd.conf.db(5)联机帮助将包括ER图,在
格式纯文字以外,只有当你有以下几点:

    - 从graphviz的“点”(http://www./)。

    -  Perl的。版本5.10.1是众所周知的工作。早期版本应该
      同时工作。

    -  Python 2.x的,当x> = 4。

如果你要大幅修改与Open vSwitch,请考虑
安装下面以获得更好的警告:

    - “疏”版本0.4.4或更高版本
      (http://www./pub/software/devel/sparse/dist/)。

    - 使用GNU make。

    - 铛,3.4或更高版本

此外,您可能会发现在公共事业/ OVS-dev.py发现有用的OVS-dev的脚本。

安装要求
-------------------------

在机器上的虚拟交换机打开要安装必须具有
以下软件:

    -  libc中与用于编译的libc的兼容。

    - 的libssl与用于构建,如果OpenSSL的是兼容的libssl
      用于构建。

    - 在Linux上,相同的内核版本配置作为构建的一部分。

    - 对于Linux,有“TC”计划的可选支持入口警务
      从iproute2的所有主要的分布(部分,可在
      http://www./en/Net:Iproute2)。

在Linux上,你应该确保为/ dev / urandom的存在。为了支持TAP
设备,您还必须确保为/ dev /网络/ TUN存在。

要运行ovsdbmonitor刀具,机床还必须具备以下
软件:

    -  Python 2.x的,当x> = 4。

    -  Python的扭曲海螺。

    -  Python的JSON。

    -  PySide或PyQt4的。

    -  Python的Zope的接口模块。

(在Debian的“lenny”上面可以以“apt-get安装进行安装
Python的json的蟒蛇 -  QT4蟒蛇 -  zopeinterface蟒蛇 - 双绞线海螺“)。

建设和安装与Open vSwitch用于Linux,FreeBSD的NetBSD的或
================================================== ===============

一旦你已经安装了所有在基地上面列出的先决条件
先决条件部分,按照下面的步骤来构建。

1。如果您是直接从与Open vSwitch的Git树拉到来源,
   在顶级源目录中运行boot.sh:

      %。/ boot.sh

2。在顶部的源目录,通过运行配置包
   配置脚本。通常你可以调用配置没有任何
   参数:

      %在。/ configure

   默认情况下所有的文件都在/ usr /本地安装。如果你想
   安装到,例如,在/ usr和/ var,而不是在/ usr /本地和
   在/ usr /本地的/ var,如下所示添加选项:

      %/配置 - 前缀= / USR  - 的localstatedir = /无功

   要使用特定的C编译器来编译与Open vSwitch用户
   节目,还configure命令行上指定它,像这样:

      %在。/ configure CC = gcc的-4.2

   使用'铛'的编译器:

      %在。/ configure CC =铛

   要构建Linux内核模块,这样就可以运行
   基于内核的开关,通过内核构建的位置
   目录上使用 -  with-linux的。例如,要构建一个运行
   实例的Linux:

      %。/配置 - 与 -  = linux的/ lib目录/模块/`uname-r后`/ build中

   如果你想建立一个架构等核心模块
   比用于构建的计算机,您可以架构
   指定使用了karch变量的内核体系结构的字符串
   调用configure脚本的时候。例如,要构建MIPS
   使用Linux:

      %/配置了 -  with-linux的= /路径/到/ linux下了karch = MIPS

   configure脚本接受了其他一些选项和荣誉
   额外的环境变量。对于一个完整的列表,调用
   配置使用 -  help选项。

3。运行GNU make工具在顶源目录,例如:

      %使

   或者如果使用GNU make安装为“gmake命令”:

      %的gmake

   为了提高警告,如果你安装了“疏”(见
   “先决条件”),C = 1添加到命令行。

4。考虑运行的测试套件。请参阅“运行测试套件”
   下面的说明。

5。通过运行“苏”或其他程序成为root。

6。运行“make install”会在可执行文件和联机帮助页安装到
   正在运行的系统,通过在/ usr /本地默认。

7。如果您构建内核模块,您可以安装并加载它们,例如:

      %使modules_install安装
      %/ sbin目录/ modprobe的openvswitch 

   为了验证该模块已经加载,运行“/ sbin目录/ lsmod的”和
   检查openvswitch列出。

   如果“modprobe的”操作失败,看看过去几年内核日志
   讯息(例如用“的dmesg |尾”):

      - 消息“openvswitch:出口复制符号
        br_should_route_hook(由桥所拥有)“指的是桥
        模块被加载。运行“/ sbin目录/ rmmod的桥梁”,将其删除。

        如果“/ sbin目录/ rmmod的桥”与失败“错误:模块桥接器
        不存在在/ proc / modules中“,那么桥被编译成
        在内核中,而不是作为一个模块。与Open vSwitch不
        支持此配置(请参阅“建设要求”,上面)。

      - 消息“openvswitch:出口复制符号
        dp_ioctl_hook(由ofdatapath拥有)“是指该ofdatapath
        从OpenFlow的参考实现模块加载。
        运行“/ sbin目录/ rmmod的ofdatapath”将其删除。(您可能需要
        事先删除任何现有的数据通路,使用“dpctl”
        程序包含在OpenFlow的参考实现。
        “OVS-dpctl”将无法正常工作。)

      - 否则,最有可能的问题是,与Open vSwitch是
        建立从一进,你是不同的内核
        试图加载它。运行“modinfo命令”的openvswitch.ko和
        专为正在运行的内核,例如一个模块:

           %/ sbin目录/ modinfo命令openvswitch.ko
           %/ sbin目录/ modinfo命令/ lib中/模块/`uname-r后`/内核/网络/网桥/ bridge.ko

        通过这两个命令比较“vermagic”线路输出。如果
        它们之间的区别,然后与Open vSwitch是专为错误的内核。

      - 如果你决定要报告错误或要求相关的问题
        模块加载,请注明来自“dmesg的”输出和
        上面提到的“modinfo命令”命令。

   有一个可选的模块参数来openvswitch.ko叫
   vlan_tso,使TCP分段卸载过的VLAN上网卡
   支持它。许多驱动程序不公开的TSO支持的VLAN上
   在与Open vSwitch可以使用,但一个办法是没有办法来检测
   是否是这种情况。如果你知道你的特定的驱动程序可以
   处理它(例如通过测试过的VLAN发送大量的TCP数据包)
   然后通过在一个1值可以提高性能。内置的模块
   Linux内核2.6.37及更高版本,以及特别版本的补丁
   早期的内核,不需要这一点,并没有这个参数。如果
   你不明白这是什么意思或不知道,如果你的驱动程序
   将工作,不设置此。

8。使用ovsdb刀具初始化配置数据库,例如:

      %MKDIR-P的/ usr /本地/ etc / openvswitch
      %ovsdb-工具创建/ usr /本地/ etc / openvswitch / conf.db vswitchd / vswitch.ovsschema

启动
=======

开始OVS-vswitchd本身之前,你需要开始其
配置数据库,ovsdb服务器。每台机器上打开
vSwitch上安装应该运行它自己的ovsdb服务器的副本。
其配置为使用您创建的数据库中的第7步
安装,上面,听在Unix域套接字,连接到
在数据库本身中指定的任何管理人员,以及使用SSL
配置数据库:

      %ovsdb  - 服务器 - 远程= punix :/ USR /本地的/ var /运行/ openvswitch / db.sock \
                     - 远程= DB:Open_vSwitch,Open_vSwitch,manager_options \
                     - 私钥= DB:Open_vSwitch,SSL的private_key \
                     - 证书= DB:Open_vSwitch,SSL证书\
                     - 引导 -  CA证书= DB:Open_vSwitch,SSL CA_CERT \
                     -  pid文件 - 分离

(如果你建立了与Open vSwitch不支持SSL,那么省略
- 私钥, - 证书, - 引导 -  CA证书)。

然后使用OVS-vsctl初始化数据库。这是唯一的
需要您创建数据库后的第一时间
ovsdb  - 工具(但在任何时候运行它是无害的):

      %OVS-vsctl  - 无等待初始化

然后启动主与Open vSwitch守护进程,告诉它连接到
同样的Unix域套接字:

      %OVS-vswitchd  -  pid文件 - 分离

现在你可以使用OVS-vsctl设立桥梁和其他与Open vSwitch
功能。例如,要创建一个名为网桥BR0和添加端口
eth0和vif1.0是给它:

      %OVS-vsctl附加BR BR0
      %OVS-vsctl外接端口BR0为eth0
      %OVS-vsctl外接端口BR0 vif1.0是

请参阅OVS-vsctl(8)了解更多详情。

升级
=========

当您升级与Open vSwitch从一个版本到另一个,你应该
同时升级数据库模式:

1。停止与Open vSwitch守护程序,例如:

      %杀灭`CD的/ usr /本地/无功/运行/ openvswitch &&猫ovsdb-server.pid OVS-vswitchd.pid`

2。安装新的Open vSwitch上发布。

3。升级数据库,在以下两种方式之一进行:

      - 如果在你的数据库中没有重要的数据,那么你可能
        删除数据库文件和ovsdb  - 工具重新创建它,
        下列房屋下“中的说明和安装开
        vSwitch上的Linux,FreeBSD的或NetBSD的“。

      - 如果你想保持你的数据库的内容,备份它
        先上去,然后使用“ovsdb刀具转换”来升级吧,比如:

        %ovsdb刀具转换的/ usr /本地/ etc / openvswitch / conf.db vswitchd / vswitch.ovsschema

4。启动Open vSwitch上的守护进程大厦下“的描述和
   对于Linux,FreeBSD的或NetBSD的“上面安装Open vSwitch上。

热升级
=============
升级与Open vSwitch从一个版本到下一个版本以最小
交通经历一个使用了Open vSwitch上的系统中断
需要一些注意事项:

1。如果升级只涉及升级的用户空间工具和守护进程
与Open vSwitch的,请确保新用户空间的版本是兼容
以前加载的内核模块。

2。用户空间的守护进程的升级意味着他们必须重新启动。
重新启动守护进程意味着,OpenFlow的在OVS-vswitchd守护程序流
将丢失。还原的流量的一种方法是让控制器
重新填充它。另一种方法是使用一个应用程序来保存先前的流程
像OVS-ofctl,然后在重新启动后重新添加它们。恢复旧的流
准确只有在新打开的vSwitch接口保留旧'ofport“
值。

3。当新的用户空间守护进程得到重新启动后,它们会自动刷新
老流向设置在内核中。这可能是昂贵的,如果有几百个
新的流量正在进入内核,但用户空间的守护进程都很忙
建立新的用户空间无论是从控制器或类似工具流
OVS-ofctl。与Open vSwitch数据库提供了一个选项来解决这个问题
通过other_config:流恢复,等待Open_vSwitch表的列。
请参阅OVS-vswitchd.conf.db(5)联机帮助页。

4。如果升级还涉及升级的内核模块,旧内核
模块需要卸载和新的内核模块应该被加载。
也就是说,属于与Open vSwitch的核心网络设备被重建
和内核流量丢失。交通的停机时间可以减少
如果用户空间的守护进程会立即重新启动,用户空间流
是尽快恢复。

该OVS-CTL实用的“重新启动”功能只能重新启动用户空间的守护进程,
可确保“ofport'值保持跨越重启一致,恢复
用户空间的流量使用OVS-ofctl公共事业以及使用
other_config:流量恢复等待柱保持车辆的停机时间到
最小。该OVS-CTL实用程序的“强制重载-KMOD”功能做了所有的
同上,但也替换为新的旧的内核模块。与Open vSwitch
为Debian,XenServer和RHEL的启动脚本使用OVS-CTL的功能和它
建议用于其他软件平台太这些功能。

运行该测试套件
=====================

与Open vSwitch包括一个测试套件。在你提交补丁
逆流而上,我们建议您运行测试,并确保它们通过。
如果要添加新的功能,打开的vSwitch,然后加入测试的
功能确保您的功能不会破坏作为开发商修改
其他地区与Open vSwitch的。

您必须配置和建立与Open vSwitch(步骤1至3
“建筑及安装与Open vSwitch用于Linux,FreeBSD的或NetBSD的”以上)
在运行测试套件之前。您不需要安装与Open vSwitch
或建或加载内核模块来运行测试套件。你这样做
不需要主管权限来运行测试套件。

运行在与Open vSwitch,一是所有的单元测试的时间:
      做检查
这需要在5分钟在现代桌面系统。

运行所有的单元测试与Open vSwitch,最多可并联8:
      做检查TESTSUITEFLAGS =-J8
这需要在一个现代化的四核台式机系统一分钟。

要查看所有可用的测试的列表,请运行:
      做检查TESTSUITEFLAGS =  - 列表

要运行测试的一个子集,例如测试123和477的测试通过484:
      做检查TESTSUITEFLAGS = '123 477-484'
(测试不具有相互依存性,所以你可能会遇到任何一个子集。)

要运行测试,匹配关键字,如“ovsdb”:
      做检查TESTSUITEFLAGS ='-K ovsdb“

要查看测试选项的完整列表:
      做检查TESTSUITEFLAGS =  - 帮助

测试运行的结果报告在测试/ testsuite.log。
请报告测试失败的bug和包括testsuite.log中
您的报告。

如果您安装了“Valgrind的”,那么你也可以运行测试套件
根据Valgrind的使用代替“做”让入住的valgrind“
勾选“全部相同的选项通过TESTSUITEFLAGS可供选择。当
你这样做,“Valgrind的”业绩<N>测试中报告的文件
名为测试/ testsuite.dir / <N> / Valgrind的。*。你可能会发现,
Valgrind的结果更容易解释,如果你把“-Q”在
?/。valgrindrc,因为这降低了输出量。

有时,一些测试可能在某些运行,但不是别人失败。这是
在测试包中,而不是在与Open vSwitch本身的错误通常是一个错误。如果
你会发现一个测试间歇性故障,请报告它,因为
开发人员可能没有注意到。

错误报告
-------------

请至bugs@openvswitch.org报告问题。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约