Japan
サイト内の現在位置を表示しています。
AWS環境でダンプ出力を試してみました(Linux)
CLUSTERPRO オフィシャルブログ ~クラブロ~
はじめに
Amazon Web Services(以下、AWS)環境で構築したHAクラスターにおいて、カーネルパニックが発生した際のダンプ出力を試してみました。
一般的に、ダンプで出力されるファイルには、クラッシュしたプロセスのメモリのイメージ、システムレジスター、プログラムカウンター、その他フリーズの主な要因を特定するために役立つ情報が含まれています。
OSのストールやカーネルパニックなどによりサーバが応答しない場合や、障害が発生したサーバをデバッグする場合などにおいては、ダンプを出力して原因を分析することがあります。
CLUSTERPROでは、障害検出時にOSにパニックを発生させることができます。
あらかじめサーバにダンプ出力の設定を行うことで、CLUSTERPROの障害検出時にダンプを出力させることができます。
今回は、Linux環境のHAクラスターからダンプを出力する設定をご紹介します。
この記事の内容
1. HAクラスター構成
HAクラスター構成イメージは以下の通りです。
今回は、以下の環境を利用しました。
OS:Red Hat Enterprise Linux 7.6(3.10.0-957.el7.x86_64)
インスタンスタイプ:t3.small
CLUSTERPROではユーザー空間のストール状態を検出した際や、プロセス異常を検出した際等にOSにパニックを発生させることができます。
後述の「2.ダンプの出力設定」でご紹介するOSがパニックした際にダンプを出力させる設定を併せて行うことで、CLUSTERPROの異常検出により、ダンプを出力させることができるようになります。
- ※Nitro Systemベースのインスタンスタイプ以外(T2インスタンス等)では、同様の設定をしても、ダンプは出力されません。
今回のCLUSTERPROの設定ではネットワークパーティションが発生した際に、パニックが発生するように設定していますが、実際の業務で設定する際は運用ポリシーに合わせて設定を行ってください。
2. ダンプの出力設定
ダンプを出力する設定は、以下を参考に実施しました。
本設定は、Nitro Systemベースのインスタンスタイプ(T3インスタンス等)でサポートされます。
3. HAクラスター構築手順
構築手順の詳細は、HAクラスタ構築ガイドを参照ください。
ネットワークパーティション解決の設定で、ネットワークパーティションが発生した際の動作を「keepalive パニック」に設定します。
この設定をすることで、ネットワークパーティションが発生した際、OSにパニックを発生させることができます。
ネットワークパーティション、ネットワークパーティション解決の解説についてはこちらを参照ください。
- 1.HAクラスターのプロパティを選択し、「クラスタのプロパティ」を開きます。
- 2.「クラスタのプロパティ」ウィンドウで「NP解決」タブを選択します。
- 3.「NP解決」タブで「調整」を選択します。
- 4.「NP発生時動作」に「keepalive パニック」を設定します。
4. 動作確認
現用系サーバをネットワークパーティション状態にし、OSをパニックさせることでダンプが出力されることを確認します。
今回は、現用系サーバが属するサブネットのネットワークの通信をネットワークACLで全て拒否することで、現用系サーバにネットワークパーティションを発生させました。
- 1.ネットワークACLの作成から、クラスターが属するVPCを選択します。
- 2.新たに作成したネットワークACLは、全ての通信を拒否しているので、そのままの設定で現用系サーバが属するサブネットに関連付けます。
- 3.Cluster WebUIからCLUSTERPROがネットワークパーティション状態を検出したことを確認します。
- 4.ネットワークACLのサブネットの関連付けを解除します。
- 5.現用系サーバに接続し、/var/crash配下に「127.0.0.1-xxxx(xxxxは日時)」という名前のフォルダが出来ており、フォルダ内にvmcoreとvmcore-dmesg.txtが出来ていることを確認します。
まとめ
今回は、AWS上のHAクラスター環境でダンプを出力する手順をご紹介させて頂きました。
障害発生時にダンプを出力して、内容を確認したい時は本手順をご参考にしてください。
また、CLUSTERPRO X 4.2の試用版を提供しておりますので、ぜひご活用ください。
お問い合わせ