第16章 クラスターリソースの管理

本セクションでは、クラスターリソースを管理するのに使用できる様々なコマンドを説明します。

16.1. 設定されているリソースの表示

設定されているリソースの一覧を表示する場合は、次のコマンドを使用します。

pcs resource status

たとえば、システムを設定していたリソースの名前が VirtualIPWebSite の場合は、pcs resource show コマンドを実行すると次のような出力が得られます。

# pcs resource status
 VirtualIP	(ocf::heartbeat:IPaddr2):	Started
 WebSite	(ocf::heartbeat:apache):	Started

設定したリソースの一覧と、そのリソースに設定したパラメーターを表示する場合は、以下のように、pcs resource config コマンドの --full オプションを使用します。

# pcs resource config
 Resource: VirtualIP (type=IPaddr2 class=ocf provider=heartbeat)
  Attributes: ip=192.168.0.120 cidr_netmask=24
  Operations: monitor interval=30s
 Resource: WebSite (type=apache class=ocf provider=heartbeat)
  Attributes: statusurl=http://localhost/server-status configfile=/etc/httpd/conf/httpd.conf
  Operations: monitor interval=1min

リソースに設定されているパラメーターを表示する場合は、次のコマンドを使用します。

pcs resource config resource_id

たとえば、次のコマンドは、現在設定されているリソース VirtualIP のパラメーターを表示します。

# pcs resource config VirtualIP
 Resource: VirtualIP (type=IPaddr2 class=ocf provider=heartbeat)
  Attributes: ip=192.168.0.120 cidr_netmask=24
  Operations: monitor interval=30s

16.2. リソースパラメーターの修正

設定されているリソースのパラメーターを変更する場合は、次のコマンドを使用します。

pcs resource update resource_id [resource_options]

以下のコマンドシーケンスでは、VirtualIP リソースに設定したパラメーターの初期値、ip パラメーターの値を変更するコマンド、変更されたパラメーター値を示しています。

# pcs resource config VirtualIP
 Resource: VirtualIP (type=IPaddr2 class=ocf provider=heartbeat)
  Attributes: ip=192.168.0.120 cidr_netmask=24
  Operations: monitor interval=30s
# pcs resource update VirtualIP ip=192.169.0.120
# pcs resource config VirtualIP
 Resource: VirtualIP (type=IPaddr2 class=ocf provider=heartbeat)
  Attributes: ip=192.169.0.120 cidr_netmask=24
  Operations: monitor interval=30s
注記

pcs resource update コマンドを使用してリソースの動作を更新すると、特に呼び出しのないオプションはデフォルト値にリセットされます。

16.3. クラスターリソースの障害ステータスの解除

リソースに障害が発生すると、クラスターの状態を表示するときに障害メッセージが表示されます。このリソースを解決する場合は、pcs resource cleanup コマンドで障害状態を消去できます。このコマンドはリソースの状態と failcount をリセットし、リソースの動作履歴を消去して現在の状態を再検出するようにクラスターに指示します。

次のコマンドは、resource_id で指定したリソースをクリーンアップします。

pcs resource cleanup resource_id

resource_id を指定しないと、このコマンドは、全リソースのリソース状態と failcount をリセットします。

pcs resource cleanup コマンドは、失敗したアクションとして表示されるリソースのみを検証します。全ノードの全リソースを調査するには、次のコマンドを入力します。

pcs resource refresh

デフォルトでは、pcs resource refresh コマンドは、リソースのステータスが分かっているノードだけを検証します。ステータスが分からないすべてのリソースを検証するには、以下のコマンドを実行します。

pcs resource refresh --full

16.4. クラスター内のリソースの移動

Pacemaker は、リソースを別のノードに移動するように設定し、必要に応じて手動でリソースを移動するように設定する様々なメカニズムを提供します。

「クラスターリソースの手動による移動」に従って、pcs resource move コマンドと pcs resource relocate コマンドで、クラスターのリソースを手動で移動します。

