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 倍くらいの差が出るようです。(ざっくりと測定した結果なので、条件によっては異なる結果がでるかもしれません。その辺はご了承を。)