hajichan.net technical version
トップページ >> サーバ管理(Solaris) >> クラッシュダンプの設定

サーバ管理

クラッシュダンプの設定

SolarisはOSがパニックを起こしリブートした際に、メモリの内容をクラッシュダンプとして保存します。Solaris7以降では、デフォルトで起動スクリプト/etc/rc2.d/S75savecoreによりsavecoreコマンドが実行され、起動時にクラッシュダンプが取得されます。大まかな流れは以下の通りです。

  • 物理メモリのコピーがダンプ先デバイスに書込まれる
  • システムが自動的にリブート
  • リブート時にsavecoreコマンドが実行され、ダンプ先デバイスにあるデータを取り出してダンプ保存先ディレクトリに保存

クラッシュダンプの使い道

このクラッシュダンプはパニックの原因が何であったか調査するために役立ちます。
ベンダーから「調査のためにクラッシュダンプファイルを送って下さい」と言われたら、/var/crash/host名/{vmcore.n,unix.n}(nは連番)ファイルを送ります。

なお、デフォルトでは、ダンプ先デバイスはswap、ダンプ保存先ディレクトリは/var/crash/host名となってますが、dumpadmコマンドで設定を色々変更することが出来ます。設定内容は、/etc/dumpadm.confに保存されます。

dumpadmコマンド

以下のようなオプションが有ります。

【dumpadmコマンドオプション】
オプション 意味
c <type> kernel,curproc,allのいずれか。ダンプコンテンツの種類を指定します。
n savecore無効(クラッシュダンプを取得しない)
y savecore有効(クラッシュダンプを取得。デフォルト)
d ダンプ先デバイスの変更
s ダンプ保存先ディレクトリ変更
m <しきい値> 必要な空き容量設定(/var/crash/host/minfreeに設定)。しきい値を超過する場合クラッシュダンプは取得されません。/varの圧迫を防止できます。

# dumpadm -m 10m
# dumpadm -s /var/tmp
# dumpadm -c all

また、OS起動後に手動でクラッシュダンプを取得することも出来ます。

# savecore -L

コラム

DiskSuite使用環境下においてダンプ先デバイスがメタデバイスになっていない場合、/var/adm/messagesに"initial dump header corrupt"と言うワーニングを出力してクラッシュダンプの取得に失敗します。そうした場合、dumpadmコマンドにてダンプ先デバイスをメタデバイスに変更する必要があります。

現在のクラッシュダンプの設定を確認。

# dumpadm
---
Dump content: kernel pages
Dump device: /dev/dsk/c0t0d0s1 (dedicated)
Savecore directory: /var/crash/host
Savecore enabled: yes

ダンプ先デバイスをメタデバイスに変更する。

# dumpadm -d /dev/md/dsk/d1
---
Dump content: kernel pages
Dump device: /dev/md/dsk/d1 (swap)   // ←ここ
Savecore directory: /var/crash/host
Savecore enabled: yes
ページのトップへ戻る