オープンソースの仮想ネットワークソフト「OpenVNet」が生まれたワケ:広がる! SDNの世界探訪(3)(2/2 ページ)
OpenFlowの最新バージョン1.3に対応した仮想ネットワークソフトウェアを、世界で初めてオープンソースで公開したWakame Software Foundation。その運営代表で、OpenVNetの開発元であるあくしゅの山崎泰宏氏によると、元々の狙いは「データセンターを丸ごと仮想化」することにあったという。
OpenFlowを選んだのはパケット処理をオフロードできるから
「OpenFlowが国内で大きな盛り上がりを見せたのもこのころでしたが、私たちとしては“使えるモノ”を選択したにすぎません。OpenFlowを選択した理由は明白で、パケット処理の負荷をオフロードできる技術だったためです。そうでなければ、選ぶ理由がありません」
netfilterでエッジネットワーキングを実現すると、図1のような構成になる。1台の物理マシン上に、複数の仮想マシンが設置され、全てのパケットをnetworkfilterで処理する。このとき、物理マシン上のCPUリソースは、VMやnetfilterなど、全ての処理を受け持たなければならない。
例えば10Gbpsネットワークの場合、ワイヤーレートを出すには14Mppsを達成する必要がある。これを例えば1コア1.3GHzのCPUで処理することを考えると、1パケット当たり90clocks程度しか使用できない計算になる。もちろん、もっと優秀なCPUは多いが、パケット処理だけでこれほどCPUリソースを消費するのに、多数のVMまで処理できるのかという問題が生じるというわけだ。
「今後のシナリオは2つあります。1つは、CPUがとにかく速くなるであろうという楽観的なものです。あるいは、ネットワーク処理をCPUがハードウェア処理できるようになるというものです。実際、一部のCPUはそうした処理を行えるようになっています」
「一方で、悲観的なシナリオとして、CPUの性能・機能の向上が追いつかないほどに、ネットワーク帯域が使われるということも考えられます。この場合は、どうにかしてパケット処理をオフロードしなければならない。ところがnetfilterの処理はCPUから“はがす”ことができないのです」
OpenFlowならば、OpenFlowコントローラーとOpenFlowスイッチとがTCPで接続されているので、CPUと別のボードに持って行くことが可能となる(図2)。1つの方法として、ハードウェアスイッチに置き換えることができる。
「ただ、ハードウェアスイッチはレイテンシが大きくなるので、個人的には使いたくないですね。可能性としては、NIC上に専用のCPUを搭載するということも考えられるでしょう」
山崎氏は、この可能性を裏付けるものとして、NIC上でロジックを記述できる「NetFPGA」技術の存在を挙げている。10Gレベルではまだ実用的ではないものの、コンセプトとして期待できる。
「私たちは、OpenFlowをオフロードのための技術として評価して、netfilterから乗り換えたというわけです。私が否定したハードウェアスイッチへのオフロードも、もしかしたら主流になるかもしれません。そうした選択肢を増やすために、OpenFlowを選択したと言ってもよいでしょう」
Wakame-vdcはリリース後、プライベートクラウドを中心に、幾つかの商用パブリッククラウドでも採用されていくようになった。その中で、国内の大手メーカーなどと共同で、仮想ネットワークの開発も進めていった。
「Wakame-vdcを紹介していく中で、仮想ネットワークの機能のみを利用したいというユーザーもいることが分かり、2013年4月から機能の切り出しを開始し、10月に『OpenVNet』としてリリースしたというわけです」
「OpenVNetは、Wakame-vdcで使っていたOpenFlow 1.0を、最新の1.3に書き換えました。また、共に開発を進めている大手メーカーから受けていた要望などを吸収し、いくつかの機能を追加しました」
ネットワークのダウンサイジング
それでは、ネットワーク仮想化にはどのようなユースケースがあるのだろうか。山崎氏は、1つのケースとして「ダウンサイジング」のためにOpenVNetが役立つという。
サーバー仮想化は、多数の物理マシンを1台に収容し、電気代や設置スペースなどを削減することで、“暇”なマシンを減らして無駄をなくすことである。山崎氏は、これがネットワークの世界でも起きると考えている。
一般的なWebサービスのネットワークを考えると、図3のようにロードバランサーからバックアップのデータベースまで、4つのセグメントに分けられることになる。それはつまり、4台のスイッチが必要となるということだ。
「一般的なICTシステムのコストのうち、実に4割ほどがネットワークに掛かっています。4つのセグメントを1つの物理ネットワークに納めることができれば、このコストをダウンサイジングできるのです。高性能なスイッチが必要ですが、1台で済むので安上がりです」(図4)
なお、残るストレージの仮想化について、あくしゅでは、Mac OS向けバックアップ製品を提供しているiGeekと協力して開発を進めているとのことだ。
小さく始めて大きく育てるSDN
「SDNソリューションの多くは、大規模ネットワークを想定して開発されています。一方で、データセンター事業者の多くは、いきなり大規模なものを始めたいとは思っていません。私たちの考え方も同様です。SDNというと、どうしても大きなネットワーク環境のことを想像しがちです。方向としては間違っていませんが、ぜひ今の足元を見ていただきたい」
実際OpenVNetには、小規模ネットワーク向けの機能が多数搭載されているという。
例えば、仮想トンネリングプロトコルについては、L2スイッチ下で稼働するシーケンスを独自に開発して搭載している。これは、L2セグメントの中ならばブロードキャストを用い、L3(ルーター)を超える通信の場合はカプセリングするという切り分けを行う技術だ。ネットワークトポロジを見て、必要最低限のトンネルのみを張るという仕組みで、ネットワーク処理を最適化するものである。
小さなデータセンターであれば、複雑な物理ネットワークを持たない場合も多く、この機能は有効に活用できるという。もちろん、事業が成長して大きなネットワークが必要となれば、柔軟に対応できる。
「仮想化や集約の技術によって、小さなデータセンターが増えてきています。例えば東南アジアの新興国などでは、安価でもハイスペックなマシンを1台購入して、先進国が開発してきた技術をいきなり導入し、いっぱしのデータセンターを作り上げています」
最近では、AWSのようなデータセンターサービスが話題になっているが、実際には小さなシステムで済むのであれば、オンプレミスサーバーを所有するという選択肢もあり得るというのが、山崎氏の持論だ。
「選択肢を増やすことができるというのは、オープンソースの思想の1つです。オープンソースシステムでも、中身を理解できなければ、保守サービスが必要となります。しかし、1人でも詳しいエンジニアがいれば、“ふたを開けて自分でメンテナンスする”という手法を選ぶことができます」
ソフトウェアがタダかどうかではなく、知識を得られるかどうかがポイントだ。多くの人がその知識を得ると、それが“コモディティ化”と呼ばれる状態となる。登場して間もなくは、知識を持ったエンジニアが少ないため、サポートを提供するというのが、オープンソース開発者の、あくしゅの考え方だ。
「OpenVNetをはじめ、私たちのオープンソース製品も、いずれはコモディティ化するでしょう。そうしたら、また別のものを生み出すだけのことです」
Copyright © ITmedia, Inc. All Rights Reserved.