Linuxカーネルの実行中にハードドライブに障害が発生した場合、どうなるかを常に知りたいと思っていました。カーネルイメージ自体は完全にRAMに読み込まれるため、カーネルに障害が発生することはないと思います。明らかに、ディスクにアクセスしようとしたソフトウェアは失敗します。
システムが無期限に稼働し続ける可能性はありますか?そうでない場合、パニックになる(または少なくとも動作不能になる)原因は何ですか?
次の各シナリオを検討してください。
- カーネルでスワップファイルが有効になっている場合と有効になっていない場合があります。
- 障害が発生した後、カーネルモジュールをロードする試みは行われません。
- ファイルシステムの特定の部分が異なるディスク上にある場合、違いはありますか?
承認された回答:
ハードウェア障害は、一般的にテストがはるかに少ないため、常にカーネルをクラッシュさせるリスクがありますが、通常、障害が発生したハードドライブはカーネルをクラッシュさせることはありません。正確に何が起こるかは、障害の性質によって異なります。おそらく、特定のセクターのみが読み取り不能になり、/ homeパーティションの一部が読み取り不能になりますが、システムは、システム管理者が問題を分析するために引き続き実行可能です。ルートファイルシステムが使用できなくなると、単純なシェルでさえ利用できなくなるため、カーネルのクラッシュに関係なく、システムはほとんど機能しなくなります。スワップパーティションが使用できなくなった場合、スワップを使用しているプログラムは、スワップアウトされたデータを読み込むときに障害をセグメント化します。クラッシュしたハードドライブが単に追加のストレージである場合、一部のファイルシステムが読み取れなくなる以外はほとんど影響がない可能性があります。
また、ハードドライブがスローしているエラーの種類によっても異なります。ドライブが事実上消えて、ファイルシステムが消えるだけでなく、すべてが正常に動作するのを見てきました。また、ハードドライブが継続的にシステムをハングさせ、長いタイムアウトの後にエラーをスローして、システム全体のパフォーマンスを低下させるのを見てきました。 RAID1 / 4/5を実行しているMDのようなレイヤーを使用している場合、重大なエラーは通常、カーネルがディスクを障害としてマークするだけで、システムの実行を維持するために残りのドライブに依存していることを無視します。