Kilo、Liberty、そして“Mitaka”。OpenStackはどうなる? コアデベロッパーによる開発プロジェクトの動向まとめ:「OpenStack Summitの歩き方」リポート(3)(1/2 ページ)
OpenStackプロジェクトの開発メンバーによる、プロジェクト全体のアップデート解説。今秋、方針が固まるMリリース「Mitaka(三鷹)」の予想も。
OpenStack Foundation主催のグローバルイベント「OpenStack Summit」が2015年10月27〜30日にいよいよ東京で開催される。それに先駆けて7月13日、同サミットの概要や最新動向を解説するプレイベント「5周年特別企画: OpenStack Summitの歩き方」が開催された。
本稿では、NECの元木顕弘氏による技術トラックセッション「OpenStackの最新動向〜Kilo, LibertyとMxxにむけて〜」*をリポートする。セッションでは2015年5月にリリースされた「Kilo」の新機能と、10月リリース予定の「Liberty」で注目される動向を解説。さらに2016年春にリリース予定の「Mitaka」の方向性についての予測も披露した。
* Mxx イベント当日の段階でMリリースの名称が決定していなかったため、セッションタイトルは「Mxx」と仮の文字が記されていた。名称は2015年7月14日(米国時間)に「Mitaka」に決定した。
Kiloからは個別プロジェクトの発展を推進する「Big Tent」型の運営スタイルに
セッション冒頭、元木氏は本稿執筆時点でのOpenStackの最新リリースであるKiloの大きな変更点を整理した。
元木氏はまず、Kilo以降、プロジェクト推進の仕組みがIncubation→Integrated→Coreとプロセスを重ねて正式プロジェクト化するやり方(下図)から「Big Tent」という考え方に変わったことを紹介。リリースを重ねるにつれてサブプロジェクトが増え、プロジェクト全体の管理が難しくなったことから、OpenStackのミッションに合っていればオフィシャルなプロジェクトとして柔軟に認めていく方向に変わったという。
従来の開発プロジェクトのフロー サブプロジェクト数が増えたことで、Kilo以降はこのプロセスを適用しない方針になった(出典:OpenStack Wiki「Obsolete:Governance/Old Incubation Ladder」)
Big Tentの思想の下でプロジェクトとして認められる要件は、およそ次のような点だ。
- 「OpenStackのミッション」に合っていること
- 他のプロジェクトとの相互運用性があること
- プロジェクト参加者が継続的かつ複数の組織であること
- 四つの“Open”(Open Source、Open Community、Open Design、Open Development)を守っていること
ここで言う「OpenStackプロジェクトのミッション」は、OpenStackの公式Wikiサイトに次のように記されているものだ。
To produce the ubiquitous Open Source Cloud Computing platform that will meet the needs of public and private clouds regardless of size, by being simple to implement and massively scalable.
(シンプルに実装でき、大規模にスケールすることで、サイズに関係なくパブリック/プライベートクラウドのニーズを満たす、ユビキタスなオープンソースのクラウドコンピューティング基盤を作る)
Big Tentへの方針転換は、OpenStackプロジェクト全体の盛り上がりが関係している。というのも、膨大な数のプロジェクトが立ち上がってきたことから、旧来の運用――上図にあるように、実装の相互検証を厳密過ぎるルールで運用したり、リリースサイクルを無理にそろえたりする運用が、プロジェクトの迅速な推進を阻むようになってきたからだ。
元木氏はまた、最近では商用ディストリビューションが増えていることから、コミュニティとして、OpenStackを名乗るための要件を「DefCore Committee」で定め、対象となるプロジェクトと満たすべきテストを明確化していることも説明した。
こうした方針の転換は、OpenStackプロジェクトへの注目度が高まり、参加メンバーが増えたこと、OpenStackが提供するエコシステムに参加する企業が増えたことによる。このことは、同時に開発プロジェクト運営そのものが活性化し、成熟しつつある状況の表れだともいえるだろう。
Kiloリリースに含まれる主要な変更点
プロジェクトの直近の方針の説明の後、元木氏はKiloリリースにおける主要コンポーネントの新機能をダイジェストで紹介した。
主要コンポーネントとは、コンピュートサービス「Nova」、ネットワークサービス「Neutron」、ブロックストレージサービス「Cinder」、認証サービス「Keystone」、ダッシュボード「Horizon」、オブジェクトストレージサービス「Swift」、そして2014年10月リリースの「Juno」で正式にOpenStackに組み込まれたデータ処理サービスの「Sahara」だ。
NovaはAPIを刷新
コンピュートサービスを担うコンポーネントであるNovaには、API v2.1が正式に含まれている。API v2.1は過去のNova APIを、よりスマートな実装に置き換える目的で作られたものだという。ただし、API v2.1では、旧APIを利用しているユーザーにも不具合がないよう、一定の後方互換性を持たせている。また、バリデーション機能が盛り込まれており、より安全に利用できるようになっているという。マイクロバージョンによる新機能追加も可能になっている。
この他には、NUMA(Non-Uniform Memory Access)への対応が完了したことから、メモリを意識したスケジューリングや仮想CPUの割り当て、メモリコアへの対応付け、ラージページ対応ができるようになっているという。
Neutronはソースコードの切り分けを明確化
ネットワークサービスを担うコンポーネントであるNeutronでは、開発プロジェクトの中でのソースコードの切り分け、リポジトリの分離など、プロジェクトの効率的推進のための変更が行われている。
一つは「Vendor plug-in decomposition」という方針への変更だ。従来、Neutronには対応機器ベンダーがそれぞれのプラグインを提供してきたが、Neutron側の変更に合わせて個別の修正が必要になるため、コードレビューの工数を含めて無駄が多い実装だった。そこで、ベンダープラグイン/ドライバーはそれぞれ別リポジトリに分離し、重複するソースコード改修の工数を削減、レビュー効率も高めている。
また「Advanced service split」の方針も明確化している。ロードバランサー(LBaaS)、VPN(VPNaaS)、ファイアウオール(FWaaS)など、Neutronを構成する要素の中でも、特定の領域に特化した知識が必要なものを別のリポジトリに分離している。
この他、新機能としては、サブネット割り当て(Subnet allocation)、分散仮想ルーター「DVR(Distributed Virtual Router)」でのVLAN対応、ML2(Modular Layer 2)の階層的ポートバインディング、OpenvSwich ML2ドライバーにおけるポートセキュリティ機能への対応、IPv6のパフォーマンス改善、新しいLBaaS v2 APIなどが盛り込まれている。
参考連載:「いま覚えておくべきOpenStack Neutronの基本」(@IT)
Cinderはローリングアップグレード対応を強化
ブロックストレージサービスを担うコンポーネントであるCinderは、要望の多かったローリングアップグレードの実現に向けた実装を盛り込んでいる。また、差分バックアップ、暗号化バックアップ機能を追加しており、Consistency Groupの実装にも改良が加えられているという。
Keystoneは連携と管理機能を強化
認証サービスを担うコンポーネントであるKeystoneでは、Identity Federation(認証連携)におけるkeystone-keystone連携、OpenID対応、HorizonにおけるSSO(Single Sign-On)経由の認証連携が可能になった。
また、「Fernetトークン」機能も追加している。Fernetトークン機能とは、トークン内に基本的なアカウントID情報や有効期限を共通暗号で暗号化して格納するもの。これにより、Keystoneではデータベースなしでトークンを検証できるようになっている。
参考記事:「日本国内のOpenStack事例が続々/統合認証「Keystone」とは」(@IT)
HorizonはUI開発がしやすい実装に
GUIによる統合管理を担うコンポーネントであるHorizonでは、起動画面を刷新している。また、UI開発者が扱いやすいようにする目的で、JavaScriptフレームワーク「Angular JS」で扱えるようになっている。
この他、管理機能としては、Glanceのメタデータ定義の確認・追加・変更をHorizon上から操作できるようになっている。また、ストレージコンポーネントとの接続ではCinder v2 APIがデフォルトになった。
Swiftはついにイレジャーコーディング(Erasure Coding)を実装
オブジェクトストレージサービスを担うコンポーネントであるSwiftでは、遠距離を接続するクラスター間でのレプリケーション機能を改善している。また、データ保護の視点から実装が望まれていたイレジャーコーディング(Erasure Coding)のベータ版を実装している。この他、合成トークン(Composite Token)にも対応している。
イレジャーコーディングの概念図(画像は米インテルによるIDF2013の発表資料「OpenStack Swift Erasure Code: A Smart Cloud Storage Solution」から@IT記事「OpenStackコンポーネント解説『Swift』とは」で引用したものの再掲載。本稿執筆時点(2015年8月10日)で元資料はオンラインで公開されていないが、類似資料を米インテルのStanislas Odinot氏が公開している)
参考記事:「2013年のOpenStackまとめ/OpenStackコンポーネント解説『Swift』とは」(@IT)
Saharaは注目のデータ分析環境との連携プラグインを刷新、操作も容易に
データ分析サービスを担うコンポーネントであるSaharaでは、「Apache Spark」「Apache Storm」「Apache Hadoop 2.6.0」「Cloudera Distributed Hadoop(CDH)」の新しいプラグインが盛り込まれた。クラスターでのジョブの進捗(しんちょく)を把握できるイベントログ機能も実装されている。また、Horizonから、ガイド付きでクラスター/ジョブ作成ができるようになり、操作性も向上している。この他、プラグイン単位でのノードグループとクラスターのテンプレートも提供されるという。
Copyright © ITmedia, Inc. All Rights Reserved.