总览
本文是“Arm上带有DPDK的Open vSwitch”系列博客的第1章。本文描述了如何用Arm平台上的源代码构建和安装带DPDK的OvS。高级执行步骤的顺序如下所示:
- 安装与构建的前提条件
- DPDK安装
- OVS安装
默认情况下,官方OvS文档将DPDK安装在 / usr / src
目录下,并将所有OvS文件安装在 / usr / local
目录下。本文中,我将DPDK和OvS安装在我的主目录中并强调了为此目的所修改的步骤。
安装与构建的前提条件
- 系统要求:确保系统上已安装以下软件包。 如果没有,则可以使用以下命令安进行安装:
$ sudo apt install build-essential git libnuma-dev libncurses5-dev bc device-tree-compiler dh-autoreconf pciutils psmisc curl libssl<span class="colour" style="color: rgb(51, 62, 72);"><span class="size"></span></span>
2. 构建要求:检查系统是否满足以下构建要求。 如有需要请安装或升级相关软件包。
•GNU Make
•GCC compiler 4.6或更高版本
•Python 3.4或更高版本
DPDK安装
在继续安装DPDK和OvS之前,必须检查哪个版本的DPDK是根据最新版本的OvS构建成功的。在写本文时,OvS
2.13.90已根据DPDK 19.11版本构建成功。 你可以在 “Releases” 页面上检查最新版本的兼容性。
1. 下载DPDK源代码并解压
$ wget http://fast.dpdk.org/rel/dpdk-19.11.tar.xz
$ tar xf dpdk-19.11.tar.xz
- 创建配置文件。DPDK的不同的配置可用于基于Arm的不同平台——ThunderX、ThunderX2、Octeon-Tx2、Bluefield和N1SDP。请为你的平台选择合适的配置,因为它会为不同平台产生最佳性能。如果找不到特定于平台的配置文件,则用
arm64-armv8a-linuxapp-gcc
回退选项
$cd $HOME/dpdk-19.11/config
$ ls | grep arm64
因为我的平台是N1SDP,我将使用此平台特定的配置
$ cd $HOME/dpdk-19.11
$ make config T=arm64-n1sdp-linuxapp-gcc
3. 创建并安装DPDK库
$ cd $HOME/dpdk-19.11
$ export RTE_SDK=$HOME/dpdk-19.11
$ export RTE_TARGET=arm64-n1sdp-linuxapp-gcc
$ make -j32 install T=$RTE_TARGET
DESTDIR=install
OVS安装
1. 在系统上克隆最新版本的OvS
$ git clone https://github.com/openvswitch/ovs.git
作为替代,你可以从“Download” 界面下载 tarball 的最新版本
$ wget https://www.openvswitch.org/releases/openvswitch-2.12.0.tar.gz
$ tar xvf openvswitch-2.12.0.tar.gz
2. 因为我从Git存储库克隆的OvS,我需要在顶部的源目录中运行boot.sh
来构建configure脚本。如果你已经下载了已发布的tarball,则可以跳过此步骤。
$ cd $HOME/ovs
3. OvS的官方文档提供了将所有文件安装在/usr/local
目录下的步骤。 但是,如上所述,我将在主目录中通过DPDK安装OvS。 我在主目录中创建了usr, var和 etc 目录,以便在配置时可以使用适当的flag 将这些文件安装在我的主目录中。
$ mkdir -p usr var etc
4. OvS必须用 --dpdk
flag来配置才能使用DPDK的数据路径。这个flag应指向已构建的DPDK库的路径。默认情况下,OvS还希望在/usr/local/etc/openvswitch
目录下找到它的数据库。由于我要将所有可执行文件都安装到主目录中,即$HOME/usr
和 $HOME/var
目录而不是/usr/local
和/usr/local/var
目录,并期望用$HOME/etc/openvswitch
做为默认的数据库目录,所以配置被进行了相应地修改。 我还通过--disable-ssl
参数禁用OpenSSL的支持。
$export DPDK_BUILD=$RTE_SDK/$RTE_TARGET
$cd $HOME/ovs
$sudo ./configure--with-dpdk=$DPDK_BUILD--prefix=$HOME/usr--localstatedir=$HOME/var--sysconfdir=$HOME/etc --disable-ssl
5. 运行make。
$ sudo make -j32
6. 运行make install 将可执行文件和手册页安装到系统中去,现在他们将被安装在 $HOME/usr/lib
目录下。
$ sudo make -j32 install
结束语
本文提供了如何通过使用源代码中的DPDK构建与安装OvS的分步教程。我已经使用我的主目录作为默认数据库目录演示了整个过程,而OvS官方文档描述了在/usr/local
目录进行安装的步骤。
本教程中另一个值得注意的地方是将DPDK配置为使用Arm专用的配置文件。 这将确保编译器启用某些特定于平台的优化,以便在对应平台上获得最优化的性能。
本系列中的其他博客:
- Arm上带有DPDK的Open vSwitch的简介
- 第二章:PHY-PHY 测试的设置
- 第三章:PHY-VM-PHY (vHost Loopback)测试的设置
作者:Malvika Gupta
翻译:Khorina
原文链接:https://community.arm.com/developer/tools-software/tools/b/tools-software-ides-blog/posts/open-vswitch-with-dpdk-on-arm-build-and-install-from-source