機械翻訳について

サービスの作成とフェイルオーバーのテスト

サービスを作成してフェイルオーバーをテストするには:

サービスを作成し、通常は、プロセスの開始および停止を処理するリソース・エージェントを実行するように構成します。 ほとんどのリソース・エージェントは、Linux Standard Base (LSB)の拡張機能として定義されているOpen Cluster Framework (OCF)仕様に従って作成されています。 resource-agentsパッケージには、よく使用されるプロセスのための便利なリソース・エージェントが多数含まれており、よく使用されるデーモンやサービスがまだ実行中かどうかを追跡する様々なハートビート・エージェントなどがあります。

次の例では、Pacemakerのテストのために作成されたDummyリソース・エージェントを使用するサービスが設定されます。 このエージェントを使用する理由は、このエージェントが基本的な構成を必要とし、環境やPacemakerで実行する予定のサービスのタイプについて何も想定していないからです。

  1. pcs resource createコマンドを使用して、サービスをリソースとして追加します。

    sudo pcs resource create dummy_service ocf:pacemaker:Dummy

    前の例では、dummy_serviceがこのリソースのサービスに指定された名前です。

    Dummyリソース・エージェントを起動するには、表記(ocf:pacemaker:Dummy)を使用して、これがOCF標準に準拠すること、Pacemakerのネームスペースで実行されること、およびDummyスクリプトを使用する必要があることを指定します。 クラスタ化されたファイル・システムのハートビート・モニター・サービスを構成した場合は、ocf:heartbeat:Filesystemリソース・エージェントを使用できます。

    サービスを作成すると、クラスタはリソース・エージェントの起動コマンドを使用してノード上でリソースを起動します。

  2. pcs statusコマンドを使用して、クラスタとそのリソースのステータスを表示します:

    sudo pcs status

    次のサンプル抽出は、コマンド出力を示しています:

    Cluster name: pacemaker1
    Cluster Summary:
      * Stack: corosync (Pacemaker is running)
      * Current DC: node1 (version version_information) - partition with quorum
      * Last updated: Fri Mar  7 13:31:26 2025 on node1
      * Last change:  Tue Mar  4 14:55:20 2025 by root via root on node1
      * 2 nodes configured
      * 1 resource instance configured
    
    Node List:
      * Online: [ node2 node1 ]
    
    Full List of Resources:
      * dummy_service	(ocf:pacemaker:Dummy):	 Started node1
    
    Daemon Status:
      corosync: active/enabled
      pacemaker: active/enabled
      pcsd: active/enabled
    ...
    

    前述の出力例では、両方のノードがオンラインであり、サービスがnode1で起動されていることを示しています。

  3. サービスが実行されているノードでクラスタを停止して、フェイルオーバーをトリガーします:

    sudo pcs cluster stop node1

    このコマンドは、次の出力例に示すように、PacemakerとCorosyncがノード上で停止されていることを報告します:

    node1: Stopping Cluster (pacemaker)...
    node1: Stopping Cluster (corosync)...
  4. たとえば、ノード(この例ではnode1)でpcs cluster statusコマンドを実行して、クラスタが停止していることを確認します:

    sudo pcs cluster status

    このコマンドは、次の出力例に示すように、クラスタが実行されていないことを報告します:

    Error: cluster is not currently running on this node
  5. 他のノード(この例ではnode2)にサインインし、pcs statusコマンドを実行して、そのノードでサービスが起動されていることを確認します:

    sudo pcs status

    次のサンプル抽出は、コマンド出力を示しています:

    Cluster name: pacemaker1
    Cluster Summary:
      * Stack: corosync (Pacemaker is running)
      * Current DC: node2 (version version_information) - partition with quorum
      * Last updated: Fri Mar  7 13:35:11 2025 on node2
      * Last change:  Tue Mar  4 14:55:20 2025 by root via root on node1
      * 2 nodes configured
      * 1 resource instance configured
    
    Node List:
      * Online: [ node2 ]
      * OFFLINE: [ node1 ]
    
    Full List of Resources:
      * dummy_service	(ocf:pacemaker:Dummy):	 Started node2
    
    Daemon Status:
      corosync: active/enabled
      pacemaker: active/enabled
      pcsd: active/enabled
    ...
    

    前述のサンプル出力は、node1がオフラインで、サービスが正常にフェイルオーバーされ、node2で起動されたことを示しています。

  6. pcs cluster startコマンドを使用して、オフライン・ノードでクラスタを起動します:

    sudo pcs cluster start node1
  7. ノードがオンラインに戻ったことを確認します:

    sudo pcs status

    次のサンプル抽出は、予想されるコマンド出力を示しています:

    Cluster name: pacemaker1
    Cluster Summary:
      * Stack: corosync (Pacemaker is running)
      * Current DC: node2 (version version_information) - partition with quorum
      * Last updated: Fri Mar  7 13:38:36 2025 on node1
      * Last change:  Tue Mar  4 14:55:20 2025 by root via root on node1
      * 2 nodes configured
      * 1 resource instance configured
    
    Node List:
      * Online: [ node2 node1]
    
    Full List of Resources:
      * dummy_service	(ocf:pacemaker:Dummy):	 Started node2
    
    Daemon Status:
      corosync: active/enabled
      pacemaker: active/enabled
      pcsd: active/enabled
    ...
    

    前述のサンプル出力は、node1がオンラインに戻ったことを示しています。