28 保守タスクの実行 #
クラスタノードで保守タスクを実行するには、そのノードで実行中のリソースを停止し、それらを移動するか、あるいはそのノードをシャットダウンするか再起動する必要がある場合があります。また、クラスタからリソースの制御を一時的に引き継ぐか、またはリソースを実行中のままにしてクラスタサービスを停止することも必要な場合があります。
この章では、負の影響を及ぼすことなくクラスタノードを手動で切断する方法について説明します。また、クラスタスタックが保守タスクを実行するために提供するさまざまなオプションの概要についても説明します。
28.1 保守作業の準備と終了 #
以下のコマンドを使用して、クラスタのステータスを開始、停止、または表示します。
crm cluster start [--all]
1つのノードまたはすべてのノードでクラスタサービスを開始します
crm cluster stop [--all]
1つのノードまたはすべてのノードでクラスタサービスを停止します
crm cluster restart [--all]
1つのノードまたはすべてのノードでクラスタサービスを再開します
crm cluster status
クラスタスタックのステータスを表示します
先に示したコマンドは、ユーザ、root
、または必要な権限を持つユーザとして実行します。
クラスタノードをシャットダウンまたは再起動する(またはノード上でクラスタサービスを停止する)場合、次のプロセスがトリガされます。
ノード上で実行されているリソースは停止されるか、ノードから移動します。
リソースの停止が失敗したりタイムアウトしたりする場合、STONITHメカニズムはそのノードをフェンシングし、これをシャットダウンします。
テストまたは保守作業を実行する必要がある場合は、以下の一般的な手順に従います。
従わない場合、リソースが順序だった方法で起動できない、クラスタノード間でCIBが同期されない、データ損失などの、望ましくない負の影響が及ぼされるリスクがあります。
開始する前に、28.2項 「保守タスクのためのさまざまなオプション」から適切なオプションを選択します。
Hawk2またはcrmshを使用してこのオプションを適用します。
保守タスクまたはテストを実行します。
終了したら、リソース、ノードまたはクラスタを「通常」の操作状態に戻します。
28.2 保守タスクのためのさまざまなオプション #
Pacemakerは、システム保守を実行するために以下のオプションを提供します。
- クラスタを保守モードにする
グローバルクラスタプロパティ
maintenance-mode
により、すべてのリソースを瞬時に保守状態にします。クラスタは、リソースの監視を停止し、その状態を認識しなくなります。Pacemakerによるリソース管理「のみ」が無効になっています。CorosyncおよびSBDは変わらず機能しています。クラスタリソースに関連するタスクには、保守モードを使用します。ストレージやネットワークなどのインフラストラクチャに関連するタスクで最も安全な方法は、クラスタサービスを完全に停止することです。クラスタ全体のクラスタサービスを停止するを参照してください。- クラスタ全体のクラスタサービスを停止する
すべてのノードでクラスタサービスを一度に停止すると、各ノードを1つずつシャットダウンした場合に発生するリソースの大量マイグレーションを回避しながら、クラスタをシャットダウンできます。マイグレート先のノードがないため、すべてのリソースが停止します。
- ノードを保守モードにする
このオプションにより、特定のノードで実行されているすべてのリソースを瞬時に保守状態にすることができます。クラスタは、リソースの監視を停止し、その状態を認識しなくなります。
- ノードをスタンバイモードにする
スタンバイモードのノードはリソースを実行できなくなります。ノード上で実行されているすべてのリソースは移動するか停止されます(他のノードがリソースを実行する資格がない場合)。また、ノード上のすべての監視操作は停止されます(
role="Stopped"
に設定された操作を除く)。別のノードで実行されているサービスを提供し続けながら、クラスタ内の1台のノードを停止する必要がある場合は、このオプションを使用できます。
- ノードでクラスタサービスを停止する
このオプションは、単一ノード上のすべてのクラスタサービスを停止します。ノード上で実行されているすべてのリソースは移動するか停止されます(他のノードがリソースを実行する資格がない場合)。リソースの停止が失敗したりタイムアウトする場合、ノードはフェンシングされます。
- リソースを保守モードにする
リソースに対してこのモードが有効な場合、リソースの監視操作はトリガされません。
このリソースで管理されるサービスに手動で介入する必要があり、その間にリソースの監視操作をクラスタに実行させない場合は、このオプションを使用します。
- リソースを非管理対象モードにする
is-managed
メタ属性により、リソースを一時的にクラスタスタックによって管理されている状態から「解放」することができます。これは、このリソースによって管理されるサービスに手動で介入できることを意味します(たとえば、コンポーネントを調整するなど)。ただし、クラスタはリソースの「監視」と障害の報告を継続して行います。クラスタによるリソースの「監視」を停止したい場合は、代わりにリソース単位の保守モードを使用します(リソースを保守モードにするを参照してください)。
28.3 クラスタを保守モードにする #
クラスタを保守モードにすると、Pacemakerによるリソース管理のみが無効になります。CorosyncおよびSBDは変わらず機能しています。保守タスクによっては、これがフェンス操作につながる可能性があります。
クラスタリソースに関連するタスクには、保守モードを使用します。ストレージやネットワークなどのインフラストラクチャに関連するタスクで最も安全な方法は、クラスタサービスを完全に停止することです。28.4項 「クラスタ全体のクラスタサービスを停止する」を参照してください。
クラスタをcrm shell上で保守モードにするには、次のコマンドを使用します。
#
crm maintenance on
保守作業が完了した後で、クラスタを通常のモードに戻すには、次のコマンドを使用します。
#
crm maintenance off
5.4.2項 「ログイン」で説明したように、Webブラウザを起動してクラスタにログインします。
左のナビゲーションバーで、
› を選択します。空のドロップダウンボックスから
属性を選択します。maintenance-mode
ドロップダウンボックスから、 を選択します。クラスタ全体の保守タスクが終了したら、
maintenance-mode
ドロップダウンボックスから を選択し、 をクリックします。この時点から、High Availabilityはクラスタ管理をもう一度引き継ぎます。
28.4 クラスタ全体のクラスタサービスを停止する #
すべてのノードで一度にクラスタサービスを停止するには、次のコマンドを使用します。
#
crm cluster stop --all
保守作業が完了した後でクラスタサービスを再開するには、次のコマンドを使用します。
#
crm cluster start --all
--all
オプションだけでは、アプリケーションレベルでのリソース停止障害により予期しないフェンシングがトリガされる可能性があるため、クラスタの正常なシャットダウンは保証されません。アプリケーションが重要な場合は、クラスタ全体のクラスタサービスを停止する前に、アプリケーションを停止することを検討してください。
28.5 ノードを保守モードにする #
ノードをcrm shell上で保守モードにするには、次のコマンドを使用します。
#
crm node maintenance NODENAME
保守作業が完了した後で、ノードを通常のモードに戻すには、次のコマンドを使用します。
#
crm node ready NODENAME
5.4.2項 「ログイン」で説明したように、Webブラウザを起動してクラスタにログインします。
左のナビゲーションバーで、
を選択します。個々のノードのビューのいずれかで、ノードの隣のレンチアイコンをクリックして、[
]を選択します。保守タスクが終了したら、ノードの横にあるレンチアイコンをクリックして、
を選択します。
28.6 ノードをスタンバイモードにする #
ノードをcrm shell上でスタンバイモードにするには、次のコマンドを使用します。
#
crm node standby NODENAME
保守作業が完了した後でノードをオンライン状態に戻すには、次のコマンドを使用します。
#
crm node online NODENAME
5.4.2項 「ログイン」で説明したように、Webブラウザを起動してクラスタにログインします。
左のナビゲーションバーで、
を選択します。個々のノードのビューのいずれかで、ノードの隣のレンチアイコンをクリックして、
を選択します。ノードの保守タスクを完了します。
スタンバイモードを無効化するには、そのノードの隣のレンチアイコンをクリックして
を選択します。
28.7 ノードでクラスタサービスを停止する #
ノードをシャットダウンまたは再起動する前に、順序だった方法でノードのサービスをオフにできます。これにより、サービスはクラスタサービスのシャットダウンタイムアウトによって制限されることなく、ノードをオフに移行できます。
再起動またはシャットダウンするノードで、
root
または同等な権限でログインします。ノードを
standby
モードにします。#
crm node standby
デフォルトでは、ノードは再起動後も
standby
モードのままになります。または、crm node standby reboot
を使用して、ノードを自動的にオンラインに戻るように設定することもできます。以下を使用してクラスタの状態を確認します。
#
crm status
standby
モード状態の各ノードが示されます。[...] Node bob: standby [...]
そのノードでクラスタサービスを停止します。
#
crm cluster stop
ノードを再起動します。
ノードが再びクラスタに参加しているかどうかを確認するには:
ノードの再起動後に、ノードに再びログインします。
クラスタサービスが開始されているかどうかを確認します。
#
crm cluster status
これには少し時間がかかることがあります。クラスタサービスが自動的に再開されない場合は、手動で開始します。
#
crm cluster start
以下を使用してクラスタの状態を確認します。
#
crm status
ノードがまだ
standby
モードである場合、オンラインに戻します。#
crm node online
28.8 リソースを保守モードにする #
リソースをcrm shell上で保守モードにするには、次のコマンドを使用します。
#
crm resource maintenance RESOURCE_ID true
保守作業が完了した後で、リソースを通常のモードに戻すには次のコマンドを使用します。
#
crm resource maintenance RESOURCE_ID false
5.4.2項 「ログイン」で説明したように、Webブラウザを起動してクラスタにログインします。
左のナビゲーションバーで、
を選択します。保守モードまたは非管理対象モードにするリソースを選択し、そのリソースの隣のレンチアイコンをクリックして、[
]を選択します。空のドロップダウンリストから
属性を選択し、プラスアイコンをクリックして追加します。maintenance
の隣のチェックボックスをオンにして、maintenance属性をyes
に設定します。変更内容を確認します。
該当するリソースの保守作業が完了したら、そのリソースの
maintenance
属性の隣のチェックボックスをオフにします。リソースは、この時点から再びHigh Availabilityソフトウェアによって管理されます。
28.9 リソースを非管理対象モードにする #
リソースをcrm shell上で非管理対象モードにするには、次のコマンドを使用します。
#
crm resource unmanage RESOURCE_ID
保守作業が完了した後で再び管理対象モードにするには、次のコマンドを使用します。
#
crm resource manage RESOURCE_ID
5.4.2項 「ログイン」で説明したように、Webブラウザを起動してクラスタにログインします。
左ナビゲーションバーから、
を選択し、 リストに移動します。リソース設定画面が開きます。
その値を
No
に設定し、 をクリックします。保守タスクが終了した後で、
をYes
に設定し(デフォルト値)、変更を適用します。リソースは、この時点から再びHigh Availabilityソフトウェアによって管理されます。
28.10 保守モード中のクラスタノードの再起動 #
クラスタまたはノードが保守モードの場合は、クラスタスタックの外部にあるツール(たとえば、systemctl
)を使用して、リソースとしてクラスタによって管理されているコンポーネントを手動で操作できます。High Availabilityソフトウェアは、それらを監視したり、再起動を試みたりしません。
ノード上のクラスタサービスを停止する場合、(Pacemaker管理対象クラスタリソースとして最初に起動された)すべてのデーモンとプロセスの実行は継続されます。
クラスタまたはノードが保守モードのときに、ノード上でクラスタサービスを起動しようとする場合、Pacemakerはリソースごとに1つのワンショット監視操作(「probe」)を開始し、そのノードで現在どのリソースが実行されているかを評価します。ただし、リソースのステータスを決定する以外の操作は行いません。
再起動またはシャットダウンするノードで、
root
または同等な権限でログインします。DLMリソース(またはDLMに依存するその他のリソース)が存在するときは、クラスタサービスを停止する前にそれらのリソースを明示的に停止してください。
crm(live)resource#
stop RESOURCE_ID
その理由は、Pacemakerを停止すると、DLMが依存するメンバーシップとメッセージングサービスを持つCorosyncサービスも停止するからです。Corosyncが停止した場合、DLMリソースではスプリットブレインシナリオが発生したとみなされ、フェンシング操作がトリガされます。
そのノードでクラスタサービスを停止します。
#
crm cluster stop
ノードをシャットダウンするか再起動します。