Windows system >> Windowsの知識 >  >> Linuxシステムチュートリアル >> Linuxチュートリアル >> Linuxオペレーティングシステムのクラッシュ処理方法の概要

Linuxオペレーティングシステムのクラッシュ処理方法の概要

  
通常システムクラッシュの後、誰もが再び障害について心配するでしょうが、システムはクラッシュの前後に任意の情報を記録しないことを、失敗したの原因を分析することはできません。しかし、実際には、Linuxには、システムクラッシュ後に問題を分析するために貴重な情報を取得できるようにするためのさまざまなメカニズムがあります。それがハードウェア障害かアプリケーションのバグかを判断します。 Linuxでは、さまざまなクラッシュに関する情報を入手する方法がいくつかあります。 1.Core dump
通常、コアダンプはアプリケーションのエラーをデバッグするために使用されますが、アプリケーションが異常に動作した場合は、プログラムのクラッシュ時にシステムのコアダンプ機能をオンにしてメモリ情報を取得できます。クラッシュの原因を分析するには:/etc /profileに1を追加(または修正)します。ulimit -c 0次のコマンドを実行します。sysctl -w "kernel.core_name_format = /coredump /%n.core"このコマンドは、コアファイルが配置されていることを意味します。 /coredumpディレクトリでは、ファイル名はプロセス名+ .core です。2.Diskdump
diskdumpツールは、ネットワークを使用せずに単一のマシンでvmcore(カーネルダンプ)を作成および収集する機能を提供します。カーネル自体がクラッシュすると、現在のメモリとCPUの状態、および関連情報が、diskdumpをサポートするディスク上の予約済みパーティションに保存されます。次回の再起動時、システムの再起動時に、diskdump初期化スクリプトが保存されている情報を予約パーティションから読み取り、vcoreファイルを作成します。このファイルは、/var /crash /ディレクトリに再度格納されます。 127.0.0.1- HP SCSIデバイスでディスクダンプを有効にする手順は、次のとおりですが、HP SCSIデバイスではない(つまり、デバイス名が/dev /sdXの形式である)場合は、3番目と4番目の手順を実行する必要はありません。ただし、最初のステップの前にコマンドを実行する必要があります。modprobe diskdumpステップ1:/etc /sysconfig /diskdumpファイルを編集し、空のパーティションのデバイス名を入力して保存して終了します。例:DEVICE = /dev /cciss /c0d0p2 2つのステップ:ダンプデバイスの初期化#service diskdump initialformat警告:このパーティションのデータは失われます。ステップ3:現在のccissモジュールをcciss_dumpモジュールに置き換えます。/etc/modprobe.confで次の行を探します。alias scsi_hostadapter cciss変更先:alias scsi_hostadapter cciss_dump別の行を追加します。options cciss_dump dump_drive = 1注:diskdumpファイルが構成されているとします。 /dev /cciss /c0d [#a] p [#b]の場合は、次のように設定します。options cciss_dump dump_drive = [#a]手順4:initrdファイルを再構築します。#mv /boot /initrd-`uname -r`。 Img /boot /initrd-`uname -r`.img.old#mkinitrd /boot /initrd-` uname -r`.img `uname -r`ステップ5:diskdumpサービスを次のものから起動するように設定します。#chkconfig diskdump on
3.Netdump
Red Flag DC4.0または3.0システムを使用している場合、diskdumpはサポートできませんので、netdumpを使用して出力vmcoreの目的を達成することができます。しかし、Netdumpには少なくとも1つのサーバーと任意の数のクライアントが必要です。サーバーは、クライアントがクラッシュしたときに情報を受信するために使用され、クライアントは頻繁にクラッシュするマシンです。 (1)サーバー構成:(1)netdumpサーバーがインストールされていることを確認します:rpm -q netdump-serverインストールされていない場合は、CDのRedFlag /RPMS /ディレクトリでnetdump-serverで始まるパッケージを探し、次のコマンドを実行します。インストールするIvh netdump-server-xxxrpm(xはバージョン番号)。 (2)サーバーパッケージをインストールした後、コマンドpasswd netdumpを使用してユーザーのパスワードを変更します(3)サービスを開きます:chkconfig netdump-server on(4)サーバーを実行します:service netdump-server start(2)クライアントの設定: (1)。クライアントにrpmがインストールされていることを確認する-q netdump CDがインストールされていない場合は、CDのRedFlag /RPMS /ディレクトリでnetdumが起動するパッケージを探しますrpm -ivh netdump-xxxrpm(xはバージョン番号)インストール(2)/etc /sysconfig /netdumpファイルを編集して、次の行を追加します:DEV = eth0 NETDUMPADDR = 172.16.81.182 NETDUMPMACADDR = 00:0C:29:79:F4:E0 172.16.81.182はnetdumpサーバーアドレスを表します。 service netdump propagate(4)クライアントを開きます:chkconfig netdump on(5)クライアントを実行します:service netdump start(6)netdumpをテストするには、次のコマンドを実行します。 netdumpクライアントで次の手順を実行します:cp /usr/share/doc/netdump-xxxxxx/crash.c。gcc -DKERNEL -DMODULE -I /lib /modules /$(uname -r)/build /include -c crash.c insmod ./crash.oこれによりシステムがクラッシュし、netdumpサーバーの/var /crash /< client IP> /ディレクトリにコアダンプが表示されます。クライアントがサーバーにデータをダンプしているとき、あなたは "vmcore-incomplete"と呼ばれるファイルを見るでしょう。ダンプが終了すると、ファイルの名前は "vmcore"に変更されます。 "vmcore"ファイルのサイズは、最大で数ギガバイトまで変わる可能性があります512Mのメモリを搭載したシステムでは、上記のテストで約510Mのvmcoreファイルが生成されます。
Copyright © Windowsの知識 All Rights Reserved