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を使用したリソースおよびグループの編集 #
リソースの作成後、必要に応じてパラメータ、操作、またはメタ属性を調整することで、いつでもその設定を編集できます。
Hawk2にログインします。
https://HAWKSERVER:7630/
Hawk2の
画面で、 リストに移動します。リソース設定画面が開きます。
図 8.1: Hawk2 - プリミティブリソースの編集 #設定画面の上部で、実行する操作を選択できます。
プリミティブリソースを編集する場合は、次の操作が使用できます。
リソースのコピー
リソースの名前変更(そのIDの変更)
リソースの削除
グループを編集する場合は、次の操作が使用できます。
このグループに追加される新しいプリミティブの作成
グループの名前変更(そのIDの変更)
グループメンバーを新しい順序にドラッグアンドドロップする
新たなパラメータ、操作、またはメタ属性を追加するには、空のドロップダウンボックスから項目を選択します。
完了したら、リソース設定画面で
ボタンをクリックして、パラメータ、操作、またはメタ属性の変更内容を確認します。画面上部に、アクションが成功したかどうかを示すメッセージが表示されます。
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
に設定した場合、リソースは、作成後、自動的に開始することはありません。
Hawk2にログインします。
https://HAWKSERVER:7630/
左のナビゲーションバーから、
› の順に選択します。 のリストには も表示されます。起動するリソースを選択します。その
列で、 アイコンをクリックします。継続するには、表示されるメッセージに対して確認します。
リソースが開始すると、Hawk2はすぐにリソースの
を緑に変え、それがどのノードで実行されているかを表示します。8.3.2 crmshを使用したクラスタリソースの開始 #
新しいクラスタリソースを開始するには、そのIDが必要です。
root
としてログインし、crm
対話型シェルを開始します。#
crm
リソースレベルに切り替えます。
crm(live)#
resource
start
でリソースを開始し、<Tab>キーを押してすべての既知のリソースを表示します。crm(live)resource#
start ID
8.4 クラスタリソースの停止 #
8.4.1 crmshを使用したクラスタリソースの停止 #
1つ以上の既存のクラスタリソースを停止するには、各IDが必要です。
root
としてログインし、crm
対話型シェルを開始します。#
crm
リソースレベルに切り替えます。
crm(live)#
resource
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を使用したクラスタリソースのクリーンアップ #
Hawk2にログインします。
https://HAWKSERVER:7630/
左のナビゲーションバーから、
を選択します。 のリストには も表示されます。クリーンアップするリソースに移動します。
列で、下矢印ボタンをクリックして を選択します。継続するには、表示されるメッセージに対して確認します。これにより、コマンド
crm resource cleanup
が実行され、すべてのノードでリソースがクリーンアップされます。
8.5.2 crmshを使用したクラスタリソースのクリーンアップ #
シェルを開いて、
root
ユーザとしてログインします。すべてのリソースのリストを取得します。
#
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リソースの失敗回数を表示します。
#
crm resource failcount RESOURCE show NODE
たとえば、ノード
alice
でリソースdlm
の失敗回数を表示するには次のようにします。#
crm resource failcount dlm show alice
scope=status name=fail-count-dlm value=2リソースをクリーンアップします。
#
crm resource cleanup RESOURCE
このコマンドによって、すべてのノードのリソースがクリーンアップされます。リソースがグループの一部である場合、crmshは、グループのその他のリソースもクリーンアップします。
8.6 クラスタリソースの削除 #
クラスタからリソースを削除するには、以下のHawk2またはcrmshいずれかの手順に従って、設定エラーを回避します。
8.6.1 Hawk2を使用したクラスタリソースの削除 #
Hawk2にログインします。
https://HAWKSERVER:7630/
手順8.5「リソースのクリーンアップ」の説明に従って、すべてのノードでリソースをクリーンアップします。
リソースを停止します。
左のナビゲーションバーから、
› の順に選択します。 のリストには も表示されます。継続するには、表示されるメッセージに対して確認します。
リソースが停止すると、
列に変更が反映されます。
リソースを削除します。
左のナビゲーションバーから、
› の順に選択します。継続するには、表示されるメッセージに対して確認します。
8.6.2 crmshを使用したクラスタリソースの削除 #
root
としてログインし、crm
対話型シェルを開始します。#
crm
リソースのリストを取得します。
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削除するリソースを停止します。
crm(live)#
resource stop RESOURCE
リソースを削除します。
crm(live)#
configure delete RESOURCE
8.7 クラスタリソースの移行 #
ソフトウェアまたはハードウェアの障害時には、クラスタは定義可能な特定のパラメータ(たとえばマイグレーションしきい値やリソースの固着性など)に従って、リソースを自動的にフェールオーバー(移行)させます。クラスタの別のノードにリソースを手動で移行することもできます。または、現在のノードからリソースを移動し、クラスタに配置を決めさせることもできます。
Hawk2またはcrmshのいずれかを使用してクラスタリソースを移行できます。
8.7.1 Hawk2を使用したクラスタリソースの移行 #
Hawk2にログインします。
https://HAWKSERVER:7630/
左のナビゲーションバーから、
› の順に選択します。 のリストには も表示されます。開くウィンドウには、次の選択肢があります。
-INFINITY
スコアによる場所の制約が作成されます。または、別のノードにリソースを移動できます。これによって移動先ノードに対して
INFINITY
スコアの場所の制約が作成されます。
選択内容を確認します。
リソースを再び元に戻すには、次の手順に従います。
Hawk2にログインします。
https://HAWKSERVER:7630/
左のナビゲーションバーから、
› の順に選択します。 のリストには も表示されます。これによって、
crm_resource
--clear
コマンドが使用されます。リソースは元の場所に戻ることができます。あるいは現在の場所に残ることもあります(リソースの固着性によって)。
詳細については、https://www.clusterlabs.org/pacemaker/doc/から入手できる『Pacemaker Explained』を参照してください。「Resource Migration」セクションを参照してください。
8.7.2 crmshを使用したクラスタリソースの移行 #
この作業を行うには、move
コマンドを使用します。たとえば、リソースipaddress1
をbob
というクラスタノードに移行するには、次のコマンドを使用します。
#
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でタグを使用してリソースをグループ化する #
Hawk2にログインします。
https://HAWKSERVER:7630/
左のナビゲーションバーから、
› › の順に選択します。
8.8.2 crmshでタグを使用してリソースをグループ化する #
たとえば、データベースに関連するいくつかのリソースがある場合、databases
というタグを作成し、データベースに関連するすべてのリソースをこのタグに追加します。
#
crm configure tag databases: db1 db2 db3
これにより、1つのコマンドですべてを起動できます。
#
crm resource start databases
同様に、すべてを停止することもできます。
#
crm resource stop databases