第1章 コンポーネント
Red Hat OpenStack Platform IaaS クラウドは、コンピューティング、ストレージ、ネットワークのリソースを制御するために相互に対話するサービスのコレクションとして実装されます。クラウドは、Web ベースのダッシュボードまたはコマンドラインクライアントで管理されます。これにより、管理者は OpenStack リソースの制御、プロビジョニング、自動化を行うことができます。OpenStack は、クラウドの全ユーザーが利用できる豊富な API も提供しています。
以下の図は、OpenStack のコアサービスとそれらの相互関係の俯瞰的な概要を示しています。
以下の表には、上図に示した各コンポーネントについての簡単な説明と、それぞれのセクションへのリンクをまとめています。
サービス | コード | 説明 | 場所 | |
---|---|---|---|---|
| Dashboard | horizon | OpenStack の各サービスの管理に使用する Web ブラウザーベースのダッシュボード | |
| Identity | keystone | OpenStack サービスを認証および承認し、ユーザー/プロジェクト/ロールを管理する一元化されたサービス | |
| OpenStack Networking | neutron | OpenStack サービスのインターフェイス間の接続性を提供します。 | |
| Block Storage | cinder | 仮想マシン用の永続的な Block Storage ボリュームを管理します。 | |
| Compute | nova | ハイパーバイザーノードで実行されている仮想マシンの管理とプロビジョニングを行います。 | |
| Image | glance | 仮想マシンイメージやボリュームのスナップショットなどのリソースの保管に使用するレジストリーサービス | |
| Object Storage | swift | ユーザーによるファイルおよび任意のデータの保管/取得を可能にします。 | |
| Telemetry | ceilometer | クラウドリソースの計測値を提供します。 | |
| Orchestration | heat | リソーススタックの自動作成をサポートする、テンプレートベースのオーケストレーションエンジン |
各 OpenStack サービスには、Linux サービスおよびその他のコンポーネントの機能グループが含まれています。たとえば、glance-api および glance-registry Linux サービスは MariaDB データベースとともに Image サービスを実装します。OpenStack サービスに含まれるサードパーティーのコンポーネントに関する情報は、「サードパーティーのコンポーネント」を参照してください。
追加サービスは以下のとおりです。
- 「OpenStack Bare Metal Provisioning (ironic)」 - さまざまなハードウェアベンダーで物理マシン(ベアメタル)をプロビジョニングできます。
- 「OpenStack Database-as-a-Service (trove)」 - ユーザーはリレーショナルデータベースエンジンと非リレーショナルデータベースエンジンをデプロイし、複雑なデータベース管理タスクを処理できます。
- 「OpenStack Data Processing (sahara)」 - ユーザーが OpenStack で Hadoop クラスターをプロビジョニングおよび管理できます。
1.1. ネットワーク
1.1.1. OpenStack Networking (neutron)
OpenStack Networking は、OpenStack クラウド内の仮想ネットワークインフラストラクチャーの作成と管理を処理します。インフラストラクチャー要素にはネットワーク、サブネット、ルーターなどが含まれます。また、ファイアウォールや仮想プライベートネットワーク (VPN) などの高度なサービスもデプロイすることができます。
OpenStack Networking は、クラウド管理者向けに、どの物理システムで実行する個々のサービスを柔軟に決定するかを提供します。すべてのサービスデーモンは、評価目的で、1 つの物理ホストで実行できます。あるいは、各サービスに一意の物理ホストを割り当てるか、複数のホストにレプリケートして冗長性を提供できます。
OpenStack Networking はソフトウェア定義であるため、新規 IP アドレスの作成や割り当てなど、ネットワークのニーズの変化にリアルタイムで対応することができます。
OpenStack Networking の利点は以下のとおりです。
- ユーザーは、ネットワークを作成し、トラフィックを制御し、サーバーとデバイスを 1 つまたは複数のネットワークに接続できます。
- 柔軟なネットワークモデルは、ネットワークボリュームとテナンシーに適合できます。
- IP アドレスは専用または Floating にすることができます。ここで、Floating IP は動的トラフィックの再ルーティングに使用できます。
- VLAN ネットワークを使用する場合は、最大 4094 VLAN (4094 ネットワーク)を使用できます。ここで、4094 = 2^12 (minus 2 unavailable)ネットワークアドレスを使用できます。これは、12 ビットヘッダー制限によって課されます。
- VXLAN トンネルベースのネットワークを使用する場合、VNI (仮想ネットワーク識別子)は 24 ビットのヘッダーを使用できます。これにより、基本的に約 1,600万個の固有のアドレス/ネットワークが許可されます。
コンポーネント | 説明 |
---|---|
ネットワークエージェント | それぞれの OpenStack ノードで実行され、ノードの仮想マシンおよび Open vSwitch などのネットワークサービス用のローカルネットワーク設定を実行します。 |
neutron-dhcp-agent | テナントネットワークに DHCP サービスを提供するエージェント。 |
neutron-ml2 | ネットワークドライバーを管理し、Open vSwitch や Ryu ネットワークなどのネットワークサービス用のルーティングとスイッチングサービスを提供するプラグイン。 |
neutron-server | ユーザーの要求を管理し、Networking API を公開する Python デーモン。デフォルトのサーバー設定は、特定のネットワークメカニズムセットを持つプラグインを使用して Networking API を実装します。 openvswitch プラグインや linuxbridge プラグインなどの一部のプラグインは、ネイティブの Linux ネットワークメカニズムを使用し、外部デバイスまたは SDN コントローラーとの他のプラグインインターフェイスを使用します。 |
neutron | API にアクセスするためのコマンドラインクライアント。 |
OpenStack Networking サービスおよびエージェントの配置は、ネットワーク要件によって異なります。以下の図は、コントローラーのない共通のデプロイメントモデルの例を示しています。このモデルは、専用の OpenStack Networking ノードおよびテナントネットワークを利用します。
この例は、次の Networking サービスの設定を示しています。
2 台のコンピュートノードは Open vSwitch (ovs-agent)を実行し、1 つの OpenStack Networking ノードが以下のネットワーク機能を実行します。
- L3 ルーティング
- DHCP
- FWaaS や LBaaS などのサービスを含む NAT
- コンピュートノードにはそれぞれ 2 つの物理ネットワークカードがあります。1 つのカードがテナントトラフィックを処理し、他のカードでは接続を管理します。
- OpenStack Networking ノードに、プロバイダートラフィック専用の 3 番目のネットワークカードがあります。