7.4. ファームウェア支援ダンプの仕組み

7.4.1. ファームウェア支援ダンプについて

kexec および kdump のメカニズムは、AMD64 および Intel 64 システムでコアダンプをキャプチャーする信頼できる方法です。ただし、特に小規模システムおよびメインフレームシステムのような長い歴史を持つハードウェアでは、オンボードファームウェアを活用してメモリの領域を分離し、クラッシュ分析に重要なデータの偶発的な上書きを防ぐことができます。

本章では、利用可能なファームウェア支援ダンプの手法について紹介し、ファームウェア支援ダンプを Red Hat Enterprise Linux でどのように活用するかについて説明します。

7.4.2. IBM PowerPC ハードウェアにおける fadump の使用

ファームウェア支援ダンプ (fadump) は、IBM PowerPC LPARS で利用可能な kexec-kdump に代わる信頼性の高い仕組みです。ファームウェア支援ダンプでは、PCI および I/O デバイスが再初期化され、完全にリセットされたシステムから、vmcore がキャプチャーされます。この仕組みでは、クラッシュ発生時にファームウェアを使ってメモリーが保持されますが、kdump ユーザー空間スクリプトが再利用して vmcore を保存します。

そのために、fadump では、クラッシュ発生時にシステムファームウェアを使って保持する必要のあるメモリー領域が登録されます。これらの領域には、ブートメモリー、システムレジスター、およびハードウェアのページテーブルエントリー (PTE) を除く、すべてのシステムメモリーコンテンツが含まれます。

PowerPC 特有のハードウェアのリセット方法を含め、fadump の仕組みに関する詳細は、/usr/share/doc/kexec-tools-X.y.z/fadump-howto.txt を確認してください。 ここで「X.y.z」は、お使いのシステムにインストールされている kexec-tools のバージョン番号を表します。

注記

ブートメモリー と呼ばれる保持されないメモリー領域は、クラッシュ後にカーネルを正常に起動するのに必要な RAM の容量です。デフォルトのブートメモリーサイズは、256 MB または全システム RAM の 5% のいずれか大きい方です。

kexec で開始されたイベントとは異なり、fadump プロセスでは実稼働用のカーネルを使用してクラッシュダンプを復元します。クラッシュ後の起動時に、PowerPC ハードウェアはデバイスノード /proc/device-tree/rtas/ibm,kernel-dumpprocfs で利用できるようにし、fadump 対応の kdump スクリプトは vmcore を保存するかどうかを確認します。この処理が完了すると、システムは正しく再起動されます。

fadump の有効化

  1. 「kdump のインストールと設定」 の記載通りに、kdump をインストールし、設定します。
  2. /etc/default/grubGRUB_CMDLINE_LINUX の行に、fadump=on を追加します。

    GRUB_CMDLINE_LINUX="rd.lvm.lv=rhel/swap crashkernel=auto rd.lvm.lv=rhel/root rhgb quiet fadump=on"
  3. (この操作は必須ではありません) 予約ブートメモリーサイズに、デフォルト値を使わずに具体的な値を指定する場合は、/etc/default/grubGRUB_CMDLINE_LINUXcrashkernel=xxM を追加します。 xx は必要なメモリーサイズ (メガバイト単位) に指定してください。

    GRUB_CMDLINE_LINUX="rd.lvm.lv=rhel/swap crashkernel=xxM rd.lvm.lv=rhel/root rhgb quiet fadump=on"
重要

すべてのブート設定オプションと同様に、必要になる前に設定をテストすることを強く推奨します。クラッシュカーネルから起動時に Out of Memory (OOM) エラーが発生する場合は、クラッシュカーネルが正常に起動できるまで crashkernel= で指定する値を増やします。この場合は、トライアンドエラーが必要になることがあります。

7.4.3. IBM Z におけるファームウェア支援ダンプの手法

IBM Z には、Stand-alone Dump および VMDUMP の 2 つのファームウェア支援ダンプの仕組みがあります。

これらのシステムでは kdump インフラストラクチャーがサポートされ使用されています。Red Hat Enterprise Linux での設定は、「kdump のインストールと設定」に説明があります。ただし、IBM Z ハードウェアが提供するこれらのファームウェア支援の手法を使用すると、いくつかのメリットが得られます。

スタンドアロンダンプ (SADMP) メカニズムはシステムコンソールから開始および制御され、IPL 起動可能デバイス上に保管される必要があります。

VMDUMP は SADMP と類似しています。このツールもシステムコンソールから開始されますが、得られるダンプをハードウェアからコピーし、解析のためにそれをシステムに格納する仕組みがあります。

(他のハードウェアベースのダンプメカニズムと同様に) これらの手法のメリットの 1 つは、(kdump サービスが開始される前の) 起動初期段階におけるマシンの状態をキャプチャーできるという点です。

VMDUMP には、ハードウェアからコピーしたダンプファイルを Red Hat Enterprise Linux システムに格納する仕組みがありますが、IBM Z ハードウェアコンソールから、SADMP および VMDUMP の両方の設定および制御が管理されます。

IBM は、stand-alone dump programの記事で SADMP について、VMDUMP の記事で VMDUMP について詳細に説明しています。

また、IBM は、Using the Dump Tools on Red Hat Enterprise Linux 記事で Red Hat Linux Enterprise Linux 7 でダンプツールを使用するための一連のドキュメントを用意しています。

7.4.4. Fujitsu PRIMEQUEST システムにおける sadump の使用

Fujitsu の sadump メカニズムは、kdump が正常に完了できない場合にフォールバックダンプキャプチャーが実行されるように設計されています。

sadump プロセスは、システムの ManageMent Board (MMB) インターフェースから手動で呼び出します。

このシステムでは、通常通り kdump を X86_64 サーバーに対して設定し、さらに以下の追加ステップを実施して sadump を有効にする必要があります。

sadump に対して kdump が予想どおりに起動するように/etc/sysctl.conf で以下の行を追加または編集します。

kernel.panic=0
kernel.unknown_nmi_panic=1

上記の手順に加えて、/etc/kdump.conf にいくつかのオプションを追加して、sadump に対して kdump が正常に動作するようにする必要もあります。

特に、kdump の後にシステムが再起動しないようにする必要があります。kdump がコアの保存に失敗した後にシステムが再起動すると、sadump を呼び出す機会が失われます。

そのためには、/etc/kdump.confdefault アクションを halt または shell のどちらかに設定する必要があります。

default shell
重要

sadump 用にハードウェアを設定する方法は、『FUJITSU Server PRIMEQUEST 2000 Series Installation Manual』を参照してください。


このページには機械翻訳が使用されている場合があります (詳細はこちら)。