ページの本文へ

Hitachi

ソフトウェアプラットフォームソフトウェア

[連載]第7回 話題のOpenStackとは?

最近各所で話題となっているOpenStackは、オープンソースのIaaS構築ソリューションです。OpenStackとはどういったもので、何ができるのか、また、なぜそれほど注目されているのでしょうか。
2013年10月17日にOpenStackの最新版・Havanaがリリースされました。Havanaのリリースは各所で注目を集め、レッドハット株式会社に勤める筆者の周辺でもかなりの話題になりました。今回は最新版を含め、OpenStackの基本的な事柄をご紹介します。

OpenStackの歴史

表1:OpenStack各バージョンのリリース日とコードネーム

OpenStackプロジェクトは、米・NASAが開発した米・AmazonのEC2(Elastic Compute Cloud)に相当するNovaと、米・Rackspaceが開発した米・AmazonのS3(Simple Storage Service)に相当するSwiftという2つのプロジェクトを軸に2010年末に開始されました。OpenStackの各バージョンはコードネームの頭文字がアルファベット順になっており、3つ目のバージョン・Cactus以降はおおむね6か月ごとにリリースされています(表1)。執筆時点の最新版は8つ目のバージョンであるHavanaで、9つ目はIcehouseというコードネームが割り当てられていますが、その次は「Jリリース」となっています(https://wiki.openstack.org/wiki/Release_Naming)。

OpenStackの構成

最新版のHavanaでOpenStackを構成する9つのコンポーネントを紹介します(図1)。コンポーネントの種類によっては、制御するノードと実行するノードに分けることができたり、他のコンポーネントにエージェントなどの形で存在するため、物理的な配置と論理的な配置が一致しません。ここでは論理的な配置、つまり機能別にコンポーネントを分けて紹介します。

図1:OpenStack最新バージョン・Havanaのコンポーネント

  1. ダッシュボード(Horizon):
    OpenStackの管理者やIaaSの利用者(テナントのユーザ)はウェブブラウザでダッシュボードにアクセスし、仮想マシンのインスタンスやネットワーク構成などを管理します。ダッシュボードだけではOpenStackのすべての機能を管理できませんが、日常的な運用管理で必要とされる機能はおおむね網羅されています。
  2. 認証基盤(Keystone):
    OpenStackを構成する各コンポーネント間での認証や、ダッシュボードにアクセスするテナント・ユーザの認証などの基盤となります。認証基盤(Keystone)は統一された認証用のAPIのインタフェースを提供しますが、バックエンドとしては既存の仕組み、例えばUNIXのPAM(Pluggable Authentication Module)やディレクトリサービスなどを利用します。
  3. ネットワーキング(Neutron):
    以前英題はQuantumという名称でしたが、商標を避けるためにNeutronというコードネームに変更されました。ドキュメントによっては従来の表記が用いられていることがあるので適宜読み替える必要があります。ネットワーキング(Neutron)はプラグインによって拡張できる設計となっており、LinuxのブリッジやSDN(Software Defined Network)の一つであるOpenFlowプロトコルをサポートするOpen vSwitchの他、ネットワーク機器のベンダーなどが提供する様々なネットワーキングソリューションを利用できます。以前はネットワーキング機能はOpenStackのコンポーネントのひとつであるコンピュート(Nova)が提供していましたが、OpenStackの6つ目のバージョン・Folsom以降は独立したコンポーネントになりました。次のブロックストレージ(Cinder)もバージョン・Folsomでコンピュート(Nova)から独立したコンポーネントです。
  4. ブロックストレージ(Cinder):
    OSが起動するにはブロック単位での入出力を実施できるブロックストレージデバイスが必要です。バックエンドのストレージとしてデフォルトではLVM(Logical Volume Manager)を利用しますが、NFSやiSCSI、ストレージベンダーが提供するデバイスなどを利用できます。
  5. コンピュート(Nova):
    NovaはKVMなどの仮想化ハイパーバイザによって仮想化されたリソースをプールとして管理します。APIを介して受け取ったリクエストによって、仮想マシンの作成や起動といった処理を実施します。通常、コンピュート(Nova)にはLinuxのKVMが用いられます。
  6. イメージ(Glance):
    仮想マシンの起動ボリューム(イメージ)と、そのメタデータを管理します。後述するオブジェクトストレージ(Swift)やその原型となったAmazon S3、あるいはローカルファイルシステムなどを保存先として利用できます。
  7. オブジェクトストレージ(Swift):
    Amazon S3互換、あるいはオブジェクトストレージ(Swift)独自のAPIを通じてオブジェクトと呼ばれるデータをやりとりします。オブジェクトと言う名称はクラウドストレージの用語で、RESTと呼ばれるHTTPベースの手順に則ってオブジェクトを要求すると、データ、つまりファイルが転送される、と理解してください。
  8. メータリング(Ceilometer):
    英題の「シーロメーター」(雲高計)という名称のとおり、クラウド(雲)の高さを測る、つまりリソースの使用量を計測します。このデータを元に、クラウドの利用者に対して課金を実施できます。
  9. オーケストレーション(Heat):
    元々OpenStackには仮想マシンのテンプレートを作成する機能はなく、例えば外部のKVM上で作成した仮想マシンのイメージをインポートするレベルに留まっていました。Heatは仮想マシンの構築をテンプレートベースで自動化することや、負荷に合わせて仮想マシンを自動的に追加する自動スケーリングを可能にします。

次回予告 −OpenStackの商用サポート版
Red Hat Enterprise Linux OpenStack Platformの紹介−

次回・最終回はOpenStackの商用サポート版であり、Red Hat Enterprise Linuxとの統合を始め、Red Hatの他のソリューションとの連携に大きな期待が集まっているRed Hat Enterprise Linux OpenStack Platformについてご紹介します。お楽しみに。