目次にジャンプページナビゲーションにジャンプ: 前のページ[アクセスキーp]/次のページ[アクセスキーn]
documentation.suse.com / SUSE Linux Enterprise High Availabilityのドキュメント / 管理ガイド / 設定および管理 / クラスタリソースの管理
適用項目 SUSE Linux Enterprise High Availability 15 SP6

8 クラスタリソースの管理

クラスタ内でリソースを設定したら、クラスタ管理ツールを使用して、リソースを起動、停止、クリーンアップ、削除、または移行します。この章では、リソース管理タスクにHawk2またはcrmshを使用する方法について説明します。

8.1 クラスタリソースの表示

8.1.1 crmshを使用したクラスタリソースの表示

クラスタを管理する際には、コマンドcrm configure showで、クラスタ設定、グローバルオプション、プリミティブなどの現在のCIBオブジェクトを一覧表示します。

# crm configure show
node 178326192: alice
node 178326448: bob
primitive admin_addr IPaddr2 \
       params ip=192.168.2.1 \
       op monitor interval=10 timeout=20
primitive stonith-sbd stonith:external/sbd \
       params pcmk_delay_max=30
property cib-bootstrap-options: \
       have-watchdog=true \
       dc-version=1.1.15-17.1-e174ec8 \
       cluster-infrastructure=corosync \
       cluster-name=hacluster \
       stonith-enabled=true \
       placement-strategy=balanced \
       standby-mode=true
rsc_defaults rsc-options: \
       resource-stickiness=1 \
       migration-threshold=3
op_defaults op-options: \
       timeout=600 \
       record-pending=true

多数のリソースがある場合、showの出力が冗長になります。出力を制限するには、リソースの名前を使用します。たとえば、プリミティブadmin_addrのみのプロパティを一覧表示するには、リソース名をshowに付加します。

# crm configure show admin_addr
primitive admin_addr IPaddr2 \
       params ip=192.168.2.1 \
       op monitor interval=10 timeout=20

ただし、特定のリソースの出力をさらに制限したい場合があります。これは、「フィルタ」を使用して実現できます。フィルタは特定のコンポーネントに出力を制限します。たとえば、ノードのみを一覧表示するには、type:nodeを使用します。

# crm configure show type:node
node 178326192: alice
node 178326448: bob

プリミティブにも興味がある場合には、orオペレータを使用します。

# crm configure show type:node or type:primitive
node 178326192: alice
node 178326448: bob
primitive admin_addr IPaddr2 \
       params ip=192.168.2.1 \
       op monitor interval=10 timeout=20
primitive stonith-sbd stonith:external/sbd \
       params pcmk_delay_max=30

さらに、特定の文字列で開始するオブジェクトを検索するには次の表記を使用します。

# crm configure show type:primitive and 'admin*'
primitive admin_addr IPaddr2 \
       params ip=192.168.2.1 \
       op monitor interval=10 timeout=20

使用可能なすべてのタイプを一覧表示するには、crm configure show type:を入力し、<Tab>キーを押します。Bash補完により、すべてのタイプのリストが表示されます。

8.2 リソースとグループの編集

Hawk2またはcrmshのいずれかを使用してリソースまたはグループを編集できます。

8.2.1 Hawk2を使用したリソースおよびグループの編集

リソースの作成後、必要に応じてパラメータ、操作、またはメタ属性を調整することで、いつでもその設定を編集できます。

手順 8.1: リソースまたはグループの変更
  1. Hawk2にログインします。

    https://HAWKSERVER:7630/
  2. Hawk2の状態画面で、Resources (リソース)リストに移動します。

  3. 操作列で、変更したいリソースまたはグループの横にある下矢印アイコンをクリックして編集を選択します。

    リソース設定画面が開きます。

    Hawk2 - プリミティブリソースの編集
    図 8.1: Hawk2 - プリミティブリソースの編集
  4. 設定画面の上部で、実行する操作を選択できます。

    プリミティブリソースを編集する場合は、次の操作が使用できます。

    • リソースのコピー

    • リソースの名前変更(そのIDの変更)

    • リソースの削除

    グループを編集する場合は、次の操作が使用できます。

    • このグループに追加される新しいプリミティブの作成

    • グループの名前変更(そのIDの変更)

    • グループメンバーを新しい順序にドラッグアンドドロップする

  5. 新たなパラメータ、操作、またはメタ属性を追加するには、空のドロップダウンボックスから項目を選択します。

  6. 操作カテゴリの値を編集するには、それぞれのカテゴリの編集アイコンをクリックして操作の別の値を入力し、適用をクリックします。

  7. 完了したら、リソース設定画面で適用ボタンをクリックして、パラメータ、操作、またはメタ属性の変更内容を確認します。

    画面上部に、アクションが成功したかどうかを示すメッセージが表示されます。

