web-dev-qa-db-ja.com

キャプチャカーネルは、kexecの後に通常のカーネルとして使用できますか?

Kexec/kdump機能について読みましたが、クラッシュ/パニック状態のカーネルが/ proc/vmcoreから利用できるようになっていることがわかりました。

人々がkexecベースのブートを使用して、EFI/BIOS/FW初期化段階をバイパスし、実稼働マシンでのOSパッチ適用アクティビティを高速化すると聞いています。これは、これらのマシンが残りの処理/稼働時間の間、キャプチャカーネルを引き続き使用することを意味します。

Kdumpを取るために保存されている古いメモリ領域を再利用するキャプチャカーネルの機能についての明確な言及は見つかりませんでした。ダンプが保存された後、キャプチャカーネルはそれらの保存されたメモリの内容を破棄できますか?

キャプチャカーネルは「再配置可能」カーネルであるため、「非標準」メモリの場所から実行されることは事実ですが、他のすべてのメモリを利用/解放し、本番用のメインカーネルとして引き続き使用できます。 ?

1
Junaid Shahid

標準のkexecカーネルとパニックカーネルには大きな違いがあります。

「通常の」kexecカーネルは、古いカーネルから完全な物理メモリマップ(x86マシンのE820マップ、IBM POWERのデバイスツリーなど)を受け取るため、RAM全体のすべてのメモリ管理構造を初期化します。

一方、パニックカーネルは、最初のカーネルでcrashkernel=パラメータで予約された領域のみを含む変更されたマップを取得します。元のカーネルのRAMマップはELFコアヘッダーで個別に渡され(elfcorehdr=カーネルパラメーターを参照)、パニックカーネルは/ proc/vmcore特殊ファイルを介してのみアクセスできます。

理論的には、残りのRAMはある時点でホットプラグされる可能性がありますが、これは実装されておらず、AFAIKはそれを実現するために取り組んでいません。

1
Petr Tesařík