Файловая система ext4 linux

Файловая система ext4 linux

Fourth extended file system (четвёртая расширенная файловая система (ФС)), сокр. ext4, или ext4fs — журналируемая ФС, используемая в ОС с ядром Linux. Основана на ФС ext3, ранее использовавшейся по умолчанию во многих дистрибутивах GNU/Linux.

Первая экспериментальная реализация ext4 была написана Эндрю Мортоном ( англ. ) и выпущена 10 октября 2006 года в виде патча к ядрам Linux версий 2.6.19-rc1-mm1 и 2.6.19-rc1-git8. [2]

Содержание

Характеристика [ править | править код ]

Основные изменения по сравнению с ext3:

  • увеличение максимального объёма одного раздела диска до 1 эксбибайта ( 2 60 байт ) при размере блока 4 кибибайт ;
  • увеличение размера одного файла до 16 тебибайт ( 2 44 байт );
  • введение механизма пространственной (extent) записи файлов, уменьшающего фрагментацию и повышающего производительность. Суть механизма заключается в том, что новая информация добавляется в конец области диска, выделенной заранее по соседству с областью, занятой содержимым файла.

Ext4 — журналируемая файловая система, предлагаемая для использования по умолчанию инсталятором Ubuntu, начиная с версии 9.10. Количество индексных дескрипторов (i-node) задается только при создании ФС и в дальнейшем может быть только уменьшено 1) . При создании ФС приблизительно 1,8% объёма диска занимается служебными структурами ФС 2) , в дальнейшем размер этих данных увеличиваться будет только на размер каталогов файлов. Кроме того еще 5% (по умолчанию) резервируется для root 3) . Как и в других ФС, используемых в Linux, регистр в именах файлов имеет значение, то есть «Документ.txt» и «документ.txt» — это разные файлы, и они без проблем могут находиться в одной директории.
В отличии от Ext3 в Ext4 пространство под файлы выделяется экстентами: extent — последовательная цепочка блоков, для идентификации которой используется только указатель на начало и длина в блоках (тогда как в Ext2/3 при выделении места используются отдельные блоки и требовалось перечислять все блоки, в которых размещен файл).

Все утилиты требуемые для работы с Ext4 содержатся в пакете e2fsprogs.

Форматирование раздела

Для того, чтоб отформатировать раздел достаточно выполнить комманду:

где — название раздела на котором требуется создать файловую систему Ext4. Например, sda4 (смотри «Системный монитор — Файловые системы»).

Читайте также:  Ps3 split screen игры

Конвертация Ext3 разделов в Ext4

Монтирование раздела как Ext4

Этот способ можно считать самым безопасным, так как физически на диске ничего не меняется и вернуться обратно к Ext3 не составит труда. При монтировании Ext3 как Ext4 будут доступны некоторые оптимизации добавленые в Ext4.

Конвертация в Ext4

Полная конвертация раздела добавит большую часть нововведений Ext4, но некоторые из них будут применяться только к новым файлам. Для того, чтобы выполнить конвертацию раздела в Ext4 достаточно выполнить следующие действия:

Включение новых возможностей на разделе с Ext3:

Проверка раздела на наличие ошибок:

где — название раздела который требуется конвертировать в Ext4.

Дефрагментация

ФС в Linux изначально спроектированы так, чтобы фрагментация файлов была как можно меньше. Тем не менее, фрагментированность файлов имеет место быть, и в некоторых случаях может привести к заметному падению производительности дисковой подсистемы.

Для Ext4 есть несколько дефрагментаторов:

e2fsprogs

Проверка необходимости дефрагментации:

где — название раздела, который требуется дефрагментировать. Например, sda4.

где — название раздела, который требуется дефрагментировать. Например, sda4.

проверка результата (в последней строке вывода должно быть ⩽0.3% non-contiguous):

Оптимизация дискового пространства

На свежесозданном разделе с Ext4 обычно выделяется заметно меньше свободного дискового пространства чем размер раздела. Это происходит потому, что используется порядка 1,8% на служебные нужды: заголовки групп блоков, бинарные поля для учета свободного места, индексные дескрипторы (i-node), основной и множество резервных копий суперблока.
Также по умолчанию, дополнительно резервируется 5% от объема раздела для нужд учетной записи суперпользователя (root) и системных служб (daemons). Обычно это полезно для системного корневого раздела, но на пользовательских разделах необходимости в этом резерве нет, особенно на разделах большого размера, где 5% превращаются в очень приличные объемы (недоступные пользователю).

Изменение процента зарезервированных блоков для нужд суперпользователя

По умолчанию резервируется 5% от объема раздела или диска. Значение 0 отключает резервирование блоков, значение 5 — устанавливает резервирование на 5%.

Изменение числа зарезервированных под служебные нужды блоков

