CentOS6.3にDPDKをインストール
下書き。結局10Gbps対応のジェネレータがないため検証は途中で終わりました。それでもDPDKを利用すれば1Gbpsまででも転送速度は上昇します。
DPDK(version1.5)を用いて、L3 Forwardingの検証を行ってみました。
Intelの公式ドキュメントを参照しました。
DPDKのインストール
必要なパッケージのインストールとソースコードの解凍を行った後に、スクリプトを用いてインストールを行います。
スクリプトでエラーが出る場合は、一度マシンを再起動してみてください。
# yum install -y gcc make kernel-headers.x86_64 kernel.x86_64 kernel-devel # cd /opt # wget http://dpdk.org/browse/dpdk/snapshot/dpdk-1.5.0r1.tar.gz # tar zxvf dpdk-1.5.0r1.tar.gz # cd dpdk-1.5.0r1 # ./tools/setup.sh
スクリプトの設定
スクリプトで表示されるStepに従って、インストールの設定を行います。
Step1
Press enter to continue ... ---------------------------------------------------------- Step 1: Select the DPDK environment to build ---------------------------------------------------------- [1] i686-default-linuxapp-gcc [2] i686-default-linuxapp-icc [3] x86_64-default-linuxapp-gcc [4] x86_64-default-linuxapp-icc ⇒64bit環境でgccを利用しているため、3を選択します。 コンパイルが完了し「Build complete」と表示されれば、Step1は完了です。
Step2
---------------------------------------------------------- Step 2: Setup linuxapp environment ---------------------------------------------------------- [5] Insert IGB UIO module [6] Insert KNI module [7] Setup hugepage mappings for non-NUMA systems [8] Setup hugepage mappings for NUMA systems [9] Display current Ethernet device settings [10] Bind Ethernet device to IGB UIO module ⇒公式ドキュメントによるとigb_uioモジュールおよびKNIモジュールが DPDKの動作に必要なため、5および6を選択します。 Option: 5 Unloading any existing DPDK UIO module Loading uio module Loading DPDK UIO module Option: 6 Unloading any existing DPDK KNI module Loading DPDK KNI module と表示され完了します。
以下のコマンドでnumaをサポートしているようなので、8を選択します。 # numactl --show policy: default preferred node: current physcpubind: 0 1 2 3 cpubind: 0 nodebind: 0 membind: 0
動作確認
helloworldアプリを実行します。
export RTE_SDK=/opt/dpdk-1.5.0r1/ export RTE_TARGET=x86_64-default-linuxapp-gcc