このコマンドの他にも、「クラスターリソースの有効化、無効化、および禁止」に従ってリソースを有効、無効、および禁止にすることで、クラスターリソースの挙動を制御することもできます。

失敗した回数が、定義した値を超えると、新しいノードに移動し、外部接続が失われた時にリソースを移動するようにクラスターを設定できます。

16.4.1. 障害発生によるリソースの移動

リソースの作成時に、リソースに migration-threshold オプションを設定し、定義した回数だけ障害が発生した場合にリソースが新しいノードに移動されるように設定できます。このしきい値に一度到達すると、このノードでは、以下が行われるまで、障害が発生したリソースを実行できなくなります。

  • 管理者が pcs resource cleanup コマンドを使用して、リソースの failcount を手動でリセットします。
  • リソースの failure-timeout 値に到達します。

デフォルトで、migration-threshold の値が INFINITY に設定されています。INFINITY は、内部的に非常に大きな有限数として定義されます。0 にすると、migration-threshold 機能が無効になります。

注記

リソースの migration-threshold を設定するのと、リソースの状態を維持しながら別の場所に移動させるようにリソースの移動を設定するのは同じではありません。

次の例では、dummy_resource リソースに、移行しきい値 10 を追加します。この場合は、障害が 10 回発生すると、そのリソースが新しいノードに移動します。

# pcs resource meta dummy_resource migration-threshold=10

次のコマンドを使用すると、クラスター全体にデフォルトの移行しきい値を追加できます。

# pcs resource defaults migration-threshold=10

リソースの現在の障害ステータスと制限を確認するには、pcs resource failcount show コマンドを使用します。

移行しきい値の概念には、「リソース起動の失敗」と「リソース停止の失敗」の 2 つの例外があります。クラスタープロパティー start-failure-is-fataltrue に設定された場合 (デフォルト) は、起動の失敗により failcountINFINITY に設定され、リソースが常に即座に移動するようになります。

停止時の失敗は、起動時とは若干異なり、極めて重大となります。リソースの停止に失敗し STONITH が有効になっていると、リソースを別のノードで起動できるように、クラスターによるノードのフェンスが行われます。STONITH を有効にしていない場合はクラスターに続行する手段がないため、別のノードでのリソース起動は試行されません。ただし、障害のタイムアウト後に再度停止が試行されます。

16.4.2. 接続状態の変更によるリソースの移動

以下の 2 つのステップに従って、外部の接続が失われた場合にリソースが移動するようにクラスターを設定します。

  1. ping リソースをクラスターに追加します。ping リソースは、同じ名前のシステムユーティリティーを使用して、マシン (DNS ホスト名または IPv4/IPv6 アドレスによって指定される一覧) にアクセス可能であるかをテストし、その結果を使用して pingd と呼ばれるノード属性を維持します。
  2. 接続が失われたときに別のノードにリソースを移動させる、リソース場所制約を設定します。

表10.1「リソースエージェント識別子」 には、ping リソースに設定できるプロパティーを示します。

表16.1 ping リソースのプロパティー

フィールド説明

dampen

今後の変更が発生するまでに待機する (弱める) 時間。これにより、クラスターノードが、わずかに異なる時間に接続が失われたことに気が付いたときに、クラスターでリソースがバウンスするのを防ぎます。

multiplier

接続された ping ノードの数は、ノードの数にこの値を掛けて、スコアを取得します。複数の ping ノードが設定された場合に便利です。

host_list

現在の接続状態を判断するために接続するマシン。使用できる値には、解決可能な DNS ホスト名、IPv4 アドレス、および IPv6 アドレスが含まれます。ホストリストのエントリーはスペースで区切られます。

次のコマンド例は、gateway.example.com への接続を検証する ping リソースを作成します。実際には、ネットワークゲートウェイやルーターへの接続を検証します。リソースがすべてのクラスターノードで実行されるように、ping リソースをクローンとして設定します。

# pcs resource create ping ocf:pacemaker:ping dampen=5s multiplier=1000 host_list=gateway.example.com clone

