web-dev-qa-db-ja.com

Linux ext4の "extents"属性

Ext4ファイルシステムにインストールされたLinuxマシンのいくつかのファイル/ディレクトリのe属性に気づきました。

_[[email protected] ~]$ lsattr -d /bin
-------------e- /bin
_

chattr(1)によれば:

'e'属性は、ファイルがディスク上のブロックをマッピングするためにエクステントを使用していることを示します。 chattr(1)を使用して削除することはできません。

これはどのように異なるのか、そしてより重要なのは、この詳細がどのように重要なのか-特に、この詳細がファイル属性として報告されるのに十分重要なのはなぜですか?このファイルが「ディスク上のブロックのマッピングにエクステントを使用している」という知識に基づいて、どのような状況で動作を変更する必要がありますか?これはおそらく私が知っておく必要があることでしょう。そうでなければ、それはそれほど明白にはなりませんよね?

9
tylerl

エクステントフラグは主に属性として公開されているため、chattrを使用してsetできるため、ext4ドライバーはブロックリストの代わりにエクステントを使用してファイルを再割り当てします。既存のext3ファイルシステムをext4に変換した場合(tune2fsを使用して新しい機能フラグを有効にすることにより)、エクステントを使用するように既存のファイルを変換することになるでしょう。これがその方法です。

Ext4ファイルシステム上に新しく作成されたファイルは常にエクステントを使用します(私の知る限り)。したがって、ファイルシステムがext4として作成された場合(ext3から変換されたものではありません)、すべてにエクステント属性がすでにあるため、必要ありません。それについて心配してください。

詳細は この記事 を参照してください。

13
Wyzard