Red Hat Enterprise Linux OpenStack Platform 6 コンポーネントの概要

Red Hat Enterprise Linux OpenStack
Platform 6
コンポーネントの概要
OpenStack のコンポーネント、機能、インターフェースの理解
OpenStack Documentation TeamRed Hat
Red Hat Enterprise Linux OpenStack Platform 6 コンポーネントの概要
OpenStack のコンポーネント、機能、インターフェースの理解
OpenStack Do cumentatio n Team
Red Hat Custo mer Co ntent Services
rho s-do [email protected] m
法律上の通知
Co pyright © 20 15 Red Hat Inc.
The text o f and illustratio ns in this do cument are licensed by Red Hat under a Creative
Co mmo ns Attributio n–Share Alike 3.0 Unpo rted license ("CC-BY-SA"). An explanatio n o f CCBY-SA is available at
http://creativeco mmo ns.o rg/licenses/by-sa/3.0 /
. In acco rdance with CC-BY-SA, if yo u distribute this do cument o r an adaptatio n o f it, yo u must
pro vide the URL fo r the o riginal versio n.
Red Hat, as the licenso r o f this do cument, waives the right to enfo rce, and agrees no t to assert,
Sectio n 4 d o f CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shado wman lo go , JBo ss, MetaMatrix, Fedo ra, the Infinity
Lo go , and RHCE are trademarks o f Red Hat, Inc., registered in the United States and o ther
co untries.
Linux ® is the registered trademark o f Linus To rvalds in the United States and o ther co untries.
Java ® is a registered trademark o f Oracle and/o r its affiliates.
XFS ® is a trademark o f Silico n Graphics Internatio nal Co rp. o r its subsidiaries in the United
States and/o r o ther co untries.
MySQL ® is a registered trademark o f MySQL AB in the United States, the Euro pean Unio n and
o ther co untries.
No de.js ® is an o fficial trademark o f Jo yent. Red Hat So ftware Co llectio ns is no t fo rmally
related to o r endo rsed by the o fficial Jo yent No de.js o pen so urce o r co mmercial pro ject.
The OpenStack ® Wo rd Mark and OpenStack Lo go are either registered trademarks/service
marks o r trademarks/service marks o f the OpenStack Fo undatio n, in the United States and o ther
co untries and are used with the OpenStack Fo undatio n's permissio n. We are no t affiliated with,
endo rsed o r spo nso red by the OpenStack Fo undatio n, o r the OpenStack co mmunity.
All o ther trademarks are the pro perty o f their respective o wners.
概要
この概要では、OpenStack 製品とコンポーネント (コアおよび補助) について簡単に紹介します。
目次
目次
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. . . . . . . . . .
前書き
. . 1. 章
第
. . はじめに
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4. . . . . . . . . .
. . 2. 章
第
. . コアコンポーネント
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5. . . . . . . . . .
1. O p enStac k Das hb o ard (ho riz o n)
6
2. O p enStac k Id entity (keys to ne)
8
3. O p enStac k Netwo rking (neutro n)
9
4. O p enStac k Blo c k Sto rag e (c ind er)
11
5. O p enStac k Co mp ute (no va)
13
6 . O p enStac k Imag e (g lanc e)
16
7. O p enStac k O b jec t Sto rag e (s wift)
18
8 . O p enStac k Telemetry (c eilo meter)
19
9 . O p enStac k O rc hes tratio n (heat)
21
. . 3章
第
. . . モジュールコンポーネント
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 3. . . . . . . . . .
1. O p enStac k Bare Metal Pro vis io ning (iro nic )
23
2. O p enStac k Data Pro c es s ing (s ahara)
24
3. O p enStac k Datab as e-as -a-Servic e (tro ve)
25
. . 4. 章
第
. . デプロイメントツール
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2. 7. . . . . . . . . .
1. Red Hat Enterp ris e Linux O p enStac k Platfo rm インストーラー
27
2. Pac ks tac k
28
3. O p enStac k Dep lo yment (trip leO )
28
. . . .A. 改訂履歴
付録
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
...........
1
Red Hat Ent erprise Linux O penSt ack Plat form 6 コンポーネントの概要
2
前書き
前書き
3
Red Hat Ent erprise Linux O penSt ack Plat form 6 コンポーネントの概要
第1章 はじめに
Red Hat Enterprise Linux OpenStack Platform は、Red Hat Enterprise Linux をベースとして、
プライベートまたはパブリックの Infrastructure-as-a-Service (IaaS) クラウドを構築するための
基盤を提供します。これにより、スケーラビリティーが極めて高く、耐障害性に優れたプラット
フォームをクラウド対応のワークロード開発にご利用いただくことができます。
現在、Red Hat のシステムは、OpenStack Juno をベースとして、利用可能な物理ハードウェア
をプライベート、パブリック、またはハイブリッドのクラウドプラットフォームに変換できるよ
うにパッケージされています。これには以下のコンポーネントが含まれます。
完全に分散されたオブジェクトストレージ
永続的なブロックレベルのストレージ
仮想マシンのプロビジョニングエンジンおよびイメージストレージ
認証および認可メカニズム
統合されたネットワーク
ユーザーおよび管理用の Web ブラウザーベースの GUI
Red Hat Enterprise Linux OpenStack Platform IaaS クラウドは、コンピューティング、スト
レージ、ネットワークのリソースを制御する連結されたサービスのコレクションにより実装されま
す。クラウドは、Web ベースのダッシュボードまたはコマンドラインクライアントで管理されま
す。これにより、管理者は OpenStack リソースの制御、プロビジョニング、自動化を行うことが
できます。また、OpenStack は、クラウドのエンドユーザーも利用することができる豊富な API
で円滑に運用されます。
4
第2 章 コアコンポーネント
第2章 コアコンポーネント
以下の図は、OpenStack のコアコンポーネント全体の俯瞰図を示しています。
図2.1 O p en St ack コンポーネント
各 OpenStack サービスにはコード名があり、設定ファイルやコマンドラインユーティリティープ
ログラムの名前に反映されます。たとえば、Identity Service には、keysto ne. co nf という設定
ファイルがあります。
表2.1 コアサービス
サービス
コード
D ashboard
Horizon
説明
OpenStack の各種サービスを管理するた
めの Web ベースのダッシュボード
場所
「OpenStack
D ashboard
(horizon)」
Identity
Keystone 他のサービスに認証および認可サービス
を提供し、ユーザー/テナント/ロールを管
理する、集中型のアイデンティティー
サービス
「OpenStack
Identity
(keystone)」
OpenStack
Networking
Neutron
他の OpenStack サービスのインター
フェース間の接続性を提供するネット
ワークサービス
「OpenStack
Networking
(neutron)」
Block
Storage
Cinder
仮想マシン用の永続的な Block Storage
ボリュームを管理するサービス
「OpenStack
Block Storage
(cinder)」
Compute
Nova
ハイパーバイザーノードで実行されてい
る仮想マシンの管理とプロビジョニング
を行うサービス
「OpenStack
Compute (nova)」
5
Red Hat Ent erprise Linux O penSt ack Plat form 6 コンポーネントの概要
サービス
コード
説明
場所
Image
Glance
仮想マシンイメージや Volume のスナッ
プショットなどのリソースを格納するレ
ジストリーサービス
「OpenStack
Image (glance)」
Object
Storage
Swift
ユーザーがファイル (任意のデータ) を保
管したり、取得したりできるオブジェク
トストレージを提供するサービス
「OpenStack
Object Storage
(swift)」
Ceilomet
er
クラウドリソースの測定を提供するサー
ビス
「OpenStack
Telemetry
(ceilometer)」
Heat
リソーススタックの自動作成をサポート
する、テンプレートベースのオーケスト
レーションエンジンを提供するサービス
「OpenStack
Orchestration
(heat)」
Telemetry
Orchestrati
on
各 OpenStack サービスは、Linux サービスのコレクション、MariaD B データベース、その他の
コンポーネントで構成され、これらがまとまって、機能グループを提供します。たとえ
ば、g l ance-api および g l ance-reg i stry Linux サービスが MariaD B データベースととも
に Image Service を実装します。
1. OpenSt ack Dashboard (horiz on)
D ashboard Service は、インスタンスの作成/起動やネットワークの管理、アクセス制御の設定な
どの操作を行うことができる、エンドユーザーおよび管理者向けのグラフィカルユーザーインター
フェースを提供します。モジュール式の設計により、課金、監視、追加の管理用のツールなどの他
の製品との連結が可能です。このサービスは、プロジェクト、管理、設定の 3 つの基本ダッシュ
ボードを提供します。
図2.2 プロジェクトダッシュボード
6
第2 章 コアコンポーネント
ログインしたユーザーのアイデンティティーにより、ダッシュボードおよびそのダッシュボード
で表示されるパネルが異なります。
表2.2 D ash b o ard Service のコンポーネント
コンポーネント
説明
openstack-dashboard
任意の Web ブラウザーを使用してダッシュボードへの
アクセスを提供する、D jango (Python) Web アプリ
ケーション
Apache HTTP サーバー (httpd
サービス)
アプリケーションのホスティング
7
Red Hat Ent erprise Linux O penSt ack Plat form 6 コンポーネントの概要
以下の図は、D ashboard アーキテクチャーの俯瞰図です。D ashboard Service は、認証と認可
には、OpenStack Identity Service、データベースサービスにはセッションバックエンド、アプリ
ケーションのホスティングには httpd サービス、API 呼び出しにはその他すべての OpenStack
サービスと対話します。
図2.3 D ash b o ard のインターフェース
2. OpenSt ack Ident it y (keyst one)
Identity Service は、OpenStack ユーザーの認証および認可を行います。このサービスは
OpenStack の全コンポーネントによって使用されます。Identity Service は、ユーザー名とパス
ワードの認証情報、トークンベースのシステム、AWS 方式のログイン (Amazon Web Services)
など、複数の認証形式をサポートしています。
Identity Service は、特定の OpenStack クラウドで実行するサービスおよびエンドポイントの集
中カタログを提供します。これは、他の OpenStack システムのサービスディレクトリーとして機
能します。OpenStack のサービスは、以下のエンドポイントを使用します。
ad mi nUR L: このサービスの管理エンドポイントの URL。ここには Identity Service のみが
publicURL とは異なる値を使用する可能性があります。その他のサービスは同じ値を使用しま
す。
i nternal UR L: このサービスの内部用エンドポイントの URL (通常はpubl i cUR L と同じ)。
publ i cUR L: このサービスのパブリックエンドポイントの URL。
reg i o n: このサービスが配置されるリージョン。リージョンが指定されていない場合には、デ
フォルトで「RegionOne」の場所が使用されます。
Identity Service は以下の概念を採用しています。
8
第2 章 コアコンポーネント
ユーザー: 情報 (名前やパスワードなど) が関連付けられています。カスタムのユーザーに加
え、カタログ化された各サービスごとにユーザーを定義する必要があります (例: Image
Service 用の「glance」ユーザーなど)。
テナント: 通常は、ユーザーのグループ、プロジェクト、または組織です。
ロール: ユーザーのパーミッションを決定するロールです。
表2.3 Id en t it y Service のコンポーネント
コンポーネント
説明
openstack-keystone
管理およびパブリック API を提供します。
データベース
内部サービスごと
3. OpenSt ack Net working (neut ron)
OpenStack Networking Service は、OpenStack クラウド内の仮想ネットワークインフラストラ
クチャーの作成と管理を処理します。その要素にはネットワーク、サブネット、ルーターなどが含
まれ、ファイアウォールや仮想プライベートネットワーク (VPN) などの高度なサービスも使用す
ることができます。
OpenStack Networking は、クラウド管理者が、個々のサービスをどの物理システムで実行するか
を決定するにあたって柔軟性を提供します。評価目的の場合には、全サービスデーモンを単一の物
理ホストで実行することが可能です。また、各サービスに独自のホストを使用したり、複数のホス
トにわたって複製して冗長化を行ったりすることもできます。
OpenStack Networking はソフトウェアで定義されるので、変化するネットワークのニーズ (例:
新規 IP アドレスの作成と割り当て) に容易かつ迅速に応答することができます。これには、以下の
ような利点があります。
ユーザーは、ネットワークの作成やトラフィックの制御を行ったり、サーバーおよびデバイス
を単一または複数のネットワークに接続したりすることができます。
OpenStack は、管理者がボリュームとテナンシーに合わせてネットワークモデルを変更でき
るように、柔軟性の高いネットワークモデルを提供しています。
IP アドレスは、専用または Floating IP を使用することができます。Floating IP により、トラ
フィックの動的な再ルーティングが可能となります。
OpenStack Networking では、4094 の仮想 LAN (4094 ネットワーク) を使用することができま
す。つまり、クラウドでは最大 16M のトンネルを利用でき、またコンピュートノードごとに最大
4094 のトンネルを利用できることになります。
表2.4 O p en St ack N et wo rkin g Service のコンポーネント
9
Red Hat Ent erprise Linux O penSt ack Plat form 6 コンポーネントの概要
コンポーネント
説明
openstack-neutronserver
ユーザー要求の管理 (および API の公開) を行う Python デーモン。
ネットワークメカニズムの特定のセットを使用して OpenStack
Networking API 操作を実装するプラグインで設定します。プラグイン
には、幅広い選択肢があります。たとえば、o penvswi tch および
l i nuxbri d g e のプラグインは、ネイティブの Linux ネットワークメ
カニズムを活用する一方、その他のプラグインは外部デバイスまたは
SD N コントローラーと連動します。
openstack-neutronml2
プラグインはネットワークドライバーを管理して、サービスのルーティ
ングや切り替えを行います (例: Open vSwitch または Ryu ネットワー
ク)。
ネットワークエージェ 各ノード上で稼働し、そのノードの仮想マシンとネットワークサービス
ント
のローカルネットワーク設定を行うサービス (例: Open vSwitch)
openstack-neutrondhcp-agent
テナントネットワークに対して D HCP サービスを提供するエージェン
ト
RabbitMQ サーバー
(rabbi tmq -server)
AMQP メッセージキューを提供します。RabbitMQ (他のサービスでも
使用) は、キュー、分散、セキュリティー、管理、クラスタリング、
フェデレーションなど OpenStack のトランザクション管理を処理しま
す。メッセージングは、OpenStack デプロイメントがスケーリングさ
れて、サービスが複数のマシンで実行されている場合に特に重要となり
ます。
データベース
永続ストレージを提供します。
OpenStack Networking Service およびエージェントの配置は、要件によって異なります。以下の
図は、専用の OpenStack Networking ノードとテナントネットワークを使用する一般的なデプロ
イメントモデルです。
図2.4 ネットワークの例
10
第2 章 コアコンポーネント
2 つのコンピュートノードで Open vSwitch (ovs-agent) を実行し、1 つの OpenStack
Networking ノードで、FWaaS や LBaaS などのサービスを含むネットワーク機能 (L3 ルー
ティング、D HCP、NAT) を実行します。
コンピュートノードに、テナントトラフィック用と管理用の接続性のために 2 枚のネットワー
クカードを装備します。
OpenStack Networking ノードに、プロバイダートラフィック専用に 3 枚目のネットワーク
カードを装備します。
4 . OpenSt ack Block St orage (cinder)
Block Storage Service (またはボリュームサービス) は、仮想ハードドライブの永続的なブロック
ストレージ管理機能を提供します。Block Storage により、ユーザーはブロックデバイスの作成/
削除やサーバーへの Block D evice のアタッチを管理することができます。デバイスの実際の接続/
切断は、Compute Service との統合により処理されます。分散ブロックストレージホストの処理
には、リージョンとゾーンの両方を使用することができます。
ブロックストレージは、データベースストレージや拡張可能なファイルシステムなどに使用する場
合、またサーバーに Raw ブロックレベルのストレージへのアクセスを提供する場合など、パ
フォーマンスが要求されるシナリオに適しています。また、スナップショットを取得してデータを
復元したり、新しい Block Storage ボリュームを作成したりすることも可能です (スナップショッ
トはドライバーサポートに依存します)。
基本的な操作は以下のとおりです。
ボリュームの作成、一覧表示、削除
スナップショットの作成、一覧表示、削除
11
Red Hat Ent erprise Linux O penSt ack Plat form 6 コンポーネントの概要
実行中の仮想マシンへのボリュームの接続/切断
表2.5 B lo ck St o rag e Service のコンポーネント
コンポーネント
説明
openstack-cinder-volume
オンデマンドで仮想マシンのストレージを分割します。ボリュー
ムサービスは、Block Storage デバイスとの対話を管理します。
スケジューラーから要求が送られると、ボリュームサービスは必
要に応じてボリュームを作成/変更/削除します。ストレージプロバ
イダーとの対話用に複数のドライバーが含まれています。
openstack-cinder-api
要求に応答して処理し、メッセージキューに配置します。API
サービスは Block Storage 要求のための HTTP エンドポイントを
提供します。受信要求を受け取ると、API はアイデンティティー
要件が満たされているかどうかを確認し、その要求を、必要とされ
る Block Storage のアクションを示すメッセージに変換します。
このメッセージは、次にメッセージブローカーに送信され、他の
Block Storage サービスによって処理されます。
openstack-cinder-backup Block Storage ボリュームを外部ストレージリポジトリーにバッ
クアップする機能を提供します。
openstack-cinderscheduler
タスクをキューに割り当て、プロビジョニングするボリューム
サーバーを決定します。スケジューラーサービスは、メッセージ
キューから要求を読み取り、その要求に対してアクションを実行
する必要のある Block Storage ホストを判断します。スケジュー
ラーは次に選択したホスト上のボリュームサービスと通信し、要
求を処理します。
データベース
状態の情報を提供します。
RabbitMQ サーバー
(rabbi tmq -server)
AMQP メッセージキューを提供します。RabbitMQ (他のサービス
でも使用) は、キュー、分散、セキュリティー、管理、クラスタリ
ング、フェデレーションなど OpenStack のトランザクション管
理を処理します。メッセージングは、OpenStack デプロイメント
がスケーリングされて、サービスが複数のマシンで実行されている
場合に特に重要となります。
実稼働環境で主要な Block Storage Service (ボリューム、スケジューラー、API) を併置すること
は可能ですが、ボリュームサービスのインスタンスを多数デプロイして、API およびスケジュー
ラーサービスのインスタンス (単一または複数) でそれらを管理する構成の方が、より一般的です。
図2.5 B lo ck St o rag e アーキテクチャー
12
第2 章 コアコンポーネント
5. OpenSt ack Comput e (nova)
Compute Service は、オンデマンドで仮想マシンを提供する、OpenStack クラウドの中核です。
Compute は、基盤となる仮想化メカニズムと対話するドライバーを定義し、他の OpenStack コ
ンポーネントに機能を公開することにより、仮想マシンがノードセット上で実行されるようにスケ
ジュールします。
Compute は、認証の場合は Identity Service、イメージの場合は Image Service (インスタンスの
起動に使用)、ユーザーおよび管理インターフェースの場合は D ashboard Service と対話しま
す。イメージへのアクセスはプロジェクトおよびユーザーごとに、クォータはプロジェクトごとに
制限を指定します (例: インスタンス数)。
スケーラビリティーには数多くの要素が影響を及ぼしますが、Red Hat Enterprise Linux
OpenStack Platform は、ネットワーク帯域幅およびコンピュートの処理能力が十分な場合には、
環境を無制限に水平スケールできるように設計されています。つまり、理論上は、コントローラー
ノードが管理可能なコンピュートノードやインスタンスの数に上限がないことになります。コント
ローラーノードを 1 つと OpenStack Networking ノードを 1 つ使用する場合のコンピュートの処
理能力の実例として、Red Hat はテスト用に以下を作成しました。
コンピュートノード 1 台あたりの 400 以上のインスタンス
コントローラー上に CPU のヘッドルームが十分ある 64 以上コンピュートノード (追加のハー
ドウェアがあれば、この数値は増える可能性があります)
OpenStack Networking では、4094 の仮想 LAN (4094 ネットワーク) を使用することができま
す。つまり、クラウドでは最大 16M のトンネルを利用でき、またコンピュートノードごとに最大
4094 のトンネルを利用できることになります。
表2.6 クラウドの分離方法
13
Red Hat Ent erprise Linux O penSt ack Plat form 6 コンポーネントの概要
概念
説明
リージョン
Identity Service にカタログ化されている各サービスは、そのリージョンに
よって特定されます。リージョンは通常、地理的な場所およびそのエンドポ
イントを示します。複数の Compute デプロイメントを使用するクラウドで
は、リージョンによりサービスを個別に分離することが可能となります。こ
れは、Compute がインストールされた複数のシステム間でインフラストラ
クチャーを共有する強固な方法であるとともに、高度の耐障害性を実現しま
す。
セル
1 つのクラウドに属する複数のコンピュートホストを、(大規模なデプロイメ
ントや地理的に分散されたインストールを処理する目的で) セルと呼ばれる
グループに分割することができます。セルは木構造に構成されます。最上位
(「API セル」) は no va-api サービスを実行しますが、no va-co mpute
サービスは実行しません。これに対して、各子セルは、標準インストールに
実装されるその他の一般的な no va-* サービスをすべて実行します
が、no va-api サービスは例外となります。各セルには独自のメッセージ
キューやデータベースサービスがあり、API セルと子セルの間の通信を管理
する no va-cel l s も実行します。
これは、以下のような利点をもたらします。
単一の API サーバーを使用して、Compute のインストールされた複数の
システムへのアクセスを制御することができます。
ホストのスケジューリングと対比した場合に、セルレベルでの第 2 段階
のスケジューリングが利用可能となるので、仮想マシンの実行場所の制
御における柔軟性が向上します。
14
第2 章 コアコンポーネント
概念
説明
ホストアグリゲー 単一の Compute デプロイメントを論理グループに分割することができます
トとアベイラビリ (たとえば、ストレージやネットワークなどの共通リソースを共有するグ
ティーゾーン
ループ、信頼されたコンピューティングハードウェアなどの特別なプロパ
ティーを指定したグループといった複数のホストグループへの分割)。
ユーザーの種類により、表示内容が以下のように異なります。
管理者: グループは、コンピュートホストおよび関連するメタデータが割
り当てられた「ホストアグリゲート」として表示されます。アグリゲー
トのメタデータは一般的に、no va-sched ul er で使用するための情報
を提供する際に使用します (例: 特定のフレーバーやイメージをホストの
サブセットのみに制限する場合など)。
ユーザー: グループは「アベイラビリティーゾーン」として表示されま
す。ユーザーには、グループのメタデータも、そのゾーンを構成するホ
ストも表示されません。
アグリゲートまたはゾーンは、以下の目的に使用できます。
ロードバランシングおよびインスタンスの分散配置を処理します。
他のゾーンからの物理的な隔離や冗長性を何らかの形で提供します (例:
別の電源やネットワーク機器を使用するなど)。
共通の属性を持つサーバーセットを特定します。
異なるクラスのハードウェアを分離します。
表2.7 C o mp u t e Service のコンポーネント
コンポーネント
説明
openstack-nova-api
Compute Service への要求を処理し、アクセスを提供します (インスタ
ンスの起動など)。
openstack-nova-cert
証明書マネージャーを提供します。
openstack-novacompute
仮想インスタンスを作成、終了します。ハイパーバイザーと対話して新
規インスタンスを起動し、Compute データベースで状態が保持される
ようにします。
15
Red Hat Ent erprise Linux O penSt ack Plat form 6 コンポーネントの概要
コンポーネント
説明
openstack-novaconductor
コンピュートノードに対してデータベースアクセスのサポートを提供し
ます (それによって、セキュリティーリスクを軽減)。
openstack-novaconsoleauth
コンソールの認証を処理します。
openstack-novanetwork
Compute ネットワークトラフィック (プライベートとパブリックアク
セスの両方) を処理します。新規仮想インスタンスへの IP アドレスの割
り当てやセキュリティーグループルールの実装などのタスクを処理しま
す。
openstack-novanovncproxy
ブラウザー用の VNC プロキシーを提供します (仮想マシンにアクセス
するための VNC コンソールを有効にします)。
openstack-novascheduler
新規仮想マシンの要求を正しいノードにディスパッチします。
RabbitMQ サーバー
(rabbi tmq -server)
AMQP メッセージキューを提供します。このサーバー (Block Storage
でも使用) は、キュー、分散、セキュリティー、管理、クラスタリン
グ、フェデレーションなど OpenStack のトランザクション管理を処理
します。メッセージングは、OpenStack デプロイメントがスケーリン
グされて、サービスが複数のマシンで実行されている場合に特に重要と
なります。
libvirtd
ハイパーバイザー用のドライバー。仮想マシンを作成できるようにしま
す。
KVM Linux ハイパー
バイザー
仮想マシンを作成して、ノード間のライブマイグレーションを可能にし
ます。
データベース
構築時および実行時のインフラストラクチャーの状態を提供します。
6. OpenSt ack Image (glance)
Image Service は、仮想ディスクイメージのレジストリーとして機能します。ユーザーは新規イ
メージを追加したり、既存のサーバーのスナップショット (コピー) の作成後直ちに保管したりす
ることができます。スナップショットは、バックアップとしての使用や、新規サーバー用のテン
プレートとしての使用が可能です。登録されたイメージは、Object Storage Service に保管できる
他、別の場所 (例: 簡易ファイルシステムまたは外部の Web サーバーに保管することが可能です。
16
第2 章 コアコンポーネント
以下のイメージ形式がサポートされています。
raw (非構造化形式)
aki/ami/ari (Amazon Kernel、ramdisk、またはマシンイメージ)
iso (光学ディスク用のアーカイブ形式。例: CD )
qcow2 (Qemu/KVM。Copy on Write をサポート)
vhd (Hyper-V。VMware、Xen、Microsoft、VirtualBox その他の仮想マシンモニターで一般
的。)
vdi (Qemu/VirtualBox)
vmdk (VMware)
コンテナー形式は Image Service でも使用することが可能です。この形式により、イメージに保管
される、実際の仮想マシンについてのメタデータの種別が決定します。以下の形式がサポートされ
ています。
bare (メタデータは含まれない)
ovf (OVF 形式)
aki/ami/ari (Amazon Kernel、ramdisk、またはマシンイメージ)
表2.8 Imag e Service のコンポーネント
コンポーネント
説明
openstack-glance-api
要求とイメージのデリバリーを処理します (ストレージバックエン
ドと対話して取得と保管を行います)。レジストリーを使用してイ
メージの情報を取得します (レジストリーサービスには絶対に直接
アクセスされません。また決して直接アクセスすべきではありませ
ん)。
openstack-glanceregistry
各イメージに関連付けられた全メタデータを管理します。
データベース
イメージのメタデータを保管します。
17
Red Hat Ent erprise Linux O penSt ack Plat form 6 コンポーネントの概要
コンポーネント
説明
RabbitMQ サーバー
(rabbi tmq -server)
AMQP メッセージキューを提供します。RabbitMQ (他のサービス
でも使用) は、キュー、分散、セキュリティー、管理、クラスタリ
ング、フェデレーションなど OpenStack のトランザクション管
理を処理します。メッセージングは、OpenStack デプロイメント
がスケーリングされて、サービスが複数のマシンで実行されている
場合に特に重要となります。
7. OpenSt ack Object St orage (swift )
Object Storage Service は、HTTP 経由でアクセス可能な、大量データ用のストレージシステムを
提供します。ビデオ、イメージ、電子メール、ファイル、仮想マシンイメージなどの静的エンティ
ティーをすべて保管することができます。オブジェクトは、下層のファイルシステムにバイナリー
として保管されます (ファイルの拡張属性 xattr に保管されているメタデータを使用)。このサービ
スの分散型アーキテクチャーはスケールアウトをサポートしています。また、ソフトウェアベース
のデータレプリケーションにより、障害対策として冗長性を提供します。
このサービスは、非同期の結果整合性レプリケーションをサポートしているため、複数のデータセ
ンターデプロイメントに適しています。Object Storage は以下の概念を採用しています。
ストレージのレプリカ: 障害発生時にオブジェクトの状態を保つために使用します。最低でも 3
つ以上のレプリカが推奨されます。
ストレージゾーン: レプリカのホストに使用します。ゾーンを使用することで、任意のオブジェ
クトの各レプリカが個別に格納されるようにします。ゾーンは、個別のディスクドライブ、ア
レイ、サーバー、ラック内の全サーバーやデータセンター全体を指すこともあります。
ストレージリージョン: 実質的には、1 つの場所を共有するゾーンのグループです。たとえば、
通常は同じ地理的地域に設置されたサーバーやサーバーファームなどをリージョンとすること
ができます。リージョンには、Object Storage Service をインストールしたシステムごとに個
別の API エンドポイントがあり、サービスを分離することができます。
Object Storage Service は、他の OpenStack サービスおよびコンポーネントに依存します。たと
えば、Identity Service (keystone)、rsync daemon、ロードバランサーはすべて必要です。
表2.9 O b ject St o rag e Service のコンポーネント
コンポーネント
18
説明
第2 章 コアコンポーネント
コンポーネント
説明
openstack-swift-proxy
パブリック API の公開や認証を行います。また、要求を処理し
て、それらを適宜ルーティングする役割を果たします。オブジェ
クトは (スプールされるのではなく) プロキシーサーバーを経由し
てユーザーにストリーミングされます。
openstack-swift-object
オブジェクトを保管、取得、削除します。
openstack-swift-account
アカウントデータベースを使用してコンテナーをリストする役割を
果たします。
openstack-swift-container コンテナーデータベースを使用して、オブジェクトのリストを処
理します (特定のコンテナーにどのオブジェクトが入っている
か)。
リングファイル
全ストレージデバイスの詳細が含まれており、特定のデータがどこ
に保管されているかを (保存したエンティティーの名前を物理的な
場所にマッピングして) 推測するのに使用されます。プロジェク
ト、アカウント、コンテナーサーバーごとにファイルが 1 つ作成
されます。
アカウントデータベース
アカウントデータを保管します。
コンテナーデータベース
コンテナーデータを保管します。
ext4 または XFS のファイ
ルシステム
オブジェクトストレージに使用します。
ハウスキーピングプロセス
複製、監査、更新プロセス
8. OpenSt ack T elemet ry (ceilomet er)
Telemetry Service は、OpenStack ベースのクラウドを対象とする、ユーザーレベルの使用状況
データを提供します。このデータは、顧客への課金、システムのモニタリング、警告などに使用す
ることができます。データの収集は、既存の OpenStack コンポーネントによって送信される通知
(例: Compute から生成される使用イベントなど) や、インフラストラクチャー (例: libvirt) から
ポーリングすることによって行うことができます。
Telemetry には、信頼済みのメッセージングシステムを介して、認証済みエージェントと通信を
行ってデータを収集/集計するストレージデーモンが含まれています。また、このサービスは、新規
モニターの追加を容易に行うことができるようにするプラグインシステムを採用しています。異な
るホスト上に API サーバー、中央エージェント、データストアサービス、コレクターエージェン
19
Red Hat Ent erprise Linux O penSt ack Plat form 6 コンポーネントの概要
トをデプロイすることができます。
表2.10 T elemet ry Service のコンポーネント
コンポーネント
説明
ceilometer-agent-compute 各コンピュートノードで実行して、リソース使用状況統計のため
のポーリングを行うエージェント。各 no va-co mpute ノードに
は cei l o meter-co mpute エージェントがデプロイされ、稼働
している必要があります。
ceilometer-agent-central
中央管理サーバーで実行して、インスタンスまたはコンピュート
ノードに関連付けられていないリソースの使用状況統計のために
ポーリングを行うエージェント。現在、cei l o metercentral -ag ent の水平スケールはできないため、このサービス
の単一のインスタンスのみが常時稼働している必要があります。
ceilometer-collector
1 台または複数の中央管理サーバーで実行してメッセージキューを
監視するエージェント。通知メッセージは処理され、Telemetry
メッセージに変換後、適切なトピックを使用してメッセージバス
に送り返されます。Telemetry メッセージは変更されることなく
データストアに書き込まれます。cei l o meter-al armeval uato r サービスの場合と同様に、エージェント内の全通信
は、cei l o meter-api サービスに対する AMQP 呼び出しまたは
REST 呼び出しのいずれかをベースとしているため、これらのエー
ジェントを配置する場所を選択することができます。
アラームの状態の変化をトリガーするアラームサービス
ceilometer-alarmevaluator
ceilometer-alarm-notifier
ceilometer-notification
20
アラームがトリガーされた場合に必要なアクションを実行するア
ラームサービス。
さまざまな OpenStack サービスからコレクターサービスへメト
リックをプッシュするエージェント。
MongoD B データベース
コレクターエージェントから収集した使用状況データ用。この
データベースにアクセスできるのはコレクターエージェントと API
サーバーのみです。
ceilometer-api
1 台または複数の中央管理サーバーで実行して、データベース内の
データへのアクセスを提供します。
第2 章 コアコンポーネント
コンポーネント
説明
RabbitMQ サーバー
(rabbi tmq -server)
AMQP メッセージキューを提供します。RabbitMQ (他のサービス
でも使用) は、キュー、分散、セキュリティー、管理、クラスタリ
ング、フェデレーションなど OpenStack のトランザクション管
理を処理します。メッセージングは、OpenStack デプロイメント
がスケーリングされて、サービスが複数のマシンで実行されている
場合に特に重要となります。
9. OpenSt ack Orchest rat ion (heat )
Orchestration Service は、ストレージ、ネットワーク、インスタンス、アプリケーションなどの
クラウドリソースを作成および管理するためのテンプレートベースの方法を提供します。
テンプレートはスタックの作成に使用します。スタックとは、リソースのコレクションです (例:
インスタンス、Floating IP、ボリューム、セキュリティーグループ、ユーザー)。Ochestration
Service は、単一のモジュールテンプレートを使用した全 OpenStack コアサービスへのアクセス
に加えて、自動スケーリングや基本的な高可用性などの追加のオーケストレーション機能も提供し
ます。
以下のような機能が含まれます。
単一のテンプレートで配下の全サービス API に対するアクセスを提供します。
テンプレートはモジュール式です (リソース指向)。
テンプレートは再帰的に定義することができるので、再利用が可能です (ネストされたスタッ
ク)。これは、クラウドインフラストラクチャーをモジュール式に定義/再利用できることを意
味します。
リソースの実装はプラグ可能なので、カスタムリソースが可能となります。
自動スケーリング機能 (使用率に応じてリソースを自動で追加/削除)
基本的な高可用性機能
表2.11 O rch est rat io n Service のコンポーネント
コンポーネント
説明
openstack-heat
heat-api と通信して、AWS CloudFormation API を実行する CLI
ツール
21
Red Hat Ent erprise Linux O penSt ack Plat form 6 コンポーネントの概要
22
コンポーネント
説明
openstack-heat-api
RPC を介して heat-engine に送信することによって API 要求を
処理する OpenStack ネイティブの REST API
openstack-heat-api-cfn
AWS CloudFormation と互換性のある AWS-Query API を提供し
ます。API 要求は、RPC を介して heat-engine に送信することに
よって処理します。
openstack-heat-engine
テンプレートの起動のオーケストレーションを行い、API コン
シューマーにイベントを返します。
openstack-heat-apicloudwatch
Orchestration Service を対象とするモニタリング (メトリックの
収集) を提供します。
openstack-heat-cfntools
ヘルパースクリプトのパッケージ (例: メタデータへの更新を処理
し、カスタムフックを実行する cfn-hup)
第3章 モジュールコンポーネント
第3章 モジュールコンポーネント
Red Hat Enterprise Linux OpenStack Platform には、以下のモジュールコンポーネントが含まれ
ます。モジュールコンポーネントにより、OpenStack のコアコンポーネントが提供する IaaS 機
能に拡張機能が追加されます。
表3.1 モジュールサービス
サービス
コード
説明
Bare Metal
Provisionin
g
Ironic
D ata
Processing
Sahara
OpenStack 上で Hadoop クラスターのプ
ロビジョニングを高速化し、管理を容易に
するサービス
OpenStack
D atabaseas-aService
Trove
複雑な管理タスクを処理する負担なしに、
「OpenStack
ユーザーが迅速かつ容易にリレーショナル/ D atabase-as-a非リレーショナルデータベースエンジンの
Service (trove)」
機能を利用できるようにするサービス (テク
ノロジープレビュー)
物理マシン (ベアメタル) をプロビジョニン
グしてさまざまなハードウェアベンダーを
サポートすることができるサービス (テクノ
ロジープレビュー)
場所
「OpenStack Bare
Metal Provisioning
(ironic)」
「OpenStack D ata
Processing
(sahara)」
1. OpenSt ack Bare Met al Provisioning (ironic)
OpenStack Bare Metal Provisioning により、ユーザーは物理マシン (ベアメタル) をプロビジョ
ニングしてさまざまなハードウェアベンダーをサポートすることができます。Bare Metal
Provisioning は (仮想マシンがプロビジョニングされるのと同じ方法で) Compute Service と統合
して、「1 テナントに対して 1 ベアメタル」のユースケースの解決策を提供します。OpenStack
クラウド内では、たとえば以下が可能となります。
ベアメタルへの Hadoop クラスターのデプロイ
ハイパースケール/ハイパフォーマンスコンピューティング (HPC) のクラスターのデプロイ
仮想マシンの影響を受けるアプリケーションのデータベースホスティングの使用
サービスは Bare Metal Provisioning API、コンダクター、データベース/ハードウェア固有のドラ
イバーで構成され、PXE、IPMI、D HCP などの一般的な技術を活用します。
23
Red Hat Ent erprise Linux O penSt ack Plat form 6 コンポーネントの概要
重要
Red Hat Enterprise Linux OpenStack Platform 6 リリースには、テクノロジープレビューと
して OpenStack Bare Metal が同梱されています。テクノロジープレビューとして提供されて
いる機能のサポート範囲についての詳しい情報
は、https://access.redhat.com/support/offerings/techpreview/ を参照してください。
2. OpenSt ack Dat a Processing (sahara)
OpenStack D ata Processing は、OpenStack 上で Hadoop クラスターのプロビジョニングを高
速化し、管理を容易にします。Hadoop は、大量のデータを保管/分析するのに使用します。これ
は通常、非構造化データですが、複合データと構造化データの組み合わせの場合もあります。
Hadoop クラスターは、Hadoop D istributed File System (HD FS) を実行するストレージサー
バーとコンピュートサーバーの両方として機能するサーバーのグループです。クラスターサー
バーは、必ずしもメモリーやディスクを共有するとは限らず、通常はそれらを接続するネット
ワークのみを共有します。これは、クラスターを必要に応じて簡単に追加したり削除したりで
きることを意味します。
Hadoop により、コンピュートとストレージが同じ場所に配置され、作業が全サーバーにわ
たって分担されて、各サーバーがローカルでコンピュートとストレージのサービスを提供する
ので、そのデータを高速に分析できるようになります。
OpenStack D ata Processing では、以下が行われます。
Identity Service がユーザーを認証し、ユーザーセキュリティーを提供します。
Compute Service がクラスターの仮想マシンをプロビジョニングします。
Image Service がクラスターの仮想マシンを保管します (それぞれにオペレーティングシステム
と Hadoop が含まれます)。
Hadoop のジョブによって処理されるデータの保管に、Object Storage Service を使用するこ
とができます。
テンプレートは、クラスターの設定に使用します。ノードは、ノードグループテンプレートを
使用してグループ化されます。クラスターテンプレートは、ノードグループを組み合わせるの
に使用します。
ジョブは、Hadoop クラスター上のタスクを実行するのに使用されます。ジョブのバイナリー
には実行可能ファイルのコードを保管し、データソースはインプット/アウトプットの場所や必
要な認証情報を保管します。
D ata Processing は、異なる Hadoop ディストリビューションと、ベンダー固有の管理ツール
(例: Apache Ambari) をサポートしています。クラスターのプロビジョニングと管理には OpenStack dashboard またはコマンドラインツールを使用することができます。
24
第3章 モジュールコンポーネント
表3.2 Sah ara Service のコンポーネント
コンポーネント
説明
openstack-saharaapi
API サービス。クラスターの要求とデータの配送を処理します。
sahara
Sahara のタスク用の CLI クライアント。OpenStack D ashboard で
利用可能な操作の大半は、CLI を使用して実行することもできます (た
だし、クラスターのスケールアップ/ダウンの機能を除く)。
sahara-db-manage
データベース管理用の CLI クライアント
sahara-dashboard
OpenStack D ashboard 用のプラグイン
3. OpenSt ack Dat abase-as-a-Service (t rove)
Openstack D atabase-as-a-Service (trove) によりユーザーは、複雑な管理タスクを処理する負担
を負わずに、迅速かつ容易にリレーショナル/非リレーショナルデータベースエンジンの機能を利
用することができます。OpenStack D atabase-as-a-Service は、以下の機能をサポートします。
クラウドユーザーおよびデータベース管理者は、必要に応じて複数のデータベースインスタン
スをプロビジョニングおよび管理することができます。
複雑な管理タスク (例: デプロイ、設定、修正プログラムの適用、バックアップ、復元、モニタ
リングなど) を自動化する一方でハイパフォーマンスリソースを分離することができます。
表3.3 T ro ve Service コンポーネント
コンポーネント
説明
trove-api
trove-api サービスは、Trove インスタンスのプロビジョニングおよび管理
を行う JSON および XML をサポートする RESTful API を提供します。
trovetaskmanager
trove-taskmanager サービスは、インスタンスのプロビジョニング、インス
タンスのライフサイクル管理、データベースインスタンス上での操作の実行
などのタスクに対応します。
25
Red Hat Ent erprise Linux O penSt ack Plat form 6 コンポーネントの概要
コンポーネント
説明
trove-conductor
trove-conductor サービスは、ホスト上で実行されます。このサービスはゲ
ストインスタンスからメッセージを受信してホスト上の情報 (例: インスタン
スのステータスまたはバックアップの現在のステータスなどの情報) を更新
します。trove-conductor があれば、ゲストインスタンスはホストのデータ
ベースに直接接続する必要はありません。trove-conductor サービスは、
メッセージバスで RPC メッセージをリッスンして、適切な操作を実行しま
す。
troveguestagent
trove-guestagent サービスは、ゲストインスタンス内で実行されます。デー
タベース上での操作の管理/実行を担当します。trove-guestagent は、メッ
セージバスで RPC メッセージをリッスンして、要求された操作を実行しま
す。
重要
Red Hat Enterprise Linux OpenStack Platform 6 リリースには、テクノロジープレ
ビュープレビューとして OpenStack D atabase-as-a-Service が同梱されています。テク
ノロジープレビューとして提供されている機能のサポート範囲についての詳しい情報は、
https://access.redhat.com/support/offerings/techpreview/ を参照してください。
OpenStack D atabase-as-a-Service は、デフォルトの OpenStack チャネルから入手で
きますが、現在、OpenStack D atabase-as-a-Service のインストールと設定は手動で行
う必要があります。
26
第4 章 デプロイメントツール
第4章 デプロイメントツール
OpenStack では、実習目的で環境を手動でデプロイできるだけでなく、OpenStack の環境をデプ
ロイ可能なデプロイメントツールが提供されています。
1. Red Hat Ent erprise Linux OpenSt ack Plat form インストーラー
Red Hat Enterprise Linux OpenStack Platform インストーラーは、Red Hat Enterprise Linux
OpenStack Platform を一連のハードウェア上へ簡単にデプロイするためのウィザードベースのイ
ンストールツールです。このインストーラーは、Foreman デプロイメントツールの機能をベース
に構築されており、エンタープライズレベルのインストールを大幅に容易化します。
図4 .1 インストーラー G U I
インストーラーには、以下の機能が含まれています。
Foreman よりも簡単に使用でき、Packstack よりも堅牢なツールを提供する、簡素化された
インターフェース
複雑なハードウェア環境のオーケストレーションおよび順序付け機能およびマルチノードのデ
プロイメントのサポート
段階的なデプロイメントの完全な自動化。ベアメタルホストなどのハードウェアが自動的に検
出されます。
サポートされているモードは、以下のとおりです。
Compute ネットワーク (nova-network)、OpenStack Networking (neutron) のいずれかを使
用した分散型
Compute ネットワーク (nova-network)、OpenStack Networking (neutron) のいずれかを使
27
Red Hat Ent erprise Linux O penSt ack Plat form 6 コンポーネントの概要
Compute ネットワーク (nova-network)、OpenStack Networking (neutron) のいずれかを使
用した、HA (高可用性) の分散型
インストーラーに関する詳しい情報は OpenStack のデプロイメント: エンタープライズ環境 (Red
Hat Enterprise Linux OpenStack Platform インストーラー) を参照してください。
2. Packst ack
Packstack は Puppet モジュールを使用したコマンドラインユーティリティーで、既存のサー
バーに対して SSH 接続を介して迅速な OpenStack のデプロイメントを可能にします。デプロイ
メントオプションについては対話式の場合はコマンドライン経由で、非対話式の場合は
OpenStack のパラメーターに対して事前定義した値を含むテキストファイルで指定していきま
す。
Packstack は、以下のタイプの構成をデプロイする場合に適しています。
コントローラーサービスおよび仮想マシンすべてが物理ホスト 1 台で実行される、概念実証の
ためのシングルノードインストール。これは、all-in-one インストールと呼ばれています。
単一のコントローラーノードと複数のコンピュートノードのある、概念実証のためのインス
トール。これは上記の all-in-one インストールとよく似ていますが、仮想マシンの実行用に追
加のハードウェアノードを 1 つ以上使用する点が異なります。
重要
Packstack は、概念実証のデプロイメント用に設計されているため、実稼動環境のデプロイメ
ントツールには適していません。Packstack では、インストールプロセスを簡素化するため
に、設定には数多くの前提条件があるため、高可用性 (HA) 設定や負荷分散設定でサービスを
デプロイすることや、複雑なネットワーク設定に必要な柔軟性を提供することはできません。
Packstack に関する詳しい情報は、OpenStack デプロイメント: 概念実証向けの環境
(Packstack) を参照してください。
3. OpenSt ack Deployment (t ripleO)
OpenStack D eployment により、OpenStack のコアコンポーネントを使用する OpenStack クラ
ウドをインストール、アップグレード、運用することができます。OpenStack D eployment に
は、以下のような機能が含まれます。
ライブイメージインストーラー
オペレーター重視のユーザーインターフェース。また OpenStack D eployment は、
OpenStack D ashboard と統合してメトリック (例: サービス、容量など) を表示することがで
きます。
手動または自動のハードウェア検出
28
第4 章 デプロイメントツール
コンピュート、ブロックストレージ、オブジェクトストレージ、コントローラーのロールのサ
ポート
Orchestration、Image、および Bare Metal Provisioning のサービスを使用したイメージと
サービスのデプロイ
重要
Red Hat Enterprise Linux OpenStack Platform 6.0 には、OpenStack D eployment (tripleO)
がテクノロジープレビューとして追加されました。テクノロジープレビューとして提供されて
いる機能のサポート範囲について
は、https://access.redhat.com/support/offerings/techpreview/ を参照してください。
29
Red Hat Ent erprise Linux O penSt ack Plat form 6 コンポーネントの概要
付録A 改訂履歴
改訂 6 .0- 4 .1
Wed Mar 25 2015
R ed H at Lo caliz at io n
Services
翻訳ファイルを XML ソースバージョン 6.0-4 と同期
改訂 6 .0- 4
T h u Feb 5 2015
Red Hat Enterprise Linux OpenStack Platform 6 リリース
30
Su mmer Lo n g