日本時刻で2月5日水曜日の早朝(6時15分)、「Hydrogen Released」と本文内に大きく書かれた OpenDaylight のアナウンスメールが届きました。当初は去年の12月の早い時期にリリース予定だったのですが、少し遅れて正式にダウンロードと利用が可能になりました。2013年2月に OpenDaylight のプロジェクト メンバーが Santa Clara Marriot ホテルに集まってキックオフミーティングが開催されてから約一年、最初の成果がリリースされました。
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/)とは?
こういった中で、World Wide で最もベストなコミュニティとして認識される Linux Foundation 上にホストされた独立運営の Open Source Project として、SDN の市場育成とともにこの分野の革新とユーザ環境への導入促進を目的に活動を開始したのが「OpenDaylight」です。業界をリードする素晴らしいメンバー(Platinum/Goldスポンサー:Brocade、Cisco、Citrix、Ericsson、IBM、Juniper、Microsoft、Redhat、NEC、VMWare)が参加し、複数のインダストリ プレイヤーによるコントリビューション(HackFest 参加、ソースコード寄贈、共同開発)によりコントローラ フレームワークを形成します。このような Open Source Community という開発モデルでアウトプットを作る意味は大きく、間違いなく次世代に向けた確固たる標準フレームワークとして進むことが予想されます。当然ながらソースが公開されるということは、誰もが、どのベンダーもが、必要な機能を追加開発し独自の付加価値、インテグレーションとして提供、サポートの販売などを行えるというメリットもあります。
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 メンバーのコミットメントの概要は次のようになっており、拘束力のある契約サインの基で活動をすることになります。決して小さい投資ではありません。
- US$500,000/年
- 最低 2年のコミットメント
- プロジェクトへのフルタイムエンジニア10名
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形式の場合の手順:
- ダウンロードしたコントローラzipファイルを任意のディレクトリにアップロード
- ファイルを解凍
$ unzip distributions-base-0.1.1-osgipackage.zip - Java Homeパスを指定
$ export JAVA_HOME=/usr - 解凍したコントローラ ディレクトリから起動ファイルを実行
$ cd opendaylight
$ sudo ./run.sh - Openflow デバイスからコントローラ IP アドレスを指定
- ブラウザから GUI にアクセス
http://controller-ip-address:8080/
初期リリースでは、Proposal Project にて個別に開発が進んでいた各機能の組み合わせのバンドルとして3つの Edition に分かれて提供され、これらのすべての必要な機能は、やはりシングル ファイルの中で Pre-Built されています。
Base Edition
- Switch Manager, Topology Manager, Arp Handler などの OpenDaylight コントロールの機能であるアプリケーションを含むベース コントローラ フレームワーク
- Southbound Protocol Plugin
- Openflow 1.0, 1.3、Netconf、Open vSwitch DB
Virtualization Edition
- Base Edition + ネットワーク仮想化機能の追加
- Virtual Tenant Network:コントローラ上でマルチテナント仮想ネットワークを提供するアプリケーション
- OpenDOVE:マルチテナント向け仮想ネットワークを実現する分散エッジオーバーレイ プラットフォーム
- Affinity Metadata:トポロジー、インフラ ニーズに独立した抽象化を提供する API サービス
- Defense4All:DDoS 攻撃軽減用コントローラアプリケーション
Service Provider Edition
- Base Edition + Southbound インターフェイスの強化
- Southbound Protocol Plugin
- BGP-LS、PCEP、SNMP4SDN、LISP
- LISP Flow Mapping:Southboundからの転送用マッピング サービス
- Defense4All
以下、OpenDaylight コントローラと OpenDaylight をベースでは業界初市場投入となる Cisco Extensible Network Controller (XNC)のGUIを比べてみます。
メイン機能メニューのタブの数とロゴ以外は、全体のレイアウトとそれぞれの Pane 内のメニューを含め、ほとんど同じ構成であることが分かります。
最後に「Cisco は OpenDaylight のコントローラベース コード開発の大部分に貢献した、そしてそれを継続している」ということを繰り返しておきたいと思います。OpenDaylight ベースの商用コントローラ ソフトウェアである Cisco XNC の外観が OpenDayLight コントローラとほぼ同じであるために、ひょっとして「Cisco はこの分野で暗躍しつつ主導権を握ったのではないか」「ロックインなテクノロジーにしようとしているのではないか」という印象を持つかもしれません。
今回は OpenDaylight に関する背景とソフトウェアの構成に触れる形になりましたが、このトピックは(OpenDaylight リリース熱が冷めないうちに)アーキテクチャ的特徴とベースコードとして選定された背景・裏話等について触れ、前述の懸念がそうでないことを説明したい思っています。