クラウドのオープン化を目指す「OpenStack」とは?
この連載記事でも、各社のクラウドサービスを紹介してきた。クラウドサービス自体は、企業にとって、コスト的にも、システムの柔軟性をとっても、大きなメリットがある。しかし、各社のクラウドサービスを見てみると、クラウドロックインともいうべき問題点も出てきている。
今回は、このクラウドロックインを解決するために注目されている、オープンソースの「OpenStack」について説明する。
■ベンダーロックインとクラウドロックイン
メインフレームなどでは、コンピュータベンダーがハードウェアと独自ソフトウェアを組み合わせて、システムを納入するため、ハードウェアやソフトウェアのリプレース時には、システムの継続性などから、システムを開発したコンピュータベンダーに依存することになる。
このため、業界で標準化されたパッケージソフトを利用したり、オープンシステムを採用したくても、特定のコンピュータベンダーに依存したりするため、システムの乗り換えが困難になっている。このことをベンダーロックインと呼んでいる。
ベンダーロックインのクラウド版が、クラウドロックインに当たる。
例えば、特定のクラウドサービスでしか用意されていない機能を利用したり、クラウドAPIを利用したりすることは、特定のクラウドサービスに依存することになる。クラウドロックインに関しては、まだまだ顕在化していないが、先行してクラウドサービスを利用している米国などでは、徐々に問題が顕在化している。将来的には、例えばクラウドサービスを提供している中小規模のIaaSやPaaSが倒産したり、サービスを終了したりすることになれば、クラウドロックインの問題は一気に顕在化してくるだろう。
クラウドロックインという状況を生まないためには、クラウドサービスでAPIや機能を標準化していく必要がある。ただし、APIや機能の差は、そのままクラウドサービス間の差別化部分となるため、多くのクラウド事業者では、すべてを標準化していくことにはならないだろう。しかし、必要最低限の部分を標準化していくことは必要になってきている。
OpenStackは、こういったクラウドの標準化だけでなく、簡単にIaaSなどのクラウド環境を構築できるオープンソースとして開発が進められている。
IaaS構築用ソフトとしては、OpenStack以外にも、Amazon EC2互換APIを持ったEucalyptus、欧州を中心に開発が進められているOpenNebula、日本の株式会社あくしゅが開発しているWakame-vdcなどに、注目が集まっている。
■RackspaceとNASAの技術により構築されたOpenSatck
OpenStackは、NASA(米国航空宇宙局)と米国の大手IaaSベンダーのRackspaceが提供する技術をベースにしている。当初NASAは、自分たちで開発したIaaS構築用ソフトのNebula Cloud(欧州で開発されているOpenNebulaとは別物)を使用しており、それを2010年5月にオープンソース化して、「Nova」という名称で公開した。
一方Rackspaceは、自社のストレージサービスのソフトウェアをオープンソース化して「Swift」としてリリースした。そのときに、「Nova」と「Swift」を統合し、新しく「OpenStack」としてIaaS構築用ソフトとして発表された。実際のコードが発表されたのは2010年10月にリリースされた初版のAustin Releaseだった。
OpenStackは、公開直後から多くの企業から注目を浴び、現時点(2011年8月末)では、108社の企業がこのプロジェクトに参加している。大手企業としては、Citrix、Dell、HP Cloud Services、NTT、NTTデータ、NTTドコモ、AMD、Intel、Korean Telecom、Ciscoなどがある。8月中旬には、NECもOpenStackコミュニティへの参加を発表している。
日本国内でもNTTデータ、NTTデータ先端技術株式会社、仮想化インフラストラクチャ・オペレーターズグループ、一般社団法人クラウド利用促進機構、クリエーションライン社、大学共同利用機関法人 情報・システム研究機構 国立情報学研究所、ミドクラ、モーフ・ラボなどが中心となって、2010年10月に日本OpenStackユーザー会が設立されている。
OpenStackのWebサイト。ここから、最新版のOpenStackのソフトウェアやドキュメントがダウンロードできる | 日本OpenStackユーザー会のWebサイト。NTTデータなどが、運営に積極的にかかわっている |
■CPUやメモリなどのリソースを扱うOpenStack Compute
OpenStackは、大きく分けてCPUやメモリなどのリソースを扱うOpenStack Compute(Nova)、クラウドストレージシステムのOpenStack Object Storage(Swift)の2つの機能に分かれている。これは、OpenStack ComputeはNASAのNebula Cloudがベースになっており、OpenStack Object StorageはRackspaceのSwiftがベースになっているからだ。
OpenStack Computeは、各社のハイパーバイザーなどよりも上位レイヤで標準化されたAPIや管理ツールなどを提供している。このため、ハイパーバイザーに関しては、Xen/XenServer、KVM、Hyper-V(対応予定)など、どのハイパーバイザーを利用しても、OpenStackベースのクラウドが構築できるようになっている。
またサーバーに関しても、特殊なハードウェアは必要ない。OpenStack Computeを動かす上では、RAID自体も必須機能ではない。
OpenStack Computeは、利用者とのインターフェイスになるAPI Node、クラウド全体のリソースを管理するScheduler Node、NATやVLANなどのネットワーク関連の管理を行うNetwork Node、仮想マシンのON/OFFや起動イメージのダウンロードなどを管理するCompute Node、ブロックストレージを管理するVolume Nodeなどがある。
OpenStack Computeは、仮想化されたサーバー上で、クラウドサービスを提供するための管理を行っているといえる。OpenStack ComputeのAPIとしては、Amazon EC2互換API、Rackspace社のCloudServices 互換APIが提供されている。
また、2011年4月に公開された最新バージョンのCactusでは、Webベースの専用管理コンソールが用意されている。ちなみに、OpenStackでは、アルファベットのabc順のテキサス州の地名がバージョン名となっている。最新リリースのCactusは、頭文字がCのためバージョン3。2011年10月ごろ登場予定のDiabloは、頭文字がDのためバージョン4、といった具合だ。
Cactusまでは、3カ月おきにリリースがされていたが、今後は6カ月おきになり、より商用での安定性を目指した開発サイクルになってきている。また、Design Summitと呼ばれるイベントを開催して、ここでコミュニティからのリクエストとソフトウェアのクオリティを判断し、次バージョンに入れる機能を決めている。
■クラウドストレージシステムのOpenStack Object Storage
OpenStack Object Storage(Swift)は、Amazon Web ServicesでいうとAmazon S3にあたる、オブジェクトストレージサービスだ。クラウドストレージということで、ブロック単位のストレージではなく、分散型のオブジェクトストレージだ。このため、ファイルは、GETコマンドでファイル単位で取り出したり、PUTコマンドでファイル単位で書き出したりすることができる。
OpenStack Object Storageは、ユーザー認証やProxyServerのURLを通知したり、Tokenを発行したりするAuth Server、Auth Serverやユーザーからのリクエストを一括管理してバックエンドのサービスに仲介するProxy Server、ファイルを保存するObject Server、ディレクトリィを保存するContainer Server、アカウントを保存するAccount Serverで構成されている。
APIとしては、RackspaceのCloudFilesのRESTプロトコルが利用されている。また、JavaやPython、RubeなどのSDKも用意されている。
OpenStackの大きなモジュールは、OpenStack ComputeとOpenStack Object Storageだが、この2つのモジュール間に入って仲介を行うGlanceというモジュールも用意されている。
なお、Glanceでは、VMイメージの管理機能を提供している。
■Citrixが進めるプロジェクトOlympus
Citrix Networking and Cloud Group 製品ディレクター、モーガン・ゲルハルト氏 |
Citrixは、もともとOpenStackコミュニティのメンバーとして参画していたが、今年の5月に開催されたCitrixのプライベートイベント「Synergy」で、Project Olympusという名称の、OpenStackベースの商用システム提供を発表していた。
これに関連して、7月にはOpenStackとは異なるオープンソースのクラウド運用ソフトウェアを開発していたCloud.comを買収。Cloud.comのCloudStackとOpenStackをすり合わせて、Project Olympusとしてリリースする。
CitrixのCitrix Networking and Cloud Group 製品ディレクター、モーガン・ゲルハルト氏は「オープンソースとして多くの参加者がかかわっているOpenStackは、非常に注目しています。ただ、本格的な商用システムとしてCitrixが提供するには、現在のOpenStackでは、まだまだ満足いくレベルになっていません。これは、クラウドの管理ポータルなど、さまざまな管理インターフェイスやツールなどが不足しています。こういった部分においては、CloudStackが一歩先に行っています」。
「このため、CloudStackのいい部分とOpenStackのオープン性という部分を併せ持った製品をProject Olympusとしてリリースしたいと考えています。実際、Cloud.comは、買収前から、OpenStackとのすり合わせを行っているため、遠からずリリースできると思います」と語っている。
このように、Citrixでは、荒削りなOpenStackを、CloudStackなどCloud.comのテクノロジーを使って、商用ベースに引き上げようとしている。
Project Olympusは、5月のSynergyで発表されたときには、2011年後半のリリース予定となっていた。このため、10月末にスペインのバルセロナで開催される「Synergy」イベントで、何らかの発表が行われると思われる。
【10:00追記】
原稿を書き上げた後に、CitrixからCloudStackに関して新しいニュースが入った。今までCloudStackは、オープンソースの無償版と商用の有償版が別々に提供されていた。しかし、VMwareのイベント「VMworld」に合わせるように、CloudStackの完全オープンソース化、無償化を発表した。つまり、オープンソース版、有償版の2つのコードを統合して、オープンソース化した。Citrixは、引き続きCloudStackの有償サポートを提供している。
今回提供されるCloudStackは、新バージョンのCloudStack 2.2.11となっている。ちなみにハイパーバイザーとしては、VMwareのESX/ESXi、KVM、Xen/XenServer、Oracle VMをすでにサポートしている。Hyper-Vに関しては、今年の第4四半期にリリースするバージョンからサポートすると表明している。
Citrixでは、OpenStackの検証済みバージョンをXenServerとともに、今年の第4四半期にリリースする。これが、Project Olympusとなる。また、OpenStackのAPIをCloudStackのAPIとして取り込んでいき、将来的にはCloudStackとOpenStackの両方を管理できるようにしていく予定だ。さらに、将来的には、CloudStackとOpenStack間での双方向マイグレーション機能も提供される。