Openvswitch を userspace で動かす
今回は Openvswitch (ovs-vswitchd) を userspace で動作させる方法を試してみたので紹介します。
以前にも openvswitch の userspace での動作について紹介しましたが、その時用いていたのは ovs-openflowd でした。こちらの方は 1.4.0 にはすでに同梱されていないので、今回は ovs-vswitchd を使う方法を紹介します。
設定
基本的には、以前紹介した kernel-module を使う方法とほとんど同じです。違う点は以下の二点だけです。
今回は kernel-module を使用しないので、lsmod で確認し、openvswitch_mod をアンロードしておきます。
$ rmmod openvswitch_mod
あとは ovs-vsctl で以下のような設定を入れればいいだけです。
$ ovs-vsctl set bridge ofs0 datapath_type=netdev
ただし、userspace での動作では、前回 紹介した openvswitch 組み込みの gre 機能は使えないようです。
試してみる
あるホスト上で動作する二つの VM 間を openvswitch でつなぎ、その ovs を Trema/routing_switch で OpenFlow 動作をさせます。kernel module を使った場合と userspace のみで動作させた場合の、二つの VM 間のスループットの違いについて netperf を使って調べてみました。kernel module を使った場合は 1465Mbps, userspace で動作させた場合は 248Mbps となり、だいたい 6 倍くらいの差が出るようです。(ざっくりと測定した結果なので、条件によっては異なる結果がでるかもしれません。その辺はご了承を。)