ファイルシステムのルート用に予約されたスペース - なぜですか?

ファイルシステムのルート用に予約されたスペース - なぜですか?

私が知っている限り、デフォルトで新しく作成されたファイルシステムは、ルートに割り当てられたスペースの5%を使用して作成されます。また、次のように定義されたスペースを変更できることもわかります。

tune2fs -m 1 /dev/sdXY

しかし、私が気になったのは、この予約済みスペースが実際にどのような用途に使用されるのかということです。実用的な目的に合致し、場合によってはスペースの5%以上の価値がありますか?

私がこの質問を誤って発見したのは、最近1TBのファイルストアを構築しました。

答え1

重要なルートプロセス(および可能な回復操作)のためのスペースを節約することも1つの理由です。

しかし、別のものがあります。 Ext3はファイルシステムの断片化を防ぐのに非常に優れていますが、一度95%以上になると、この動作が急激に低下し、ファイルシステムのパフォーマンスが突然混乱します。したがって、5%を維持するとクッションが提供されます。

Ext4はこれに対してより良い作業を行う必要があります。Linuxファイルシステム開発者/専門家Theodore Ts'oが説明します。:

スケジュールされたブロック数を0に設定すると、長時間実行(多くのファイルを作成および削除)し、ファイルシステムがほとんどいっぱいでない限り(例えば95%)、この時点で破片の問題が発生します。 Ext4のマルチブロックアロケータは、隣接するブロックを見つけるのが難しいため、断片化に強いです。したがって、他のext4機能を有効にせずに、単にファイルシステムの前にext4を使用してext3ファイルシステムをマウントしても、完全に完全なより良い結果を見ることができます。

ファイルが頻繁に変更されない長期アーカイブファイルシステム(大容量mp3やビデオストレージなど)を使用している場合、これは明らかに重要ではありません。

答え2

たとえば、他の人がSSHを介してシステムにログインすることを許可している場合、この5%ブロックを予約すると外部ユーザーがディスクをいっぱいにすることはできません。他の人がシステムにログインすることを許可しない場合でも、スケジュールされたブロックはrootとして実行されていないプログラムがディスクをいっぱいにするのを防ぎます。

答え3

システムパーティションにはデフォルト値の5%が適しています。たとえば、ディスク容量がいっぱいになっても、syslog(/var/log)とルートメールボックス(/var/mail/root)は依然として重要な情報を受け取ることができます。通常のデータストレージパーティションの場合、ルート用の/homeスペースを残す必要はありません。特別な要件がある場合は、緊急スペースを確保するユーザーを変更できます(tune2fs -u 1234)。

ext [234]ファイルシステムがいっぱいになるのを許可しない別の理由があります。分裂

答え4

スケジュールされたブロックを使用すると、ルートではなく特定のユーザーとして実行されているユーザーとサービスはファイルシステムを埋めることができず、そのファイルシステムに書き込む必要がある他のコンテンツを破損する可能性があります。ただし、rootとして実行されているサービスはまだ完全に完了できます。もちろん、いっぱいです。

また、ユーザーがディスクがいっぱいであると文句を言ったり、ファイルシステムがいっぱいになったりしてサービスが失敗し始めたときに空き容量を提供します。たとえば、特定のファイルを削除する前にzip / gz / 7zipアーカイブにアーカイブすることができます(ただし、ファイルシステムがいっぱいになっている場合はアーカイブファイルを作成できる他の利用可能なファイルシステムがあるかもしれません)。

5%がデフォルトになりました長いそれ以来、ディスクははるかに小さくなりました(数百ギガバイトではなく数十メガバイト)、5%はそれほど多くありません。幸いなことに、tune2fssオプションを代わりに使用すると、話す-r内容のより小さい割合に簡単に調整したり、特定のブロック数に設定したりできます-m。どちらの場合も、引数0を指定して保存を完全にオフにすることができます。などの場合は、これを実行しませんが、ユーザーストアとしてのみ機能するファイルシステム(グローバルファイル共有など)、または次のファイルに対してこれを実行できます/。新しいファイルを作成するときにのみ大きくなる固定サイズのファイル(固定サイズの仮想マシンなど)を保持します。/tmp/var

関連情報