仮想化CentOS7上に3台の仮想マシン(CentOS)を稼働させつつDPDKとpktgenをインストールして10Gワイヤーレートが出るパケットジェネレータを作成しました。ROMはホストOSにインストールされているqemu-kvmをそのまま使用。updateやupgradeは未実施。CPUはNestedKVMを有効化しているため、ホストOSと同一。Toolsを加えています。/etc/modprobe.d/kvm-nested.conf以下を追記して保存。mode='host-passthrough'>に変更して保存。driverに登録します。3.ゲストOSの設定ゲストOSの設定の前にVirt-Managerなどで仮想マシンを作成してください。その際、CPUは4コア、Memは8GB以上が理想です。Deviceとして、VFを2つ追加してください。VF追加は、こんな感じのイメージです。/etc/default/grubGRUB_CMDLINE_LINUX=行の最後に以下を追記。/boot/grub2/grub.cfg3-2.VFIOの設定ホストOSと同様です。now3-3.ホストパススルーの設定ホストOS上でゲストOSに対しネストします。3台とも実施してください。c741ゲストOS起動後、sshログインし、以下のコマンドにて動作確認。^Huge4.DPDKのインストール4-1.ソースのDLとビルドソースをDLします。/etc/sysconfig/modules/igb_uio.modules一旦再起動reboot5.pktgenのインストール5-1.ソースのDLとビルドソースをDLします。6.負荷試験6-1.DPDKにバインドSR-IOVでパススルーされたVFをゲストOSのKernelからDPDK管理下におくためにバインドします。--status上記バインドを実施することにより、ゲストOS上のカーネルドライバで動作していたVFがDPDKドライバで動作するようになります。showなどを実施しても、ゲストOS上からVFが認識されなくなります(DPDK管理下におかれます)。"1.0,2.1"6-3.pktgenで負荷試験実行pktgenが起動すると以下のような画面となります。TotalRateのフィールドが5Mppsくらいになると、ワイヤーレート(14.8Mpps)が出てそうな雰囲気になります。実際にやるとこんな感じです。1台あたり5Mpps超えてるのがかなり怪しいですが・・・ホストOS単体では思うようにワイヤーレートが出なかったので、この辺りはもう少しチューニングが必要だと考えています。7.最後に以下のサイトを参考にさせて頂きました。documentation私自身もまだまだ勉強不足なため、不要な設定が入っている気がしています。具体的にはホストOSでSR-IOVしているため、ホストOS上のVFIO設定は不要なのでは?といったところです。ホストとゲスト、ユーザ空間とカーネル空間のどこで必要とされている設定なのか?など、一度整理してみないとダメだなと考えています。*1:詳細は過去記事を参照してください。Deflection*2:詳細は過去記事を参照してください。Deflection*3:画像はX540のものですが、X520でも同様です。*4:cdした/usr/src/pktgen-3.5.0のディレクトリ上からでないとpktgenが起動しませんでした。make時のパスの通し方がダメな気がしています。小ネタ集その4:SR-IOVの設定CentOS8のSR-IOV設定方法を記載します。月別アーカイブはてなブログをはじめよう!metonymicalさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。