いまさら聞けない
概要
OpenStack とは
OpenStack は、IaaS を実現するクラウドコンピューティングのオープ
ンソースソフトウェア(※)です。
プライベートクラウド、パブリッククラウド、ハイブリッドクライドな
どを統合的に構築・管理することができます。
操作は、ダッシュボードや OpenStack API から行うことができます。
言語はPython。
※ Apacheライセンス 2.0
OpenStack のアーキテクチャ
OpenStack は、大規模でスケーラブルなクラウド環境が実現で
きるよう設計されています。
それを実現するため、機能ごとにプロジェクトという単位で分
割されており、それが連携して一つの IaaS サービスとして動作
するように設計されています。
各プロジェクト間は API を使用して連携しており、特定の機能
を代替のもので置き換えることも可能なように設計されていま
す。
OpenStack のアーキテクチャ
なぜ OpenStack なのか
● コスト削減
OpenStack は、オープンソースのため、ベンダー製品と違い汎用的であり、学習コストを
削減することができます。
また、開発も、カスタマイズ部分のみに注力することができるため、開発や保守のコスト
削減することもできます。
● オープンプラットフォームである
ソースコードがすべて公開されているため、コードリーディングを行えば、内部処理を把
握することができます。
なぜ OpenStack なのか
● 組み合わせが自由
最小限のコンポーネント(※1)さえあれば、その他のコンポーネントは自由に選択して使用
することができます。
また、コンポーネント間の通信は、API を通して処理しているため、すべてを1台で構成す
ること(※2)も、幾つかのコンポーネントを外出しにして、HA構成を組むなど可能となっ
ています。
※1 nova、keystone、glance の3コンポーネント
※2 All-in-one 構成(DevStack、RDOが有名)
● 運用の効率化
OpenStack を使用することにより、ベアメタルやハイパーバイザー、各種ストレージ、
ネットワーク等を統合的に管理することができるため、個別に実施ていた運用・監視を効
率的に行うことが可能となります。
なぜ OpenStack なのか
出展: http://www.qyjohn.net/?p=3801
● 進化のスピードが早い
下のグラフにあるように、年々OpenStack の開発者が増加しており、どんどんと新しい
機能が追加されてきています。
これは、プロジェクト単位で別々に管理しているという OpenStack の特性が大きいよう
です。
Nova
Swift
Glance
Horizon
Keystone
-Quantum
+Neutron
Cinder
+Heat
+Ceilometer
Havana
Grizzly
Nova
Swift
Glance
Horizon
Keystone
+Quantum
+Cinder
Folsom
Nova
Swift
Glance
+Horizon
+Keystone
Essex
Diablo
Cactus
Nova
Swift
+Glance
Bexar
+Nova
+Swift
Austin
Nova
Swift
Glance
Horizon
Keystone
Neutron
Cinder
Heat
Ceilometer
Trove
Sahara
+Ironic
Kilo
Nova
Swift
Glance
Horizon
Keystone
Neutron
Cinder
Heat
Ceilometer
Trove
+Sahara
Juno
Nova
Swift
Glance
Horizon
Keystone
Neutron
Cinder
Heat
Ceilometer
+Trove
Icehouse
Nova
Swift
Glance
Horizon
Keystone
Neutron
Cinder
Heat
Ceilometer
Trove
Sahara
Ironic
+Zaqar
+Manila
+Designate
+Barbican
+Searchlight
Liberty
Nova
Swift
Glance
Nova
Swift
Glance
Nova
Swift
Glance
Horizon
Keystone
Quantum
Cinder
2010.10
2011-02
2011-04
2011.09
2012-04
2012-09
2013-04
2013-10
2014-04
2014-10
2015-04
2015-10
OpenStack の歩み
NASA (Nova) と
Rackspace (Swift) により
発足
Quantum が Neutron に改名
2016年4月頃
"Mitaka" がリリース予定
OpenStack プロジェクト一覧
No. PJ名 機能 説明
1 Nova コンピュート
2 Swift オブジェクトストレージ
3 Glance イメージサービス
4 Horizon ダッシュボード
5 Keystone 認証サービス
6 Neutron ネットワーク
7 Cinder ブロックストレージ
8 Heat オーケストレーション
9 Ceilometer メータリング
10 Trove データベース
11 Sahara ビッグデータ
12 Ironic ベアメタル・プロビジョニング
13 Zaqar メッセージング
14 Manila ファイル共有サービス
15 Designate DNS
16 Barbican 鍵管理サービス
17 Searchlight 全文検索
各プロジェクト紹介
Nova(コンピュート)
インスタンス起動時のコンピュートノードのスケジュー
リングや仮想マシンの作成、削除などコンピュートイン
スタンスを管理します。
Swift(オブジェクトストレージ)
HTTP ベースの RestAPI を使ってデータのやり取りを
行うことができるストレージです。
データはサーバクラスター全体にレプリケーションされ
るため、一方のストレージが壊れたとしても別のノード
のデータを使って運用を継続することが可能になります。
Glance(イメージサービス)
仮想マシン起動イメージの保存、取得、提供を行います。
Compute がインスタンスの配備中に使用します。
Horizon(ダッシュボード)
インスタンスの作成、IPアドレスの割り当てなど、アク
セスするための設定が可能な OpenStack の Web ベー
スのインターフェースです。
Keystone(認証サービス)
他の OpenStack のサービスに対して認証サービスやエ
ンドポイントカタログを提供します。
Neutron(ネットワーク)
OpenStackサービスにNetwork-Connectivity-as-a-
Serviceを提供します。プラグインを通じて多くのベン
ダやネットワーク技術をサポートできます。
Cinder(ブロックストレージ)
インスタンスに永続的なブロックストレージを提供しま
す。
プラグインを通じて多くのベンダの専用ストレージや仮
想ストレージ技術をサポートします。
Heat(オーケストレーション)
OpenStack ネイティブの REST API や
CloudFormation 互換のクエリー API 経由でクラウド
アプリケーションを構成することができます。
Ceilometer(メータリング)
課金、性能調査、スケール、統計などのための情報を測
定、監視します。
Trove(データベース)
Trove は OpenStack 上で DBaaS(Database as a
Service)を提供するためのプロジェクトです。
MySQL、Postgres、MongoDB、Redis の起動要求に
より、DB がセットアップ済みのインスタンスが起動し
ます。
汎用のイメージを使う場合は trove-agent を起動イメー
ジに追加することで必要なデータベースのインストール、
セットアップを行ってくれます。
また単にデータベースが動作するようにするだけでなく、
バージョンアップ、バックアップやリストア、監視なども
行えるように開発が進められています。
Sahara(ビッグデータ)
SaharaはOpenStack上にHadoopクラスタのデプロイ
と管理を容易にするためのプロジェクトです。
Saharaにより、Keystoneがユーザ認証し、Computeサー
ビスがクラスタ仮想マシンをプロビジョニングし、
Glanceがククラスタ仮想マシンを保管します。
Glanceが保管するHadoop用イメージにはOSのほか、
Hadoopが含まれます。Hadoopが処理するデータの保
管場所としてSwiftが利用できる点も利点としてあげられ
ます。
Ironic(ベアメタル・プロビジョニング)
Ironic は、ベアメタルプロビジョニングを行うためのプ
ロジェクトです。
仮想マシン使用時にオーバーヘッドによる性能劣化の問
題があったことにより誕生しました。
もともとは Nova に含まれていましたが、Icehouse 以
降、Ironic として分離しています。
Zaqar(メッセージング)
Zaqar は、マルチテナントのクラウドシステムに対応し
たメッセージキューサービスを提供するコンポーネント
です。
AWS でいうところの Amazon SQS のようなものを
OpenStack で実現するためのコンポーネントです。
Manila(ファイル共有サービス)
Manila は、マルチテナント型のセキュアなファイル共有
サービスです。
LDAP や ActiveDirectory などの認証サービスや ACLに
対応しているほか、スナップショットなども行えます。
GlusterFS、VNX、GPFS、clustered Data ONTAP な
どの複数のバックエンドサポートに対応してます。
Designate(DNS)
● Disignate は、CUI および REST API を使用し、Nova、
Neutron、Keystone と統合可能な OpenStack のため
のマルチテナント DNS-as-a-Service
● PowerDNS、NSD4、FreeIPA、DynECT、BIND9 など
のバックエンドサポートに対応しています。
Barbican(鍵管理サービス)
Barbicanは、REST APIに対応したセキュアなストレージ
サービスです。
パスワードや暗号化キー、X.509 証明書のプロビジョニン
グおよび管理を行います。
Searchlight(全文検索)
Searchlight は、Keystone の RBAC ベースの、
OpenStack サービスにまたがる検索するためのプロジェ
クトです。
OpenStack サービスのデータを ElasticSearch に登録し、
要求された検索クエリーに対するセキュリティーレイヤー
を提供しています。
分散でスケーラブルな、リアルタイムに近い、多面的な、
マルチテナントに対応した、全文検索エンジンで 、
RESTful なウェブインタフェースを持っています。
Murano(アプリケーションカタログ)
Muranoは、クラウド対応アプリケーションを公開する
ために、OpenStackにアプリケーションカタログ機能
を提供します。
OpenStackのダッシュボードより、ボタンを押すだけで
単純なアプリケーション環境のデプロイから信頼性の高
いアプリケーション環境の構築まで行うことができます。
Magnum(コンテナサービス)
MagnumはマルチテナントのContainers-as-a-Service
を提供するコンポーネントで、DockerやKubernetesコ
ンテナーなどをNovaやIronicといった他のOpenStack
コンポーネントのように利用することができます。
Magnumは、OpenStack上でコンテナーを利用するだ
けでなく、コンテナークラスターの構築をもサポートす
るためのAPIを提供します。
このAPIを使ってKubernetes/Swarmクラスターの構築
やKubernetes/DockerAPIの操作を行うことができま
す。
補足
その他のプロジェクト(抜粋)
No. PJ名 機能 説明
1 Congress ポリシーサービス
動的なインフラストラクチャーにおいて、ポリシ
ー違反していないかを横断的にチェック・最適化
するためのサービス。
2 Cue メッセージブローカー・プロビジョニング
3 Kolla コンテナ利用によるOpenStack環境構築
コンテナを使用してOpenStackの基盤環境をセッ
トアップすることにより、導入・アップグレー
ド・切り戻しの省力化を図る。
4 Magnetodb
6 Mistral ワークフローサービス
8 Rally ベンチマーク
9 Solum DevOps
参考資料
● Wikipedia
https://en.wikipedia.org/wiki/OpenStack
https://ja.wikipedia.org/wiki/OpenStack
● ゼロから始めるOpenStack (1) OpenStackの各コンポーネント ¦ マイナビニュース
http://news.mynavi.jp/series/openstack/001/
● OpenStack Liberty リリースノート
https://wiki.openstack.org/wiki/ReleaseNotes/Liberty/ja

いまさら聞けないOpen stack