圧縮、暗号化、および次の機能をサポートするext4ファイルシステムについて読んでいます。範囲ディスク容量を節約するために使用されます。エクステントとは何ですか?ディスクスペースの節約にどのくらい効果的ですか?
答え1
範囲は、大容量ファイルのデータブロックを追跡するために必要なメタデータの量を減らします。アイデアは、ファイルを構成する個々のブロックのリストを保存するのではなく、連続する各ブロック範囲の最初のブロックと最後のブロックのアドレスのみを保存することです。これらの連続したデータブロック範囲(およびそれを表す数値ペア)を呼び出します。範囲。
ファイルの最初の数ブロックのアドレスは inode に保存されますが、inode サイズは固定されているため、小さなファイルでのみ機能します。 ext2またはext3では、大容量ファイルを使用する必要があります。間接ブロックinode自体に合わないブロックアドレスリストの残りの部分を格納します。つまり、インデックスノードには、ブロックリストを含むブロックのアドレスが含まれます。これらは呼び出されます間接ブロック。これらの追加ブロックは通常、範囲を使用する場合には必要ありません。範囲を保存するには、説明するブロック範囲のサイズに関係なく、一定量のスペースが必要になるためです。
非常に断片化されたファイルには、まだ追加のメタデータブロック(ext4が呼び出すもの)が必要な場合があります。範囲ノード)長い範囲のリストを保存するために使用されますが、通常必要なものよりはるかに少ないです。
ただし、メタデータサイズの縮小は通常、ファイルサイズと比較してかなり小さいです。範囲の主な目的は、スペース自体を節約するのではなく、パフォーマンスを向上させることです(断片化を減らし、読み書きするメタデータブロックを減らすこと)。
答え2
~からhttp://ext2read.blogspot.ch/2010/03/how-ext4-extents-work-earlier-ext2-and.html:
初期のExt2とExt3にはファイルサイズ制限がありました。 32ビットブロック番号を使用してデータブロックにアクセスします。したがって、最大ファイルサイズ制限は、2 ^ 32 *ブロックサイズ(4k **など)= 16 TB *です。また、必要な間接参照の量が多いため、大容量ファイルへのアクセス時間が遅くなります。 Ext4ファイルシステムは非常に大きなファイルをサポートでき、ブロックアドレスを指定するために48ビットがあります。また、範囲を使用してデータを保存するため、大容量ファイルのアクセス時間が速くなります。
データブロックの情報は、inode構造のi_dataに格納されます。エクステントのないシステムでは、最初の12項目に最初の12データブロックのブロック番号が含まれます。その後、間接ブロックのブロック番号が含まれます。このブロックには、データを指すブロック番号の配列が含まれています。同様に、二重間接ブロックと三重間接ブロックがあります。したがって、非常に大きなファイルからデータをインポートする必要がある場合は、これらの間接的な方法を使用する必要があります。