8.2.2 crmshを使用したグループの編集

グループメンバーの順序を変更するには、modgroupサブコマンドからconfigureコマンドを使用します。たとえば、次のコマンドを使用して、Public-IPの前にプリミティブEmailを移動します。

crm(live)configure# modgroup g-mailsvc add Email before Public-IP

グループ(Emailなど)からリソースを削除する場合には、このコマンドを使用します。

crm(live)configure# modgroup g-mailsvc remove Email

8.3 クラスタリソースの起動

クラスタリソースは、起動する前に、正しく設定されているようにします。たとえば、Apacheサーバをクラスタリソースとして使用する場合は、まず、Apacheサーバを設定します。クラスタでそれぞれのリソースを開始する前に、Apache設定を完了します。

注記
注記: クラスタによって管理されるサービスには介入しないでください

High Availabilityソフトウェアでリソースを管理しているときに、リソースを他の方法(クラスタ外で、たとえば、手動、ブート、再起動など)で開始したり、停止したりしてはいけません。High Availabilityソフトウェアが、すべてのサービスの開始または停止アクションを実行します。

ただし、サービスが適切に設定されているか確認したい場合は手動で開始しますが、High Availabilityソフトウェアが起動する前に停止してください。

現在クラスタで管理されているリソースへの介入については、まず、リソースをmaintenance modeに設定します。詳細については、手順28.5「リソースをHawk2を使用して保守モードにする」を参照してください。

Hawk2またはcrmshのいずれかを使用してクラスタリソースを開始できます。

8.3.1 Hawk2を使用したクラスタリソースの開始

Hawk2でリソースを作成するときには、target-roleメタ属性でその初期状態を設定することができます。その値をstoppedに設定した場合、リソースは、作成後、自動的に開始することはありません。

手順 8.2: 新しいリソースの起動
  1. Hawk2にログインします。

    https://HAWKSERVER:7630/
  2. 左のナビゲーションバーから、監視機能 › 状態の順に選択します。Resources (リソース)のリストには状態も表示されます。

  3. 起動するリソースを選択します。その操作列で、開始アイコンをクリックします。継続するには、表示されるメッセージに対して確認します。

リソースが開始すると、Hawk2はすぐにリソースの状態を緑に変え、それがどのノードで実行されているかを表示します。

8.3.2 crmshを使用したクラスタリソースの開始

新しいクラスタリソースを開始するには、そのIDが必要です。

手順 8.3: crmshを使用したクラスタリソースの開始
  1. rootとしてログインし、crm対話型シェルを開始します。

    # crm
  2. リソースレベルに切り替えます。

    crm(live)# resource
  3. startでリソースを開始し、<Tab>キーを押してすべての既知のリソースを表示します。

    crm(live)resource# start ID

8.4 クラスタリソースの停止

8.4.1 crmshを使用したクラスタリソースの停止

1つ以上の既存のクラスタリソースを停止するには、各IDが必要です。

手順 8.4: crmshを使用したクラスタリソースの停止
  1. rootとしてログインし、crm対話型シェルを開始します。

    # crm
  2. リソースレベルに切り替えます。

    crm(live)# resource
  3. stopでリソースを停止し、<Tab>キーを押してすべての既知のリソースを表示します。

    crm(live)resource# stop ID

    複数のリソースを一度に停止できます。

    crm(live)resource# stop ID1 ID2 ...

8.5 クラスタリソースのクリーンアップ

