CentOS7 ovs(Open vSwitch)のビルドとインストール方法
CentOS7によるovs(Open vSwitch)のビルドとインストール方法について記載しました。
CentOS7でyumを使用すると、openvswitch.x86_64 0:2.0.0-7.el7がインストールされますが、今後DPDK版ovsを作りたいと考えているため、その練習も兼ねて、最新版2.10系のビルドから行います。
1.構成
1-1.環境
筐体 : ProLiant DL360p Gen8 System ROM : P71 01/22/2018 NIC : Intel X520-SR2 OS : CentOS7.6(1810) Kernel : 3.10.0-957.el7.x86_64 Installed Environment Groups : Server with GUI Add-Ons for Selected Environment : Virtualization Client, Virtualization Hypervisor, Virtualization Tools ovs : 2.10.1
1-2.全体の流れ
事前準備
rpmビルド
インストール
起動確認
2.事前準備
3.rpmビルド
3-1.ビルド環境準備
ビルド環境の準備をします。
mkdir -p ~/rpmbuild/SOURCES cd rpmbuild/SOURCES/ wget https://www.openvswitch.org/releases/openvswitch-2.10.1.tar.gz tar zxvf openvswitch-2.10.1.tar.gz sed -e 's/@VERSION@/0.0.1/' openvswitch-2.10.1/rhel/openvswitch-fedora.spec.in > ovs.spec
ソース格納ディレクトリの作成
ディレクトリ移動
ソースのダウンロード
ソースのtarファイルを解凍
specファイル生成
3-2.ビルド
ソースからrpmファイルを生成します。
sudo yum-builddep -y ovs.spec cd openvswitch-2.10.1 ./boot.sh ./configure make rpm-fedora RPMBUILD_OPT="--without check"
依存パッケージのインストール
ovsのソース格納ディレクトリへ移動
boot.sh実行
configure実行
rpmビルド*1
多少時間は掛かりますが、最後の方は以下のような出力がでれば正常にビルドが完了しています。
Wrote: /home/ovs/rpmbuild/SOURCES/openvswitch-2.10.1/rpm/rpmbuild/SRPMS/openvswitch-2.10.1-1.el7.src.rpm Wrote: /home/ovs/rpmbuild/SOURCES/openvswitch-2.10.1/rpm/rpmbuild/RPMS/x86_64/openvswitch-2.10.1-1.el7.x86_64.rpm Wrote: /home/ovs/rpmbuild/SOURCES/openvswitch-2.10.1/rpm/rpmbuild/RPMS/noarch/openvswitch-selinux-policy-2.10.1-1.el7.noarch.rpm Wrote: /home/ovs/rpmbuild/SOURCES/openvswitch-2.10.1/rpm/rpmbuild/RPMS/noarch/python-openvswitch-2.10.1-1.el7.noarch.rpm Wrote: /home/ovs/rpmbuild/SOURCES/openvswitch-2.10.1/rpm/rpmbuild/RPMS/noarch/openvswitch-test-2.10.1-1.el7.noarch.rpm Wrote: /home/ovs/rpmbuild/SOURCES/openvswitch-2.10.1/rpm/rpmbuild/RPMS/x86_64/openvswitch-devel-2.10.1-1.el7.x86_64.rpm Wrote: /home/ovs/rpmbuild/SOURCES/openvswitch-2.10.1/rpm/rpmbuild/RPMS/x86_64/openvswitch-ovn-central-2.10.1-1.el7.x86_64.rpm Wrote: /home/ovs/rpmbuild/SOURCES/openvswitch-2.10.1/rpm/rpmbuild/RPMS/x86_64/openvswitch-ovn-host-2.10.1-1.el7.x86_64.rpm Wrote: /home/ovs/rpmbuild/SOURCES/openvswitch-2.10.1/rpm/rpmbuild/RPMS/x86_64/openvswitch-ovn-vtep-2.10.1-1.el7.x86_64.rpm Wrote: /home/ovs/rpmbuild/SOURCES/openvswitch-2.10.1/rpm/rpmbuild/RPMS/x86_64/openvswitch-ovn-common-2.10.1-1.el7.x86_64.rpm Wrote: /home/ovs/rpmbuild/SOURCES/openvswitch-2.10.1/rpm/rpmbuild/RPMS/x86_64/openvswitch-ovn-docker-2.10.1-1.el7.x86_64.rpm Wrote: /home/ovs/rpmbuild/SOURCES/openvswitch-2.10.1/rpm/rpmbuild/RPMS/x86_64/openvswitch-debuginfo-2.10.1-1.el7.x86_64.rpm Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.JbhK5R + umask 022 + cd /home/ovs/rpmbuild/SOURCES/openvswitch-2.10.1/rpm/rpmbuild/BUILD + cd openvswitch-2.10.1 + rm -rf /home/ovs/rpmbuild/SOURCES/openvswitch-2.10.1/rpm/rpmbuild/BUILDROOT/openvswitch-2.10.1-1.el7.x86_64 + exit 0
5.起動確認
rpmインストール後はrootに戻ります。
exit systemctl start openvswitch systemctl enable openvswitch systemctl status openvswitch ovs-vsctl -V
ユーザovsからrootへ変更
ovsサービスの起動
ovsサービスの自動起動設定
ovsサービスの動作確認
ovsのversion確認
以下、出力例
# systemctl start openvswitch # systemctl enable openvswitch Created symlink from /etc/systemd/system/multi-user.target.wants/openvswitch.service to /usr/lib/systemd/system/openvswitch.service. # systemctl status openvswitch ● openvswitch.service - Open vSwitch Loaded: loaded (/usr/lib/systemd/system/openvswitch.service; enabled; vendor preset: disabled) Active: active (exited) since Mon 2018-12-24 10:21:25 JST; 11s ago Main PID: 27852 (code=exited, status=0/SUCCESS) Dec 24 10:21:25 c76x64ovs3.md.jp systemd[1]: Starting Open vSwitch... Dec 24 10:21:25 c76x64ovs3.md.jp systemd[1]: Started Open vSwitch. # ovs-vsctl -V ovs-vsctl (Open vSwitch) 2.10.1 DB Schema 7.16.1
上記まで完了したら、あとはovs-vsctl add-br ovsbr0などでBridgeを作成していきます。
ovsの設定方法は次回記載します。
以上です。
6.最後に
先にも記載しましたが、ovs-dpdkをやることが目的なこともあり、rpmのビルドから実施しました。
以下のサイトに詳しい説明が記載されていますが、
software.intel.com
今回インストールしたのは、下図の左上(ovsのみ)です。
左下(dpdk)については、過去記事のpktgenやspdk+NVMe-oFで、既に実績があるため、DPDKはサクッと導入できるかな?と考えています。