以下の例は、既存のリソース Webserver に場所制約ルールを設定します。これにより、Webserver リソースが現在実行しているホストが gateway.example.com へ ping できない場合に、Webserver リソースを gateway.example.com へ ping できるホストに移動します。

# pcs constraint location Webserver rule score=-INFINITY pingd lt 1 or not_defined pingd
 Module included in the following assemblies:
//
// <List assemblies here, each on a new line>
// rhel-8-docs/enterprise/assemblies/assembly_managing-cluster-resources.adoc

16.5. 監視操作の無効化

定期的な監視を停止する最も簡単な方法は、監視を削除することです。ただし、一時的に無効にしたい場合もあります。このような場合は、操作の定義に enabled="false" を追加します。監視操作を再度有効にするには、操作の定義に enabled="true" を設定します。

pcs resource update コマンドを使用してリソースの動作を更新すると、特に呼び出しのないオプションはデフォルト値にリセットされます。たとえば、カスタムのタイムアウト値 600 を使用して監視操作を設定している場合に以下のコマンドを実行すると、タイムアウト値がデフォルト値の 20 にリセットされます( pcs resource op defaults コマンドを使用しても、デフォルト値を設定できます)。

# pcs resource update resourceXZY op monitor enabled=false
# pcs resource update resourceXZY op monitor enabled=true

このオプションの元の値 600 を維持するために、監視操作に戻す場合は、以下の例のように、その値を指定する必要があります。

# pcs resource update resourceXZY op monitor timeout=600 enabled=true

16.6. クラスターリソースタグの設定および管理 (RHEL 8.3 以降)

Red Hat Enterprise Linux 8.3 の時点で、pcs コマンドを使用してクラスターリソースをタグ付けできます。これにより、1 つのコマンドで指定のリソースセットを有効、無効化、管理解除できます。

16.6.1. カテゴリーごとの管理のためのクラスターリソースのタグ付け

以下の手順では、2 つのリソースをリソースタグでタグ付けし、タグ付けされたリソースを無効にします。この例では、タグ付けする既存のリソースの名前は d-01 および d-02 です。

  1. special-resources という名前のタグ (d-01 および d- 02) を作成します。

    [root@node-01]# pcs tag create special-resources d-01 d-02
  2. リソースタグの設定を表示します。

    [root@node-01]# pcs tag config
    special-resources
      d-01
      d-02
  3. special-resources タグでタグ付けされたすべてのリソースを無効にします。

    [root@node-01]# pcs resource disable special-resources
  4. リソースの状態を表示して、d-01 および d-02 リソースが無効になっていることを確認します。

    [root@node-01]# pcs resource
      * d-01        (ocf::pacemaker:Dummy): Stopped (disabled)
      * d-02        (ocf::pacemaker:Dummy): Stopped (disabled)

pcs resource disable コマンドに加え、pcs resource enablepcs resource managepcs resource unmanage コマンドが、タグ付きリソースの管理に対応しています。

リソースタグを作成した後に、以下を実行します。

  • pcs tag delete コマンドを使用して、リソースタグを削除できます。
  • pcs tag update コマンドを使用して、既存のリソースタグのリソースタグ設定を変更することができます。

16.6.2. タグ付けされたクラスターリソースの削除

pcs コマンドを使用して、タグ付けされたクラスターリソースを削除することはできません。タグ付けられたリソースを削除するには、以下の手順に従います。

  1. リソースタグを削除します。

    1. 以下のコマンドは、そのタグを持つすべてのリソースからリソースタグ special-resources を削除します。

      [root@node-01]# pcs tag remove special-resources
      [root@node-01]# pcs tag
       No tags defined
    2. 以下のコマンドは、リソースタグ special-resources をリソース d-01 からのみ削除します。

      [root@node-01]# pcs tag update special-resources remove d-01
  2. リソースを削除します。

    [root@node-01]# pcs resource delete d-01
    Attempting to stop: d-01... Stopped

このページには機械翻訳が使用されている場合があります (詳細はこちら)。