このドキュメントでは、Cisco IOS®ソフトウェアでコアダンプを有効にするために使用できるさまざまなオプションについて説明します。
注:コアダンプの取得は困難な場合があります。コア ダンプの解釈を行えるのは、ソース コードと詳細なメモリ マップにアクセスできる Cisco のテクニカルサポート担当者だけです。多くのプラットフォームでは、Crashinfo 機能を使用することでコア ダンプが不要になります。詳細については、『Crashinfo ファイルからの情報の取得』を参照してください。
次の項目に関する知識があることが推奨されます。
このドキュメントの情報は、次のソフトウェアとハードウェアのバージョンに基づいています。
Cisco IOS ソフトウェア バージョン 12.0 以降
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。対象のネットワークが実稼働中である場合には、どのようなコマンドについても、その潜在的な影響について確実に理解しておく必要があります。
表記法の詳細については、『シスコ テクニカル ティップスの表記法』を参照してください。
ルータがクラッシュした際には、ルータの完全なメモリ内容のコピーを忘れずに取得してください。これをコア ダンプと呼びます。テクニカルサポート担当者は、コア ダンプを使用してクラッシュの原因を究明します。ルータでは、リロードの前にメモリの内容がサーバに書き込まれます。必ずしもすべてのクラッシュでコア ダンプが生成されるわけではありません。詳細は、『クラッシュのタイプ』を参照してください。
ルータがコア ダンプを行う場合は、常にコンソール ログをキャプチャしてください。コンソール ログにより、クラッシュに関する情報が提供されます。さらにクラッシュ時には、通常、ROM モニタ(ROMMON)により、コンソール(コンソール以外への出力はない)に情報が出力されます。
ほとんどのクラッシュでは、問題の解決にコア ダンプは必要ありません。ルータがネットワークで機能しているときにコア ダンプを作成すると、ネットワークの動作が中断することがあります。このドキュメントのコマンドは、テクニカルサポート担当者の指示がある場合にのみ使用してください。
ルータでコア ダンプが生成されるように設定するには 4 つの基本的な方法があります。
File Transfer Protocol(FTP; ファイル転送プロトコル)の使用
Remote Copy Protocol(RCP; リモート コピー プロトコル)の使用
フラッシュ ディスクの使用
Trivial File Transfer Protocol(TFTP; トリビアル ファイル転送プロトコル)の使用
上記の方法では、それぞれ次の設定コマンドが使用されます。
exception region-size size
このコマンドでは、例外時間メモリ プール用の領域のサイズが指定されます。例外時間メモリ プールは、プロセス メモリが壊れた場合に使用されます。size パラメータはバイト単位で表され、1024 ~ 65536 バイトのサイズを設定できます。
exception core-file filename [compress]
このコマンドでは、デフォルトの名前以外のコア ダンプ ファイルの名前を指定します。デフォルトの名前に戻すには、このコマンドの no 形式を使用します。
このドキュメントで使用されているコマンドの詳細を調べるには、Command Lookup Tool(登録ユーザ専用)を使用してください。
exception region-size コマンドを使用して、プロセッサのメモリ プールが破損した場合にフォールバック プールとして使用するメモリを少量定義しておきます。これにより、コア ダンプ プロセス中のメモリ障害の発生が防止されます。size パラメータはバイト単位で表され、1024 ~ 65536 バイトのサイズを設定できます。デフォルト値は 16384 バイトです。コア ダンプの成功率を高めるために、exception region-size を 65536 バイトに設定します。
デフォルトでは、プロセッサ メモリのコア ダンプは「hostname-core」という名前のファイルに書き込まれます。hostname はルータの名前で、hostname 設定コマンドで定義します。ルータに入出力(I/O)メモリがある場合(たとえば、Cisco 7200)、I/O メモリのコア ダンプも作成され、「hostname-coreiomem」というファイルに書き込まれます。
デフォルトのコア ダンプ ファイル名を上書きするには、exception core-file コマンドを使用します。ファイル サーバが DOS FAT ファイル システムを使用している場合は、6 文字を超える長さのファイル名を指定しないでください。たとえば、ルータで「exception core-file foobar」と設定すると、プロセッサ メモリのコア ダンプ名は「foobar」になり、I/O メモリ ダンプの名前は「foobario」(I/O メモリのダンプであることがわかる名前)になります。
完全なコア ダンプを複数保持するために十分なディスク領域がファイル サーバにあることも確認してください。compress オプションで、コア ダンプ ファイルを圧縮できます。
注:コアダンプファイルをフラッシュディスクに書き込むときは、compressが自動的に適用されます。RCP を使用する場合は、compress オプションはサポートされません。
注:コアダンプの設定には、ファイル転送プロトコル(FTP)を使用することを推奨します。
FTP を使用してコア ダンプを生成するようにルータを設定するには、次のコマンドを使用します。
ip ftp username username:このコマンドは、FTP 接続のユーザ名を設定します。匿名 FTP を試みるようにルータを設定するには、このコマンドの no 形式を使用します。
ip ftp password password:このコマンドは、FTP 接続のパスワードを設定します。
exception protocol ftp:このコマンドは、コア ダンプ FTP に使用されるプロトコルを設定します。
exception region-size 65536:このコマンドは、領域のサイズを設定します。
exception dump ip-address:このコマンドは、クラッシュの場合にルータがコア ダンプを送信するサーバの IP アドレスを設定します。
注:ネットワークの輻輳を回避するために、中間ホップを経由しないでルータを直接FTPサーバに接続することを強く推奨します。中間ホップを 1 つ以上経由させる必要がある場合は、ip ftp source-interface コマンドを使用して、どのインターフェイスを FTP サーバへのアクセスに使用するのかを指定する必要がある場合があります。詳細については、『FTP 接続を使用するためのルータの設定』を参照してください。
ユーザ名とパスワードを設定しないと、ルータでは匿名 FTP が試行されます。
Cisco テクニカルサポート担当者からコア ダンプ ファイルを要求された場合は、匿名 FTP を使用して Cisco にコア ダンプ ファイルを送信できます。FTP サーバは ftp-sj.cisco.com で、ディレクトリは /incoming です。
注:/incomingディレクトリは非表示です。
転送モードをバイナリに設定してください。ファイルが圧縮されていない場合は、gzip や zip などの一般的な圧縮ユーティリティで圧縮してください。
また、crashinfo ファイルがある場合は、必ず、コア ダンプとともにこのファイルも含めてください。ハードウェアかソフトウェアでこの機能がサポートされている場合は、crashinfo ファイルを利用できます。手順の詳細については、『Crashinfo ファイルからの情報の取得』を参照してください。
最初に FTP の動作を確認してください。次の例を使用します。
c7500#copy running-config ftp: Address or name of remote host []? 172.18.125.3 Destination filename [c7500-confg]? Writing c7500-confg ! 2781 bytes copied in 0.944 secs
RCP を使用してコア ダンプを生成するようにルータを設定するには、次のコマンドを使用します。
ip rcmd remote-username username:このコマンドは、RCP を使用してリモート コピーを要求するときに使用するリモート ユーザ名を設定します。
exception protocol rcp:このコマンドは、コア ダンプに使用するプロトコルを RCP に設定します。
exception region-size 65536:このコマンドは、領域のサイズを設定します。
exception dump ip-address
ユーザ名を設定しないと、ルータでは RCP のユーザ名としてルータのホスト名が使用されます。
注:ネットワークの輻輳を回避するために、中間ホップを経由しないでルータを直接RCPサーバに接続することを強く推奨します。中間ホップを 1 つ以上経由する必要がある場合は、ip rcmd source-interface コマンドを使用して、RCP サーバへのアクセスに使用するインターフェイスを指定します。詳細については、『RSH と RCP を使用するためのルータの設定』を参照してください。
最初に RCP の動作を確認してください。次の例を使用します。
c7500#copy running-config rcp: Address or name of remote host []? 172.18.125.3 Destination username [c7500]? Destination filename [c7500-confg]? Writing c7500-confg ! 2781 bytes copied in 0.944 secs
ルータによっては、リニア フラッシュ メモリや PCMCIA フラッシュ カードの代わりにフラッシュ ディスクをサポートしているものがあります。これらの大容量のフラッシュ ディスクは、コア ダンプをキャプチャするのに適したメディアです。フラッシュ ディスクをサポートしているルータ プラットフォームおよび Cisco IOS ソフトウェア バージョンについての詳細は、『Cisco IOS リリース ノート』を参照してください。
注:フラッシュディスクでコアダンプをキャプチャする場合は、コアダンプを発生させているDRAMメモリよりフラッシュディスクの方がストレージサイズが大きいことを確認する必要があります。たとえば、DRAM メモリのサイズが 128 MB の場合、フラッシュ ディスクには 128MB よりも大きい容量が必要です。コア ダンプを正確に取得するには、さらに大きいフラッシュ ディスク メモリが必要です。フラッシュ ディスクのメモリが足りないと、コア ダンプは作成されません。
フラッシュ ディスクを使用してコア ダンプを生成するようにルータを設定するには、次のコマンドを使用します。
exception flash procmem|iomem|all device_name [:partition_number] !--- This command uses a Flash disk to configure the router for a core dump.
show flash all EXEC コマンドでは、exception flash コマンドに使用できるデバイスの一覧が表示されます。
ほとんどの TFTP アプリケーションの制限のため、ルータではコア ファイルの最初の 16 MB しかダンプされません。したがって、ルータのメイン メモリが 16 MB より大きい場合は、TFTP を使用しないでください。詳細については、『Cisco IOS TFTP クライアントで、16 MB を超えるサイズのファイルを転送できない』を参照してください。
TFTP を使用してコア ダンプを生成するようにルータを設定するには、次のコマンドを使用します。
exception protocol tftp:このコマンドは、コア ダンプが使用するプロトコルとして TFTP を設定します。
exception region-size 65536
exception dump ip-address
TFTP は、exception protocol のデフォルトのプロトコルです。
注:ネットワークの輻輳を回避するために、中間ホップを経由しないでルータを直接TFTPサーバに接続することを強く推奨します。中間ホップを 1 つ以上経由する必要がある場合は、ip tftp source-interface コマンドを使用して、TFTP サーバへのアクセスに使用するインターフェイスを指定します。
使用する TFTP サーバによっては、あらかじめ適切な権限で空のターゲット ファイルを TFTP サーバに作成しておかなければ、ルータがコア ダンプを書き込めない場合があります。
最初に TFTP の動作を確認してください。次の例を使用します。
c7500#copy running-config tftp: Address or name of remote host []? 172.18.125.3 Destination filename [c7500-confg]? ! 2781 bytes copied in 0.944 secs
「基本的な設定」セクションのコマンドに加えて、このセクションで説明する設定コマンドも使用します。
メモリの問題をデバッグするために、特定のメモリ サイズ パラメータで違反が起きた際に、ルータがコア ダンプを作成してリブートするように設定できます。コア ダンプをトリガするには、次の exception memory コマンドを使用します。
exception memory minimum size:このコマンドは、プロセッサ メモリの空き領域が設定されているしきい値より少なくなった場合に、クラッシュさせます。
exception memory fragment size:このコマンドは、Cisco IOS ソフトウェアが、設定されているしきい値より大きい連続したプロセッサ メモリのブロックを割り当てることができなくなった場合に、クラッシュさせます。
size パラメータはバイト単位で表現され、デフォルトでは 60 秒ごとにチェックされます。
これらのコマンドは、設定された条件を満たしたときにルータをリブートさせるだけです。exception dump または exception flash も設定すると、ルータは最初にコア ダンプを作成します。これらのコマンドは、メモリ リークを診断する際に役立ちます。
場合によっては、コア ダンプの設定時に debug sanity を有効にするようテクニカルサポート担当者から要求されることがあります。debug sanity コマンドはほとんどの Cisco IOS ソフトウェア リリースでは隠しコマンドになっていますが、特に I/O メモリ破損の場合には、メモリ破損のデバッグに必要となる場合があります。debug sanity を有効にすると、システムでは割り当てられるすべてのバッファについて健全性チェックが実行され、バッファが解放されると再度健全性チェックが実行されます。
debug sanity コマンドは、特権 EXEC モード(またはイネーブル モード)で発行する必要があります。debug sanity コマンドは、CPU を若干使用しますが、ルータの機能に大きな影響を与えることはありません。他の debug コマンドと同様に、debug sanity はコンフィギュレーションには保存されないため、システムがリブートされた後は無効になります。
すべてのタイプのクラッシュについて debug sanity を有効にする必要はありません。debug sanity は、テクニカルサポート担当者からこのコマンドを有効にするよう要求された場合にのみ使用してください。
健全性チェックを無効にするには、特権 EXEC コマンド undebug sanity を使用します。
ルータにコア ダンプを設定したら、設定をテストします。
Cisco IOS ソフトウェアには、ルータのリロードを行わずにコア ダンプを生成するために、特権 EXEC モード(またはイネーブル モード)で使用する特別な write core コマンドが用意されています。
正しく作成されると、コア ダンプ ファイルは対応するメモリ領域と同じサイズになります。使用中のメモリだけでなくメモリ領域全体がダンプされることに注意してください。
write core コマンドは、ルータがクラッシュはしていないけれども、動作が不良である場合にも役立ちます。
改定 | 発行日 | コメント |
---|---|---|
1.0 |
24-Jun-2008 |
初版 |