リソースは、失敗した場合は自動的に再起動しますが、失敗のたびにリソースの失敗回数が増加します。

リソースに対してmigration-thresholdが設定されていた場合、失敗回数が移行しきい値に達すると、そのリソースはそのノードでは実行されなくなります。

デフォルトでは、失敗回数は自動的にリセットされません。失敗回数を自動的にリセットする設定にするには、リソースに対してfailure-timeoutオプションを設定します。また、Hawk2またはcrmshのいずれかを使用して失敗回数を手動でリセットできます。

8.5.1 Hawk2を使用したクラスタリソースのクリーンアップ

手順 8.5: リソースのクリーンアップ
  1. Hawk2にログインします。

    https://HAWKSERVER:7630/
  2. 左のナビゲーションバーから、状態を選択します。Resources (リソース)のリストには状態も表示されます。

  3. クリーンアップするリソースに移動します。操作列で、下矢印ボタンをクリックしてクリーンアップを選択します。継続するには、表示されるメッセージに対して確認します。

    これにより、コマンドcrm resource cleanupが実行され、すべてのノードでリソースがクリーンアップされます。

8.5.2 crmshを使用したクラスタリソースのクリーンアップ

手順 8.6: crmshを使用したリソースのクリーンアップ
  1. シェルを開いて、rootユーザとしてログインします。

  2. すべてのリソースのリストを取得します。

    # crm resource status
    Full List of Resources
       * admin-ip      (ocf:heartbeat:IPaddr2):    Started
       * stonith-sbd   (stonith:external/sbd):     Started
       * Resource Group: dlm-clvm:
         * dlm:        (ocf:pacemaker:controld)    Started
         * clvm:       (ocf:heartbeat:lvmlockd)    Started
  3. リソースの失敗回数を表示します。

    # crm resource failcount RESOURCE show NODE

    たとえば、ノードaliceでリソースdlmの失敗回数を表示するには次のようにします。

    # crm resource failcount dlm show alice
    scope=status name=fail-count-dlm value=2
  4. リソースをクリーンアップします。

    # crm resource cleanup RESOURCE

    このコマンドによって、すべてのノードのリソースがクリーンアップされます。リソースがグループの一部である場合、crmshは、グループのその他のリソースもクリーンアップします。

8.6 クラスタリソースの削除

クラスタからリソースを削除するには、以下のHawk2またはcrmshいずれかの手順に従って、設定エラーを回避します。

8.6.1 Hawk2を使用したクラスタリソースの削除

手順 8.7: クラスタリソースの削除
  1. Hawk2にログインします。

    https://HAWKSERVER:7630/
  2. 手順8.5「リソースのクリーンアップ」の説明に従って、すべてのノードでリソースをクリーンアップします。

  3. リソースを停止します。

    1. 左のナビゲーションバーから、監視機能 › 状態の順に選択します。Resources (リソース)のリストには状態も表示されます。

    2. 操作列で、リソースの横にある停止ボタンをクリックします。

    3. 継続するには、表示されるメッセージに対して確認します。

      リソースが停止すると、状態列に変更が反映されます。

  4. リソースを削除します。

    1. 左のナビゲーションバーから、環境設定 › 設定の編集の順に選択します。

    2. Resources (リソース)のリストで、それぞれのリソースに移動します。操作列で、リソースの横にある削除アイコンをクリックします。

    3. 継続するには、表示されるメッセージに対して確認します。

8.6.2 crmshを使用したクラスタリソースの削除

手順 8.8: crmshを使用したクラスタリソースの削除
  1. rootとしてログインし、crm対話型シェルを開始します。

    # crm
  2. リソースのリストを取得します。

    crm(live)# resource status
    Full List of Resources:
      * admin-ip     (ocf:heartbeat:IPaddr2):     Started
      * stonith-sbd  (stonith:external/sbd):      Started
      * nfsserver    (ocf:heartbeat:nfsserver):   Started
  3. 削除するリソースを停止します。

    crm(live)# resource stop RESOURCE
  4. リソースを削除します。

    crm(live)# configure delete RESOURCE

8.7 クラスタリソースの移行

