Назад | Перейти на главную страницу

Атрибут extents в Linux ext4

Я заметил e атрибут для нескольких файлов / каталогов на машинах Linux, установленных в файловых системах ext4.

[kelly@p2820887.pubip.serverbeach.com ~]$ lsattr -d /bin
-------------e- /bin

В соответствии с chattr(1):

Атрибут ’e’ указывает, что файл использует экстенты для отображения блоков на диске. Его нельзя удалить с помощью chattr (1).

Чем это отличается, и, что более важно, чем эта деталь важна - в частности, почему эта деталь настолько важна, чтобы ее можно было сообщить как атрибут файла? При каких обстоятельствах я должен когда-либо изменить свое поведение, зная, что этот файл «использует экстенты для отображения блоков на диске»? По-видимому, это то, что мне нужно знать, иначе это не было бы так очевидно, верно?

Я думаю, что флаг экстента представлен как атрибут в основном для того, чтобы вы могли устанавливать это с chattr, что заставит драйвер ext4 перераспределить файл, используя экстенты вместо списков блоков. Если вы преобразовали существующую файловую систему ext3 в ext4 (используя tune2fs чтобы включить новые флаги функций), вы, вероятно, захотите преобразовать существующие файлы для использования экстентов, и это способ сделать это.

Вновь созданные файлы в файловой системе ext4 всегда используют экстенты (насколько я знаю), поэтому, если ваша файловая система была создана как ext4 (в отличие от преобразованной из ext3), все должно иметь атрибут экстента, поэтому вам не нужно беспокоиться об этом.

Видеть Эта статья Чтобы получить больше информации.