Red Hat Training

A Red Hat training course is available for Red Hat Linux

第14章 Pacemaker を用いたマルチサイトクラスターの設定 (テクニカルプレビュー)

重要

Booth チケットマネージャーはテクノロジープレビューとしてのみ提供されます。「テクノリジープレビュー」の意味については、テクノロジプレビュー機能のサポート範囲 を参照してください。
クラスターが複数のサイトにまたがる場合、サイト間のネットワーク接続の問題が原因でスプリットブレインが発生する可能性があります。接続が切断されても、別のサイトのノードで障害が発生したのか、またはサイト間の接続に失敗した状態で別サイトのノードが機能しているかどうかをノードが判断する方法がありません。さらに、離れすぎているため同期を保つのが難しい 2 つのサイトで高可用性サービスを提供するのは問題になることがあります。
この問題に対応するため、Red Hat Enterprise Linux 7.3 以降には Booth クラスターチケットマネージャーを使用して複数のサイトにまたがる高可用性クラスターを設定する機能が追加されました。Booth チケットマネージャーは、特定サイトでクラスターノードに接続するネットワークとは異なる物理ネットワークで実行するための分散サービスです。これにより、Booth フォーメーション という別の非厳密なクラスターがサイトの通常クラスターの上に置かれます。この集約通信層は、個別の Booth チケットに対して合意ベースの決定プロセスを促進します。
Booth チケット は Booth フォーメーションのシングルトンで、時間依存の移動可能な承認の単位を表します。実行には特定のチケットが必要になるよう、リソースを設定することができます。これにより、チケットが付与された場合にリソースは 1 度に 1 サイトでのみ実行されるようになります。
Booth フォーメーションは、異なるサイトで実行されるクラスターで構成され元のクラスターがすべて独立しているオーバーレイクラスターとしてみなすことができます。チケット付与の有無についてクラスターと通信するのは Booth サービスで、Pacemaker が Pacemaker のチケット抑制を基にクラスターのリソースを実行するかどうかを判断します。チケットマネージャーを使用する場合、各クラスターは独自のリソースと共有リソースを実行できます。たとえば、リソース A、B、および C は 1 つのクラスターでのみ実行され、リソース D、E、および F は別のクラスターでのみ実行されるとします。リソース G および H は、チケットによって決定されたこれら 2 つのクラスターのいずれかで実行されます。また、別のチケットによってこれら 2 つのクラスターのいずれかで実行されることが決まるリソース J を追加することもできます。
以下の手順は、Booth チケットマネージャーを使用するマルチサイト構成の設定方法を示しています。
ここで使用するコマンド例は以下を前提とします。
  • Cluster 1 はノード cluster1-node1 および cluster1-node2 で構成されます。
  • Cluster 1 に割り当てられたフローティング IP アドレスは 192.168.11.100 です。
  • Cluster 2 は cluster2-node1 および cluster2-node2 で構成されます。
  • Cluster 2 に割り当てられたフローティング IP アドレスは 192.168.22.100 です。
  • arbitrator (調停役) ノードは arbitrator-node で、IP アドレスは 192.168.99.100 です。
  • この設定が使用する Booth チケットの名前は apacheticket です。
ここで使用するコマンド例は、Apache サービスのクラスターリソースが各クラスターの apachegroup リソースグループの一部として設定されていることを前提としています。各クラスターの Pacemaker インスタンスは独立しているため、リソースのチケット制約を設定するために各クラスターのリソースとリソースグループが同じである必要はありませんが、これがフェイルオーバーの一般的な事例になります。
クラスターで Apache サービスを設定するクラスター設定の完全な手順は、『High Availability Add-On の管理』 の例を参照してください。
設定手順の実行中に pcs booth config コマンドを実行すると現在のノードまたはクラスターの Booth 設定を表示できます。また、pcs booth status コマンドを実行するとローカルノードの現在の Booth 状態を表示できます。
  1. 1 つのクラスターの 1 つのノードで Booth 設定を作成します。各クラスターおよび arbitrator (調停役) に指定するアドレスは IP アドレスでなければなりません。各クラスターにはフローティング IP アドレスを指定します。
    [cluster1-node1 ~] # pcs booth setup sites 192.168.11.100 192.168.22.100 arbitrators 192.168.99.100
    このコマンドを実行すると、/etc/booth/booth.conf および /etc/booth/booth.key 設定ファイルがノード上に作成されます。
  2. Booth 設定のチケットを作成します。このチケットがクラスターに付与された場合のみリソースの実行を許可するリソース抑制を定義するためにこのチケットを使用します。
    このフェイルオーバー設定手順は基本的な手順で、1 つのチケットのみを使用します。各チケットが異なるリソースに関連付けられる、より複雑な事例では追加のチケットを作成します。
    [cluster1-node1 ~] # pcs booth ticket add apacheticket
  3. 現在のクラスターのすべてのノードに対して Booth 設定を同期します。
    [cluster1-node1 ~] # pcs booth sync
  4. arbitrator (調停役) ノードから、Booth 設定を arbitrator へプルします。この作業をこれまで行ったことがない場合は、最初に設定をプルするノードに pcs を認証する必要があります。
    [arbitrator-node ~] # pcs cluster auth cluster1-node1
    [arbitrator-node ~] # pcs booth pull cluster1-node1
  5. Booth 設定を別のクラスターにプルし、そのクラスターのすべてのノードを同期します。arbitrator ノードでこの作業を行ったことがない場合は、最初に設定をプルするノードに pcs を認証する必要があります。
    [cluster2-node1 ~] # pcs cluster auth cluster1-node1
    [cluster2-node1 ~] # pcs booth pull cluster1-node1
    [cluster2-node1 ~] # pcs booth sync
  6. arbitrator で Booth を開始および有効化します。

    注記

    Booth はクラスターで Pacemaker リソースとして実行されるため、クラスターのノードで Booth を手動で開始または有効化してはなりません。
    [arbitrator-node ~] # pcs booth start
    [arbitrator-node ~] # pcs booth enable
  7. Booth を設定し、両方のクラスターサイトでクラスターリソースとして実行されるようにします。booth-ip および booth-service をグループのメンバーとするリソースグループが作成されます。
    [cluster1-node1 ~] # pcs booth create ip 192.168.11.100
    [cluster2-node1 ~] # pcs booth create ip 192.168.22.100
  8. 各クラスターに定義したリソースグループにチケット制約を追加します。
    [cluster1-node1 ~] # pcs constraint ticket add apacheticket apachegroup
    [cluster2-node1 ~] # pcs constraint ticket add apacheticket apachegroup
    以下のコマンドを実行すると、現在設定されているチケット制約を表示できます。
    pcs contraint ticket [show]
  9. この設定用に作成したチケットを最初のクラスターに付与します。
    チケットを付与する前に定義されたチケット抑制を準備する必要はありません。最初にチケットをクラスターに付与した後、 pcs booth ticket revoke コマンドで手動でオーバーライドしない限り、Booth はチケットの管理を引き継ぎます。pcs booth 管理コマンドの詳細は、pcs booth コマンドの PCS ヘルプ画面を参照してください。
    [cluster1-node1 ~] # pcs booth ticket grant apacheticket
チケットはいつでも追加および削除でき、この手順の完了後でも追加と削除が可能です。チケットの追加または削除後、この手順の説明どおりに、他のノード、クラスター、および arbitrator に対して設定ファイルを同期し、チケットを付与する必要があります。
Booth 設定ファイル、チケット、およびリソースのクリーンアップや削除に使用できるその他の Booth 管理コマンドに関する情報は、pcs booth コマンドの PCS ヘルプ画面を参照してください。