Значение 0 отключает резервирование блоков, значение 5 — устанавливает резервирование 5-и блоков.

Одна из сильных сторон Linux – поддержка обширного набора файловых систем на все случаи жизни, их только в официальном ядре насчитывается порядка десяти-пятнадцати. Сегодня мы рассмотрим файловую систему (ФС), которая негласно принята за стандартную в мире Linux. Более того, её можно назвать эталоном современной ФС – настолько она быстра и надёжна. Конечно, речь идёт об Ext4.

Читайте также:  Как поменять батарейку в часах tissot 1853

Сильные стороны Ext4.

Героиня статьи, как можно догадаться – четвёртая по счёту представительница файловых систем семейства Ext. Де-факто она предлагается как ФС по умолчанию почти во всех крупнейших дистрибутивах. Когда вы при установке Linux выбираете автоматическую разметку, установщик форматирует раздел именно в Ext4.

Отформатировать раздел легко и вручную – достаточно одной команды:

Она создаст на нужном разделе ФС Ext4, автоматически включив все её возможности. А таковых немало:

  • 256-битные иноды, реализующие наносекундную точность временных меток и поддержку расширенных атрибутов;
  • 48-битная адресация, повышающая лимит размера ФС до 260 байт, а возможное количество вложенных каталогов – до бесконечности;
  • экстенты – большие файлы записываются одним последовательным куском, что здорово повышает скорость;
  • контрольные суммы для записей журнала и механизм барьеров – изменения в ФС записываются порциями и подтверждаются хэш-суммами;
  • предварительное выделение места для снижения фрагментации, а также выделение места группами блоков;
  • обратная совместимость с Ext3 и Ext2 – их можно сконвертировать в Ext4 и обратно, отключив неподдерживаемые опции;
  • шифрование на уровне каталогов и файлов;
  • дефрагментация без предварительного размонтирования раздела.

Последний пункт списка наверняка напомнит о Windows с её утилитой для дефрагментации диска, которую приходилось использовать регулярно.

Прелесть Ext4 в том, что фрагментируется она в год по чайной ложке, и нужды в дефрагментации просто нет.

Вот, например, Ext4 на моём жёстком диске:

Как видите, спустя 3 года использования и 3,6 Тб записанных данных уровень фрагментации равен нулю – фрагментировано всего 5 файлов из почти 200 тысяч! Вспоминаю, как NTFS вся покрывалась красными полосками за месяц-другой использования…

Впрочем, даже у значительно фрагментированной Ext4 не сильно страдает производительность. А производительность у неё практически на потолке возможностей файловых систем – скорость чтения и записи сравниваются с показателями голого железа.

Читайте также:  Принцип действия летающей тарелки

Особенно если отключить журналирование, которое хоть и совсем чуть-чуть, но замедляет ФС. Например, Google на своих серверах использует именно Ext4 без журнала – по их заверениям, более быстрой ФС просто не существует.

Журнал можно отключить на этапе создания Ext4:

Либо на уже созданной ФС (она должна быть размонтирована):

Конечно, отключив журнал, вы отдаёте свои данные на волю случая – любой сбой, любое некорректное отключение может повредить или уничтожить их. Поэтому журнал обычно отключают там, где нужна максимальная скорость, а данные не столь важны: всякие кэши, временные файлы, и т. д.

Одна из приятных фич Ext4, пришедшая в ядрах 4.1 и новее – встроенное шифрование. Использовать его несложно:

Как видно, после удаления ключа шифрования имя файла в зашифрованном каталоге превратилось в кашу, а прочитать его содержимое стало невозможно. Так что не теряйте свои ключи, если уж зашифровали что-то.

Слабые стороны Ext4.

Даже у такой прекрасной ФС есть свои недостатки. И хотя рядовой пользователь вряд ли столкнётся с ними когда-нибудь, знать о них не будет лишним.

Иноды выделяются при создании ФС. Их достаточно много, но в редких случаях они могут кончиться, а это значит, что даже при наличии свободного места вы не сможете создавать новые файлы и каталоги. К тому же, иноды занимают немало места – до 10% от объёма раздела.

Несмотря на надёжность Ext4, иногда она всё-таки портит файлы, когда происходит внезапное отключение питания при записи в них. За 3 года я так потерял несколько фотографий, так что не забывайте про бэкапы.

Если хранить в одном каталоге более миллиона файлов, скорость работы с ними будет ну о-о-очень низкой. Так что соблюдайте иерархию, раскладывайте файлы по каталогам, не устраивайте свалки.

Ext4 – тупиковая ветвь эволюции, развиваться она не будет. Из архитектуры Ext больше ничего нельзя выжать, да и разработчики сконцентрировали усилия на Btrfs, о которой пойдёт речь в одной из будущих статей.

Ссылка на основную публикацию
Adblock detector