Файловые системы Linux. Ext4
- Информация о материале
- Категория: Linux
- Опубликовано: 24.12.2017, 18:22
- Автор: HelpDesk
- Просмотров: 1525
Одна из сильных сторон Linux – поддержка обширного набора файловых систем на все случаи жизни, их только в официальном ядре насчитывается порядка десяти-пятнадцати. Сегодня мы рассмотрим файловую систему (ФС), которая негласно принята за стандартную в мире Linux. Более того, её можно назвать эталоном современной ФС – настолько она быстра и надёжна. Конечно, речь идёт об Ext4.
Сильные стороны 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, о которой пойдёт речь в одной из будущих статей.