連載
» 2014年01月08日 18時00分 UPDATE

広がる! SDNの世界探訪(3):オープンソースの仮想ネットワークソフト「OpenVNet」が生まれたワケ (1/2)

OpenFlowの最新バージョン1.3に対応した仮想ネットワークソフトウェアを、世界で初めてオープンソースで公開したWakame Software Foundation。その運営代表で、OpenVNetの開発元であるあくしゅの山崎泰宏氏によると、元々の狙いは「データセンターを丸ごと仮想化」することにあったという。

[廣瀬治郎,@IT]

データセンター仮想化からのスピンアウト

 Wakame Software Foundation(WSF)は2013年10月28日、仮想ネットワークオープンソースソフトウェア「OpenVNet」の初版をリリースした。同ソフトは、仮想ネットワークを実現するソフトウェアとして、世界で初めてOpenFlowの最新バージョン1.3に対応したオープンソースソフトウェアだ。LGPLv3に基づいて公開されており、誰でも無料で自由に利用できる。

【関連記事】

オープンソースの仮想ネットワークソフト、「OpenVNet」公開

http://www.atmarkit.co.jp/ait/articles/1310/29/news096.html


 今回は、OpenVNetの開発元で、WSFの運営代表を務めるあくしゅ(axsh)の代表取締役 山崎泰宏氏に同技術について話を伺った。

 「OpenVNetは、WSFの既存プロジェクトである『Wakame-vdc』に組み込まれた技術を抜き出し、いくつかの機能を追加した“スピンアウト技術”です。そのため、Wakame-vdcを抜きにして話をすることはできません」

 Wakame-vdcは、現在21社が参加するプロジェクトであり、国内外の多くの企業で利用されているIaaSクラウドコンピューティング基盤ソフトウェア(クラウドコントローラー)である。その名の通り、VDC(Virtual Data Center)のコンセプトに基づいて、サーバー、ストレージ、ネットワークといったデータセンター内の全てのリソースを仮想化するソフトウェアである。

 山崎氏によれば、複製や移動が容易となるポータビリティ(可搬性)の高さがVDCの最も重要な要素であるとのことで、Wakame-vdcも可搬性を重視して開発されており、運用や開発の俊敏性を大幅に向上させることが可能という。

データセンターを丸ごと仮想化したい

 以前、大手SIerで研究開発関連のエンジニアを務めていた山崎氏は、2006年ごろにあくしゅを設立し、2008年に前職を辞めて代表として就任した。あくしゅは現在14名の社員を抱え、うち3名の外国籍人を含む12名がエンジニアであり、基本的に英語で開発を行うグローバルカンパニーとして活動している。

 当初は、受託開発をメインとしていたが、仮想化やクラウドサービスなどの新しい技術とニーズを受けて、Amazon EC2上のサーバー数やネットワークなどの設定を自動的に制御するソフトウェア「Wakame(現Wakame-fuel)」を開発。その後、IaaSクラウド基盤ソフトのWakame-vdcや、ハイブリッドクラウド上のインスタンス管理を提供する「Wakame-os」などを加えて、オープンソースプラットフォーム群「Wakame」としてプロジェクトを推進している

 山崎氏がWakame-vdcの開発に至ったのは、受託開発で受けた案件がきっかけであったという。

