デザイン哲学のLinuxシステムでは、カーネルは専用メモリをダンプするためのメカニズムを提供し、ユーザーはメモリダンプの種類たい、ポリシーの質問に属しているダンプは、ユーザによって決定どのくらいのメモリです。
実際の使用シナリオでは、主に次の2つの方法で使用:のkdumpとコアダンプを
1.kdump:プロセスがハングした後に分析をデバッグするユーザーのためのプロセス・ダンプのアドレス空間。
2.coredump:システム管理者にハングアップ、システム全体のメモリをダンプデバッグするために、分析システムを引き起こします。
本論文では、kdumpのを説明します
kexecをとkdumpの全体のプロセスは、プロセス全体の適切な実施を確保するために、追加のダンプ・カーネルに依存しています。
kdumpの関連するコンポーネント:
障害管理のために使用さkexecを確保したメモリに特定のカーネル、ツールを介して負荷を1.kdump。
カーネルのクラッシュ、だけでなく、いくつかの起動パラメータをロードする責任2.kexecツール。
カーネルのメモリコピーの障害の責任3.makedumpfileツール、指定されたファイルへの書き込み、圧縮。
kdumpの実装
kdumpの全体のプロセスは2つのカーネルブートが含まれます。
1.まず、カーネルは、ハードウェアの初期化、セルフテストを含む作品、ブートローダ同時カーネルブートカーネルが起動し、予約済みのメモリ構成、およびカーネルをロード予約メモリにクラッシュするのkexecツールのロードを開始します。
故障の顔2.作業カーネルブートクラッシュカーネルがパニックをトリガし、クラッシュカーネルは、カーネルの初期化ロジックを実行し、高速で起動し、ハードウェアのセルフテストを初期化しない起動のkexec。
カーネルが適切に/ proc / vmcoreにメモリイメージファイルを介して保存するために圧縮した後、ハードディスクの故障メモリダンプファイルに書き込まれます、リソースを管理できるシステムの3.crash良い部分をロードされた後。
キャプチャした後4.復旧を完了するためにシステムの完全なリブートです。
増加のシステムメモリを使用すると、回復時間は、2つのシステムの起動時間が比較的直線的インパクトオフメモリ、メモリ、およびファイル圧縮プレートをコピーする主因時間を増加、固定、直線的に増大します。だから、多くのkdumpの最適化は、次の主要な側面のために達成されています。
メモリの1.copy用語は:システムコールの数を減らすために、MMAP方法vmcoreには、コピーの効率を向上させることができる実装します。
2.メモリ圧縮:GZIPアルゴリズムの元LZOを置き換えるために、より効率的な圧縮アルゴリズムの導入。
3.順序配置するには:ファイルIO主な考慮事項の同時書き込みをし、効率を最適化します。
kdumpを使用する方法:
1.有効であるが、観察することができるの/ proc / cmdlineをすることにより、クラッシュカーネルフィールドを増やし、起動パラメータを変更します。
2.取り付けアセンブリのkdumpパッケージ、およびクラッシュカーネルのkexecアセンブリを備えます。
3.スタートのkdumpサービスは、コマンドによってサービスやスタートアップスクリプトの/ etcディレクトリを起動します。
4.クラッシュカーネルの/ procの/ IOMEM成功した負荷を守って