1.4. テクノロジーの概要

以下のテクノロジーは、Red Hat OpenStack Platform の一部です。

1.4.1. 高可用性

Red Hat OpenStack Platform director は、オーバークラウドのデプロイメント全体にわたって、さまざまな OpenStack サービスの冗長コピーを配信します。これらの冗長サービスは、Red Hat OpenStack Platform director が設定されたコントローラーノードの数に応じて、director がノード controller-0controller-1controller-2 などの命名を行い、オーバークラウドのコントローラーノードにデプロイされます。

コントローラーノードで実行中のサービスは HAProxy バックエンドサーバーであるため、コントローラーノードの IP アドレスは外部では表示されません。コントローラーノードのセットに公開されている IP アドレスが 1 つあります。これは HAProxy のフロントエンドです。要求がパブリック IP アドレスでサービスに到達すると、HAProxy は要求に対応するバックエンドサーバーを選択します。

オーバークラウドは高可用性クラスターとして編成されます。Pacemaker はクラスターを管理し、ヘルスチェックを実行し、リソースが機能停止した場合に別のクラスターリソースにフェイルオーバーすることができます。Pacemaker を使用して、これらのリソースを起動および停止します。

高可用性に関する詳しい情報は、High Availability Deployment and Usage ガイドを参照してください。

1.4.1.1. Pacemaker サービスの管理

Pacemaker が管理するサービスについては、コントローラーノードで podman コマンドを使用して管理しないでください。Pacemaker pcs コマンドを使用します。

sudo pcs resource restart haproxy-bundle

リソース名を確認するには、Pacemaker status コマンドを使用します。

sudo pcs status
...
* Container bundle set: haproxy-bundle [cluster.common.tag/openstack-haproxy:pcmklatest]:
    * haproxy-bundle-podman-0   (ocf::heartbeat:podman):        Started rhosp13-controller-0
    * haproxy-bundle-podman-1   (ocf::heartbeat:podman):        Started rhosp13-controller-1
    * haproxy-bundle-podman-2   (ocf::heartbeat:podman):        Started rhosp13-controller-2
...

1.4.2. HAProxy の概要

HAProxy は Pacemaker に同様のロールを提供します。バックエンドサーバーでヘルスチェックを実行し、機能しているバックエンドサーバーに要求を転送します。すべてのコントローラーノードで HAProxy が実行している。

実行中の HAProxy のコピーは N 個ありますが、実際には 1 つのみで、要求に対するフィールドが設定されます。このアクティブな HAProxy インスタンスは Pacemaker によって管理されます。この手法により競合が発生するのを防ぎ、HAProxy の複数のコピーが複数のバックエンド間で要求の分散を調整できるようにします。Pacemaker は HAProxy が失敗したことを検知すると、フロントエンドの IP アドレスを別の HAProxy インスタンスに再割り当てします。その後、この HAProxy インスタンスは制御する HAProxy インスタンスになります。