OpenStack Compute を使用して、クラウドコンピューティングシステムを動かし管理を行います。OpenStack Compute は、Infrastructure-as-a-Service (IaaS) システムの主要な要素です。主要なモジュールは Python で実装されています。
OpenStack Compute は、認証については OpenStack Identity サービスと、ディスクやサーバーイメージについては OpenStack Image サービスと、ユーザーや管理者向けインターフェースについては OpenStack Dashboard と連携して動作します。イメージアクセスはプロジェクトやユーザー単位で限定され、クォータ (例えば、インスタンス数) はプロジェクト単位に適用されます。 OpenStack Compute は標準的なハードウェアを使って水平にスケールさせることができます。イメージをダウンロードして、インスタンスを起動します。
OpenStack Compute は、以下のコンポーネントから構成されます。
エンドユーザーからの compute API 呼び出しを受け取り応答します。このサービスは OpenStack Compute API、Amazon EC2 API 、および、特権ユーザーが管理用操作を実行するための特別な管理 API をサポートしています。ポリシーの適用を行います。インスタンス起動などのほとんどの処理がこのサービスから開始されます。
インスタンスからのメタデータ要求を受け取ります。 nova-api-metadata サービスは通常 nova-network をマルチホストモードで動かしている場合に使用されます。詳細については、OpenStack Administrator Guide の Metadata サービス を参照してください。
ハイパーバイザー API を使用して仮想マシンインスタンスの作成、終了を行うワーカーデーモン。例えば、以下のようなハイパーバイザー API に対応しています。
XenServer/XCP 向けの XenAPI
KVM/QEMU 向けの libvirt
VMware 向けの VMwareAPI
処理内容はかなり複雑です。このデーモンはキューからアクションを受け取り、 KVM インスタンスの起動やデータベースの状態更新など一連のシステムコマンドを実行します。
仮想マシンインスタンスの作成要求を受け取ってキューイングし、インスタンスをどのコンピュートサーバーホストで実行するかを決定します。
nova-compute サービスとデータベース間のやりとりを仲介します。これにより、 nova-compute サービスからのクラウドデータベースへの直接アクセスをなくすことができます。 nova-conductor モジュールは水平にスケールさせることができます。ただし、 nova-compute サービスが実行されているノードには配置しないでください。詳しい情報は、 Configuration Reference Guide を参照してください。
X509 証明書用の Nova Cert サービスを提供するサーバーデーモン。 euca-bundle-image 用の証明書を生成するのに使用されます。 EC2 API を使用する場合にのみ必要です。
nova-compute と似ています。 キューからネットワーク関係のタスクを受け取り、ネットワーク操作を行ないます。例えば、ブリッジインターフェースの準備や iptables ルールの変更などのタスクを行います。
コンソールプロキシーがユーザーに対して提供したトークンを認証します。 nova-novncproxy や nova-xvpvncproxy を参照してください。コンソールプロキシーが動作するためには、このサービスは必須です。 1 つのクラスターでは、1 つの nova-consoleauth サービスで、どちらの種類のコンソールプロキシーも動作させることができます。詳細な情報は、 About nova-consoleauth を参照してください。
VNC コネクション経由で実行中のインスタンスへアクセスするプロキシーを提供します。ブラウザーベースの novnc クライアントをサポートします。
SPICE コネクション経由で実行中のインスタンスのアクセスへプロキシーを提供します。ブラウザーベースの HTML5 クライアントをサポートします。
VNC コネクション経由で実行中のインスタンスのアクセスへプロキシーを提供します。 OpenStack 固有の Java クライアントをサポートします。
x509 証明書。
ユーザーが、テナント管理者もしくはエンドユーザーとしてコマンドを発行するのに使用します。
デーモン間でメッセージを受け渡しするための集中ハブです。一般的に RabbitMQ で実装されますが、 Zero MQ などのそれ以外の AMQP メッセージキューで実現することもできます。
クラウドインフラの、作成中、実行中のほとんどの状態を保持します。例えば以下のような情報があります。
利用できるインスタンス種別
使用中のインスタンス
利用可能なネットワーク
プロジェクト
理論的には、OpenStack Compute は SQL-Alchemy がサポートするデータベースをすべてサポートします。一般的に使用されているデータベースは、テスト・開発用には SQLite3、それ以外では MySQL や PostgreSQL です。
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.