第7章 高可用性リソースに関するトラブルシューティング
リソースに異常が発生した場合は、問題の原因と場所を調査し、異常が発生したリソースを修正し、必要に応じてリソースをクリーンアップする必要があります。デプロイメントによって、リソース異常にはさまざまな原因が考えられ、リソースを調査して問題の修正方法を決定する必要があります。
たとえば、リソースの制約を確認することで、リソースが相互に障害とならないようにし、また互いに接続できるようにすることができます。他のコントローラーノードよりも頻繁にフェンシングされるコントローラーノードを調査し、通信の問題を識別できる場合もあります。
リソースの問題の場所に応じて、以下のオプションのいずれかを選択します。
- コントローラーノードの問題
- コントローラーノードのヘルスチェックに失敗した場合は、コントローラーノード間の通信に問題があることを示しています。問題を調査するには、コントローラーノードにログインして、サービスが正常に起動できるかどうかを確認します。
- 個別のリソースの問題
-
コントローラーのほとんどのサービスが正しく動作している場合は、
pcs statusコマンドを実行し、出力で特定の Pacemaner リソース障害に関する情報がないか、あるいは、systemctlコマンドを実行し、Pacemaker 以外のリソースのエラーを調べます。
7.1. 高可用性クラスターでのリソースの制約の表示 リンクのコピーリンクがクリップボードにコピーされました!
リソースの問題を調査する前に、サービスがどのように起動されるかに関する制約を表示することができます。これには、各リソースが配置される場所、リソースが起動される順序、別のリソースと共に配置する必要があるかどうか、などの制約が含まれます。
手順
以下のオプションのいずれかを使用します。
リソースの制約をすべて表示するには、任意のコントローラーノードにログインして
pcs constraint showコマンドを実行します。sudo pcs constraint show
$ sudo pcs constraint showCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の例には、Controller ノードで
pcs constraint showコマンドを実行した場合の出力を示しており、途中省略しています。Copy to Clipboard Copied! Toggle word wrap Toggle overflow この出力には、以下の主要な制約種別が表示されています。
- Location Constraints
リソースを割り当てることのできる場所をリスト表示します。
-
最初の制約は、galera-role 属性が
trueに設定されたノードで実行するgalera-bundleリソースを設定するルールを定義します。 -
場所に関する 2 番目の制約は、IP リソース ip-192.168.24.15 は
haproxy-role属性がtrueに設定されたノードでのみ実行されることを指定します。これは、クラスターが IP アドレスをhaproxyサービスに関連付けることを意味し、サービスを到達可能にするために必要です。 - 場所に関する 3 番目の制約は、ipmilan リソースが各コントローラーノードで無効化されることを意味します。
-
最初の制約は、galera-role 属性が
- Ordering Constraints
リソースを起動することのできる順序をリスト表示します。この例は、仮想 IP アドレスリソース IPaddr2 は HAProxy サービスより先に起動しなければならない、という制約を示しています。
注記順序に関する制約は、IP アドレスリソースおよび HAProxy にのみ適用されます。Compute などのサービスは、Galera などの依存関係にあるサービスの中断に対する耐性があると予想されるため、その他すべてのリソースは systemd により管理されます。
- Colocation Constraints
- 共に配置する必要があるリソースをリスト表示します。すべての仮想 IP アドレスは haproxy-bundle リソースにリンクされています。
特定のリソースの制約を表示するには、任意のコントローラーノードにログインして
pcs property showコマンドを実行します。sudo pcs property show
$ sudo pcs property showCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow この出力で、リソースの制約が正しく設定されていることを確認できます。たとえば、すべてのコントローラーノードで
galera-role属性はtrueであり、galera-bundleリソースはこれらのノードでのみ実行されることを意味します。