ソフトウェアまたはハードウェアの障害時には、クラスタは定義可能な特定のパラメータ(たとえばマイグレーションしきい値やリソースの固着性など)に従って、リソースを自動的にフェールオーバー(移行)させます。クラスタの別のノードにリソースを手動で移行することもできます。または、現在のノードからリソースを移動し、クラスタに配置を決めさせることもできます。

Hawk2またはcrmshのいずれかを使用してクラスタリソースを移行できます。

8.7.1 Hawk2を使用したクラスタリソースの移行

手順 8.9: リソースを手動で移行する
  1. Hawk2にログインします。

    https://HAWKSERVER:7630/
  2. 左のナビゲーションバーから、監視機能 › 状態の順に選択します。Resources (リソース)のリストには状態も表示されます。

  3. Resources (リソース)のリストで、それぞれのリソースを選択します。

  4. 操作列で、下矢印ボタンをクリックして移行を選択します。

  5. 開くウィンドウには、次の選択肢があります。

    • Away from current node (現在のノードから離れる): これによって現在のノードに対して-INFINITYスコアによる場所の制約が作成されます。

    • または、別のノードにリソースを移動できます。これによって移動先ノードに対してINFINITYスコアの場所の制約が作成されます。

  6. 選択内容を確認します。

リソースを再び元に戻すには、次の手順に従います。

手順 8.10: リソースの移行解除
  1. Hawk2にログインします。

    https://HAWKSERVER:7630/
  2. 左のナビゲーションバーから、監視機能 › 状態の順に選択します。Resources (リソース)のリストには状態も表示されます。

  3. Resources (リソース)のリストで、それぞれのリソースに移動します。

  4. 操作列で、下矢印ボタンをクリックして消去を選択します。継続するには、表示されるメッセージに対して確認します。

    これによって、crm_resource  --clearコマンドが使用されます。リソースは元の場所に戻ることができます。あるいは現在の場所に残ることもあります(リソースの固着性によって)。

詳細については、https://www.clusterlabs.org/pacemaker/doc/から入手できる『Pacemaker Explained』を参照してください。「Resource Migration」セクションを参照してください。

8.7.2 crmshを使用したクラスタリソースの移行

この作業を行うには、moveコマンドを使用します。たとえば、リソースipaddress1bobというクラスタノードに移行するには、次のコマンドを使用します。

# crm resource
 crm(live)resource# move ipaddress1 bob

8.8 タグの使用によるリソースのグループ化

タグは、コロケーションの作成や関係の順序付けを行わずに、複数のリソースを直ちに参照する方法です。これは、概念的に関連するリソースをグループ化するのに役立つ場合があります。たとえば、データベースに関連するいくつかのリソースがある場合、databasesというタグを作成し、データベースに関連するすべてのリソースをこのタグに追加します。これにより、1つのコマンドでそれらすべてのリソースを停止または起動できます。

タグは制約でも使用できます。たとえば、次の場所制約loc-db-preferは、databasesでタグ付けしたリソースのセットに適用されます。

location loc-db-prefer databases 100: alice

Hawk2またはcrmshのいずれかを使用してタグを作成できます。

8.8.1 Hawk2でタグを使用してリソースをグループ化する

手順 8.11: タグの追加
  1. Hawk2にログインします。

    https://HAWKSERVER:7630/
  2. 左のナビゲーションバーから、環境設定 ›  Add Resource (リソースの追加) › タグの順に選択します。

  3. タグIDに固有のIDを入力します。

  4. オブジェクトリストから、このタグで参照するリソースを選択します。

  5. 作成をクリックして、設定を完了します。画面上部に、アクションが成功したかどうかを示すメッセージが表示されます。

Hawk2 - タグ
図 8.2: Hawk2 - タグ

8.8.2 crmshでタグを使用してリソースをグループ化する

たとえば、データベースに関連するいくつかのリソースがある場合、databasesというタグを作成し、データベースに関連するすべてのリソースをこのタグに追加します。

# crm configure tag databases: db1 db2 db3

これにより、1つのコマンドですべてを起動できます。

# crm resource start databases

同様に、すべてを停止することもできます。

# crm resource stop databases