日本時刻で2月5日水曜日の早朝(6時15分)、「Hydrogen Released」と本文内に大きく書かれた OpenDaylight のアナウンスメール
Cisco Japan Blog の中でも、SDN、NFV、仮想化全般に関する記事がたくさん取り上げられていますが、OpenDaylight について触れられることがなかったので、正式リリースを祝して触れてみたいと思います。
SDN とコントローラ市場の背景
さて、すでに Software Defined Network(SDN)という概念は、コンピュータ/ネットワーク等 IT のどこか特定技術だけの議論ではない、注目のキーワードとなっています。SDN に関する定義は、人やベンダーによって異なる部分もありますが、最大公約数的に共通して理解されているだろう定義・認識を整理すると、次のようになります。
広義:「従来システムのネットワーク要素を抽象化し分割する、コンピュータ ネットワークを構築するアプローチ」(wiki より)
狭義:「(広義のアプローチを具体化するために)ネットワーク機器のコントロール プレーン、データ プレーンを分離し、集中化されたソフトウェアからコントロールして、もっと効率的なこと、便利なことをする!!」
この「便利なことをする」ための実行環境や手法が、SDN のコンテキスト内に登場するキーワードである「Network Virtualization」「Overlay」あるいは「Flow Programming」ということになります。
このような環境を手に入れるため、Openflow によってデータ プレーンとコントロール プレーン分離と Programmability が可能になったわけですが、どのユーザにも共通して必要とされるコンポーネントであるコントローラについては、当時、この領域を多くのソフトウェア スタートアップ ベンダーが牽引していました。当然ながらユーザにとってこのような状況は、コントローラ製品の開発継続性、大規模ベンダーからの買収による Openness 低下の可能性や財務的なことへの懸念だけでなく、各ベンダー製品のアプリケーションや API 実装における顕著なフラグメントにより、何が本命なのかさっぱり分からない、何を選んだら安全なのか分からないということになります。これが導入の足かせにもなっていました。またユーザは、できればコントローラにはお金をかけたくないと考えているはずです。
OpenDaylight(http://www.opendaylight.org/)とは?
OpenDaylight では、コントローラベース コード以外にも、フレームワークとして関連する機能(コントローラ アプリケーション、Southbound Protocol Plugin、ネットワーク仮想化プラットフォーム等)を既存のオープンソース技術を活用して開発されています。そのため OpenDaylight 内のコミュニティはさらに細分化されており、プロジェクト総数も半年前は10程度でしたが、リリース時点では 21プロジェクトに増え、フレームワーク自体も短期間で大きくなってきました。今回の 1st Release では Accepted Proposal Project(2014年2月時点)が導入された形になっています。(https://wiki.opendaylight.org/view/Project_Proposals:Main
Cisco は IBM とともに OpenDaylight コミュニティの基盤を形成し、発足当時から Platinum メンバーとして開発に参加、15名以上のフルタイム エンジニアにより、主にコントローラベース コードの開発に貢献しています。Platinum スポンサーメンバーは、OpenDaylight プロジェクト ボードとしてのポジションと、Technical Steering Committee(TSC:技術運営委員会)としてのポジションを担当します。Platinum 以外のスポンサーシップには Gold と Silver があり、2014年2月時点での参加メンバーは、前述の Platinum/Gold メンバーを含めて計33社となっています。Platinum メンバーのコミットメントの概要は次のようになっており、拘束力のある契約サインの基で活動をすることになります。決して小さい投資ではありません。
OpenDaylight オープンソースコントローラと初期リリース
OpenDaylight コントローラは、Java をサポートしたどの OS(linux/windows)でも稼働できる、OSGI(Open Services Gateway Initiative)アプリケーション フレームワークを利用したピュア ソフトウェアとなり、Pre-Built Zip 形式、RPM 形式、Virtual Box VM イメージ(Open JDK、検証用 mininet も含む)で提供されます。既存 Linux 上へのインストールは非常に簡単で、以下の手順で起動までを含め数分で立ち上がります。
ダウンロード サイト:http://www.opendaylight.org/software/downloads
インストレーション ガイド:https://wiki.opendaylight.org/view/Release/Hydrogen/Base/Installation_Guide
Zip形式の場合の手順:
初期リリースでは、Proposal Project にて個別に開発が進んでいた各機能の組み合わせのバンドルとして3つの Edition に分かれて提供され、これらのすべての必要な機能は、やはりシングル ファイルの中で Pre-Built されています。
Base Edition
Virtualization Edition
Service Provider Edition
以下、OpenDaylight コントローラと OpenDaylight をベースでは業界初市場投入となる Cisco Extensible Network Controller (XNC)のGUIを比べてみます。
メイン機能メニューのタブの数とロゴ以外は、全体のレイアウトとそれぞれの Pane 内のメニューを含め、ほとんど同じ構成であることが分かります。
最後に「Cisco は OpenDaylight のコントローラベース コード開発の大部分に貢献した、そしてそれを継続している」ということを繰り返しておきたいと思います。OpenDaylight ベースの商用コントローラ ソフトウェアである Cisco XNC の外観が OpenDayLight コントローラとほぼ同じであるために、ひょっとして「Cisco はこの分野で暗躍しつつ主導権を握ったのではないか」「ロックインなテクノロジーにしようとしているのではないか」という印象を持つかもしれません。
今回は OpenDaylight に関する背景とソフトウェアの構成に触れる形になりましたが、このトピックは(OpenDaylight リリース熱が冷めないうちに)アーキテクチャ的特徴とベースコードとして選定された背景・裏話等について触れ、前述の懸念がそうでないことを説明したい思っています。