sdn03_ph01.jpg OpenVNetの開発元で、WSFの運営代表を務めるあくしゅ(axsh)の代表取締役 山崎泰宏氏

 「起業した当初、私の友人の多くがコンシューマー向けのサービスを提供する企業や事業に参加していました。そうしたサービスでは『高負荷』という課題を常に抱えています。彼らは、どうやってWebサーバーを分散させるか、どうやってアプリケーションをスケールさせるか、大規模なデータセンターをどうやってメンテナンスするかといった問題を日々考えているそうです」

 あくしゅも起業当初は、新システムの構築などよりは「高負荷でどうにもならない」「システムダウンによる機会損失が大きい」といった相談を受けることが多かった。そうした背景を基に、山崎氏は、高負荷・大規模環境に適したシステムというものを重視して、同社の強み・軸とすべきだと考えた。

 「そうしたハイスケールなものを作るということは、“物理的に分散しているものを、論理的に集中させる”仕組みを作ることです。これは、非常にインターネット“らしい”ことですし、時代にも適していますので、当社の技術テーマとして開発を進めています。そうしたテーマに集まってきたのが、当社の技術陣なのです」

 起業してすぐの2007年ごろには「Amazon Web Service」が日本に上陸し、データセンター自動化が見え始めた。山崎氏はAWSに大きな興味を引かれ、2009年にAWSにはなかったオートスケール機能を実装するWakame(現「Wakame-fuel」)をリリースした。

 「Wakameはさまざまな方から問い合わせをいただきました。多くはアプリケーションをスケールしたいというものでしたが、興味深かったのは、複数のデータセンター事業者から連絡が来たことです。Wakameのオートスケール機能を、自社のデータセンターに実装したいということでした。しかし残念ながら、当初はお断りしていました。AWSのようなAPIの機能がなかったためです」

 「そうした問い合わせが増えてくると、オートスケールしたいという課題の前に、世の中のデータセンターのほとんどが、Web APIを持っていないことが問題なのではないかと考えるようになりました。そこで、オートスケール機能の開発をストップし、データセンターのスケールを自動化する、現在のOpenStackやCloudStackのような仕組みの開発に取り掛かりました。それがWakame-vdcです」

 ちなみにOpenStackとして有名な「Nova」は、実はWakame-vdcから遅れること2カ月ほど後のリリースであったという。

 「私たちは、クラウドを作りたいわけでも、AWSを作りたいわけでもありません。データセンターをいかに効率化するか、いかに開発を楽にするかという目標で開発を行っています。そのため、データセンターを丸ごと仮想化するVirtual Data Centerの考え方に帰着するというわけです。このコンセプトは、SDNやSDDC(Software Defined Data Center)と本質的には変わりありません」

Wakame-vdcのネットワークをOpenFlowへ

 VDCとは、データセンターの内部にあるもの、つまり3大要素である「マシン(サーバー)」「ネットワーク」「ストレージ」を全て仮想化することである。Wakame-vdcの開発も、これらを1つ1つ丁寧に仮想化していこうという観点でスタートした。

 「最初のリリースからしばらくは、サーバー向けの機能を強化していきました。しかし開発途中から、ネットワークを仮想化することが非常に難しいということに気づき、どうすべきか議論を進めていました」

sdn03_ph02.jpg

 その後、2010年11月、山崎氏はWakame-vdcに「Security Groups」機能を追加した。これは、仮想マシンごとにインストールされる分散型のファイアウォールのようなものだ。今でこそ、多くのクラウド基盤に実装されている技術であるが、これをどのように管理すべきかが問題であった。そこで山崎氏は、現在のエッジネットワーキングのコンセプト、つまり分散されている物理サーバー上でネットワークの処理を全てやってしまうというアイデアを生み出し、実装した。

 「当時は、Linuxカーネルに実装されていたnetfilterを活用してエッジネットワーキングを実現していました。これは、パケットの処理をプログラミングできる技術で、OpenFlowのフローテーブル(Flowtable)に近いものでした」

 このころ、ようやくOpenFlowが話題になりつつあった。ただし当初はQoSの議論ばかりで、Wakame-vdcの要件に当てはまるものではなかったそうだ。そのうち、少しずつフロー技術へと目が向き始めたため、山崎氏らもnetfilterの置き換えを検討し、作業を始めていった。

 「実際、netfilterでコマンド処理していたものを、OpenFlowコントローラーとスイッチに置き換えるだけのことなのでスムーズに作業でき、まずはSecurity GroupsをOpenFlow 1.0に置き換えたWakame-vdcの初版を2011年12月にリリースしました」

 この置き換えで、エッジで全てのネットワーク処理が可能であることは実感できたため、そのコンセプトで開発を進め、2012年3月にはOpenFlowによる仮想化、L2のアイソレーション(多数の仮想ネットワークセグメントを作成すること)を実現するWakame-vdcをリリースした。

       1|2 次のページへ

Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。