Open vSwitchの存在意義はOpenFlowだけじゃない

最近、Open vSwitchについて調べたことを、某所でお話しする機会があったので少し忍ばせた(「I/O仮想化最前線」)。スライドのP37から数枚がそう。

Open vSwitchはOpenFlowに対応したソフトウェアスイッチということで大いに注目を集めたし、自分もそのコンテストで理解していた。だけど、おそらく最初からOpenFlowスイッチを作ろうという目的があったわけではなく、VMホスティングするためのまともなソフトウェアスイッチが欲しいということでプロジェクトが開始したんじゃないかな。あまり昔のドキュメントが見つからなかったので、本当のところはわからないけど。

例えば、VLANを使ってテナント毎にトラフィックを隔離したいと場合も、レガシーブリッジよりも簡単に実現できる。add-portするときにtag引数を追加するだけだ。

# ovs-vsctl add-br br0
# ovs-vsctl add-port br0 eth0
# ovs-vsctl add-port br0 tap0 tag=101
# ovs-vsctl add-port br0 tap1 tag=102

これでVMから出るトラフィックにはそれぞれのVLAN IDが付加され、VMに入るトラフィックからはVLAN IDが削除される。つまり、ゲストOS (VM)ではVLANの設定を気にする必要はない。

また、話は変わるけど、最近CloudStackを触っている。CloudStack 3.0ではOpen vSwitchを使っているものだと思っていたけど、少なくともハイパーバイザがKVMの場合は、レガシーブリッジを使っているようだ。なんでだろう?