OpenStack は柔軟性が高いため、そのコンポーネントを複数のノードまたはシステムに配布するためのさまざまな方法が提供されています。図 1のサンプルアーキテクチャーでは、コンポーネントを 3 つのノード上に配備する方法を 1 つだけ示しています。
ストレージノード
コンピュートノード
コントローラノード
この図では、コントローラノードが MySQL データベース、EVS コントローラ、メッセージブローカソフトウェア (RabbitMQ) などの OpenStack コンポーネントを統合しています。
ただし、コンポーネントをさらに分割することもできます。たとえば、次のように 5 つのノード間でコンポーネントを分散させる場合もあります。
ノード 1: RabbitMQ
ノード 2: MySQL データベース
ノード 3: Keystone、Glance、Horizon などの OpenStack コントローラコンポーネント
ノード 4: エラスティック仮想スイッチ
ノード 5 : L3 エージェント
さらに、複数のストレージおよびコンピュートノードを持つこともできます。Ironic などのその他の非コア OpenStack コンポーネントは、独自のノードに配置することもできます。
このように柔軟性が高いために、使用可能なリソースに基づいて、さらには各ノード内のコンポーネントをどのようにグループ化するかに基づいて、OpenStack インフラストラクチャーを設計できます。そのため、すべてのシステム上に OpenStack パッケージ全体をインストールするのではなく、各システム上に必要な OpenStack パッケージのみをインストールできます。