診断中断の送信
この機能は上級ユーザー向けです。診断中断を稼働中のシステムに送信すると、データが破損したり、システムに障害が発生する可能性があります。
診断中断を送信して、応答しないか到達できないコンピュート仮想マシン(VM)インスタンスをトラブルシューティングできます。
診断中断によって、インスタンスのOSはクラッシュし、再起動されます。診断中断を送信する前に、クラッシュ時にクラッシュ・ダンプ(メモリー・ダンプ・ファイルとも呼ばれる)を生成するようにOSを構成する必要があります。クラッシュ・ダンプは、クラッシュ時のOSの状態に関する情報を取得します。OSの再起動後、クラッシュ・ダンプを分析して、問題を識別およびデバッグできます。
必要なIAMポリシー
Oracle Cloud Infrastructureを使用するには、管理者によってポリシーでセキュリティ・アクセス権が付与されている必要があります。このアクセス権は、コンソール、あるいはSDK、CLIまたはその他のツールを使用したREST APIのいずれを使用している場合でも必要です。権限がない、または認可されていないというメッセージが表示される場合は、管理者に連絡して、どのタイプのアクセス権があり、どのコンパートメントで作業するかを確認してください。
管理者向け: ユーザーにコンピュート・インスタンスを起動させるのポリシーには、インスタンスに診断中断を送信する権限が含まれます。指定されたグループがインスタンスの起動やボリュームのアタッチを必要としない場合、そのポリシーを簡素化し、manage instance-family
のみを含めて、volume-family
およびvirtual-network-family
に関連する文を削除できます。
開始前
- インスタンスのOSは、クラッシュ・ダンプ・ファイルを生成するように構成する必要があります。
- インスタンスは、「実行中」の状態である必要があります。詳細は、インスタンスの停止、起動または再起動を参照してください。
- アタッチまたはデタッチ中のブロック・ボリュームやセカンダリVNICなど、インスタンスに影響を与える進行中のアクションがありません。
クラッシュ・ダンプを生成するためのOSの構成
インスタンスに診断中断を送信する前に、クラッシュ時にクラッシュ・ダンプを生成するようにOSを構成する必要があります。診断中断は、ターゲット・インスタンス上でマスク不可能割込み(NMI)として受信されます。
ステップはOSによって異なります。
Linux
Oracle Linuxプラットフォーム・イメージでは、イメージのリリース日に応じて、クラッシュ・ダンプを生成するように、OSが完全に構成されているか部分的に構成されています。
- 2020年8月以降にリリースされたイメージ: イメージは、クラッシュ・ダンプを生成するように完全に構成されています。
- 以前のイメージ: ダンプキャプチャ・カーネルがインストールおよび構成されていますが、他の構成ステップを実行する必要があります。
- 2020年8月以降にリリースされたイメージ: イメージは、クラッシュ・ダンプを生成するように完全に構成されています。
- 以前のイメージ: ダンプキャプチャ・カーネルがインストールおよび構成されていますが、他の構成ステップを実行する必要があります。
- 2020年9月以降にリリースされたイメージ: イメージは、クラッシュ・ダンプを生成するように完全に構成されています。
- 以前のイメージ: ダンプキャプチャ・カーネルがインストールおよび構成されていますが、他の構成ステップを実行する必要があります。
- インスタンスに接続します。
- ダンプキャプチャ・カーネルをインストールして構成します:
- 次のコマンドを実行して、
kdump
およびkexec
をインストールします:sudo yum install kexec-tools
- クラッシュ・ダンプを保存するためのカーネル上のメモリーを予約します。次を行います:
- テキスト・エディタで
etc/default/grub
ファイルを開きます。 GRUB_CMDLINE_LINUX_DEFAULT
で始まる行に、パラメータcrashkernel=<memory-to-reserve>
を追加します。たとえば、100MBを予約するには、crashkernel=100M
を追加します。- 変更を保存してファイルを閉じます。
- 次のコマンドを実行して、GRUBファイルを再構築します:
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
- テキスト・エディタで
- 次のコマンドを実行して、
- 診断中断を受信したときにクラッシュするようにカーネルを構成します。これを行うには、テキスト・エディタで
/etc/sysctl.conf
ファイルを開き、次の行を追加します:kernel.unknown_nmi_panic=1
- 次のコマンドを実行して、
/etc/sysctl.conf
に変更を適用します:sysctl -p
Windows Server - プラットフォーム・イメージ
2020年4月以降にリリースされたWindows Serverプラットフォーム・イメージを使用する場合、そのイメージはすでにクラッシュ・ダンプを生成するように構成されています。
2020年4月より前にリリースされたイメージを使用する場合、次を行います:
- インスタンスに接続します。
- Oracle VirtIO Drivers for Microsoft Windowsをダウンロードします。
- ドライバをインストールして、インスタンスを再起動します。
Windows Server - 顧客提供のイメージ
詳細は、オペレーティング・システムのサードパーティ・ドキュメントを参照してください。
診断中断の送信
クラッシュ時にクラッシュ・ダンプを生成するようにインスタンスのOSを構成したら、次の手順を使用して診断中断を送信します。
コンソール を使用して診断中断を送信するには
- ナビゲーション・メニューを開き、「コンピュート」をクリックします。「コンピュート」で、「インスタンス」をクリックします。
- 関心のあるインスタンスをクリックします。
-
「他のアクション」をクリックし、「診断中断の送信」をクリックします。
注意
診断中断を稼働中のシステムに送信すると、データが破損したり、システムに障害が発生する可能性があります。 -
確認メッセージを確認し、「診断中断の送信」をクリックします。
インスタンスのOSがクラッシュして再起動しても、コンソールに表示されるライフサイクル状態は「実行中」のままです。複数の診断中断を送信しないでください。
- インスタンスのOSが再起動するまで数分間待機してから、インスタンスに接続します。これで、クラッシュ・ダンプを取得して分析できます。
APIを使用して診断中断を送信するには
InstanceAction操作を使用して、実行するアクションとして値SENDDIAGNOSTICINTERRUPT
を渡します。
クラッシュ・ダンプの分析
クラッシュ・ダンプは、インスタンスのOS上でローカルに保存されます
-
Linuxインスタンス: クラッシュ・ダンプが保存されるデフォルトの場所は、オペレーティング・システムによって異なります。
- Oracle Linux 8:
/var/oled/crash
に保存されます。 - Oracle Linux 7: 2021年3月以降にリリースされたプラットフォーム・イメージの場合は、
/var/crash
に保存されます。古いプラットフォーム・イメージの場合は、/var/oled/crash
に保存されます。 - その他のLinuxおよびUNIX系のオペレーティング・システム:
/var/crash/
に保存されます。
場所を変更するには、
/etc/kdump.conf
ファイルを変更します。 - Oracle Linux 8:
- Windowsインスタンス: クラッシュ・ダンプは
%SystemRoot%memory.dmp
に保存されます。ほとんどのWindowsシステムでは、これはC:\Windows\memory.dmp
です。
クラッシュ・ダンプを分析するには、Linuxインスタンスではcrashユーティリティ、WindowsインスタンスではWinDbgなどのサードパーティ・ツールを使用します。