Файловая система Ext4 - Знание нативной файловой системы Linux

Что такое файловая система Ext4 - полное руководство по Ext4

что такое файловая система ext4

Четвертая расширенная файловая система (Ext4) - это собственная файловая система Linux, созданная для преодоления проблем Ext3. Сначала файловая система была выпущена в виде расширений для Ext3, которые были обратно совместимы. Позже, из соображений стабильности, производитель решил сделать форк исходного кода, и все разработки велись там. Google дополнительно решил использовать Ext4 в Android 2.3. В этой статье вы прочтете о совместимости Ext4, истории, возможностях и сравнении с другими файловыми системами Linux.

Часть 1. Совместимость файловой системы Ext4

Файловая система Ext4 стала файловой системой по умолчанию для многих популярных дистрибутивов Linux, таких как Ubuntu и Debian. Эта файловая система официально несовместима с Windows и macOS, но есть способы обойти это ограничение.

У пользователей Windows есть несколько вариантов. Они могут воспользоваться сторонними приложениями, использовать WSL 2 или преобразовать его в NTFS. Ознакомьтесь с шагами в статье как монтировать Ext4 в Windows.

Пользователи Mac могут использовать такие инструменты, как macFUSE, хосты виртуальных машин или сторонние приложения, предоставляющие доступ к этой файловой системе. Вот учебник по монтированию и доступу к файлам Ext4 на macOS.

Часть 2. История файловой системы EXT

ext4 хронология

Minix

Minix была изначально создана в 1987 году Эндрю С. Таненбаумом в качестве учебного пособия для его книги "Проектирование и реализация операционных систем". Сегодня это текстово-ориентированная ОС с ядром, состоящим из менее чем 6 000 строк кода. Наиболее известным притязанием MINIX является пример микроядра, в котором каждый драйвер устройства запускается как изолированный процесс пользовательского режима. Такая структура повышает безопасность и надежность, поскольку ошибка в драйвере не может вывести из строя всю систему.

В настоящее время MINIX широко известен как сноска в истории GNU/Linux. Эта файловая система побудила Линуса Торвальдса к разработке Linux, и некоторые из его ранних работ были написаны на MINIX. Ранее принятое Торвальдсом решение о поддержке файловой системы MINIX стало причиной того, что ядро Linux поддерживает практически все мыслимые файловые системы.

EXT

Самая ранняя файловая система EXT (Extended) была создана Реми Кардом и выпущена вместе с операционной системой Linux в 1992 году, чтобы преодолеть ограничения размера файловой системы Minix. Непосредственные структурные изменения коснулись метаданных файловой системы, которая была основана на Unix filesystem (UFS), также известной как Berkeley Fast File System (FFS).

Об этой файловой системе имеется мало информации, поскольку она имела значительные проблемы и была быстро вытеснена файловой системой EXT2.

EXT2

Поначалу файловая система Ext2 была довольно успешной. Пользователи использовали Ext2 в дистрибутивах Linux в течение нескольких лет и были довольны. Файловая система EXT2, по сути, имеет точно такие же структуры метаданных, как и файловая система EXT. Однако EXT2 более проста, если учитывать объем дискового пространства, которое остается между структурами метаданных для предстоящего использования.

Подобно Minix, EXT2 содержит загрузочный сектор в первом секторе жесткого диска, на котором он установлен, который имеет минимальную загрузочную запись и таблицу разделов. Кроме того, после завершения работы загрузочного сектора на диске остается некоторое количество зарезервированного пространства. Это зарезервированное пространство занимает место между загрузочной записью и первым разделом жесткого диска, который часто находится на границе следующего цилиндра.

Структура групп цилиндров в файловых системах ext

EXT3

Файловая система EXT3 была создана с целью преодолеть огромные затраты времени, которые требовались программе fsck для полного восстановления структуры диска, испорченной неправильным выключением, которое произошло во время операции обновления файлов. Уникальным дополнением к файловой системе EXT стала функция журнала, которая заранее записывает изменения, которые будут внесены в файловую систему.

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

EXT4

В EXT4 производитель изменил распределение данных с фиксированных блоков на экстенты. Экстент описывает начальное и конечное место на жестком диске. Эта особенность позволяет описывать длинные, физически соседние файлы в одном элементе указателя iNode, что может значительно уменьшить количество указателей, необходимых для определения расположения всех данных в больших файлах. EXT4 уменьшает фрагментацию, распределяя вновь созданные файлы по всему диску, чтобы они не группировались в одном месте диска, как это делали многочисленные ранние файловые системы для ПК.

Алгоритмы распределения файлов стараются как можно более равномерно распределить файлы между группами цилиндров и, если требуется фрагментация, максимально плотно прижимать прерывистые экстенты файлов к другим, чтобы значительно уменьшить задержки поиска и вращения головок.

inode в файловой системе ext4

Если вам нужно восстановить данные с разделов Ext2-Ext4, вы можете воспользоваться Wondershare Recoverit.

восстановление данных

Wondershare Recoverit - восстановление драгоценных данных на Mac

5 481 435 человек скачали ее.

Recoverit может найти данные из опустошенной корзины Mac, данные, потерянные из-за плохого сектора, повреждения жесткого диска и случайного необратимого удаления.

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

Поддерживает восстановление 1000+ типов форматов файлов: DOC/DOCX, XLS/XLSX, PDF, JPG, HEIF, HTML, INDD, EPS, MP4, MP3, zip и т.д.

Бесплатная версия, чтобы попробовать и платная версия, чтобы насладиться больше.

Часть 3. Особенности Ext4

  • Размер файловой системы: Ext4 допускает файловые системы размером до 1 экзбибайта и файлы размером до 16 тебибайтов. Файловая система ext3 предоставляет только максимальный размер файловой системы 16 ТБ и максимальный размер файла 2 ТБ.
  • Экстенты: Идея extent означает "граничащая последовательность физических блоков". Большие файлы делятся на несколько "экстентов". Затем файлы распределяются на "один экстент", а не на определенный размер, что позволяет обойти косвенное сопоставление блоков. Каждый iNode хранит до 4 экстентов файла и индексирует остальные в Htree. Поэтому экстенты позволяют уменьшить фрагментацию, которая возникает при последовательном распределении блоков, и повысить производительность.
  • Замедленное и многоблочное выделение: многоблочное выделение (mballoc) выделяет несколько блоков для файла за одну операцию, а не выделяет их по одному, как в ext3. Эта функция уменьшает накладные расходы на вызов "распределителя блоков" несколько раз и оптимизирует распределение памяти. В функции отложенного выделения, если функция записывает данные на диск, а не выделяет их сразу, данные будут сохранены в кэше. При отложенном распределении все данные в кэш будут записаны только после "промывки" кэша. Эта техника называется "выделение при промывке"
  • Онлайн-дефрагментация и скорость fsck: Уровень фрагментации меньше в системах ext4 благодаря техникам, о которых мы говорили выше. Однако это не означает 0% фрагментации. При необходимости дефрагментацию можно выполнить онлайн с помощью инструмента "e4defrag".
  • Контрольное суммирование журнала: Ext4 использует контрольную сумму журнала для определения состояния блоков журнала. Эта функция используется для предотвращения повреждения данных. Вы можете отключить режим журналирования в ext4, если он вызывает накладные расходы.
  • Inodes/Timestamps: Файловая система ext4 по умолчанию имеет большой размер inode - 256 байт, в то время как ext3 имеет только 128 байт для inodes. Точность временных меток хранится в наносекундах вместо секунд в случае ext3.
  • Обратная совместимость: Файловые системы Ext3 могут быть легко перенесены на ext4 без форматирования или переустановки ОС, если ядро поддерживает файловую систему ext4.

Подробнее: How To Undelete Files on EXT4 File System

Часть 4. Преимущества и недостатки Ext4

Плюсы

Вы можете использовать различные диски/LUNs и получить более удовлетворительную производительность. Это может повысить производительность баз данных, поскольку журнал транзакций можно разместить на одном диске, а файлы данных - на другом. Сравнимо с веб-приложениями с интенсивным дисковым вводом-выводом

Вы можете использовать различные опции монтирования, которые повышают защиту или влияют на производительность или стабильность более гранулированно

Вы управляете пространством отдельно. Таким образом, вы можете иметь вредоносное приложение, заполняющее пространство, которое не влияет на другие приложения

Фрагментация конкретного раздела отдельно от других

Вы можете делать моментальные снимки, монтировать, монтировать, форматировать, дефрагментировать и контролировать производительность файловых систем

Вы можете использовать шифрование на определенных томах

Вы можете монтировать тома по требованию

Преимущества

Файловая система повышает накладные расходы на администрирование

У вас будет больше случаев, когда вы потратили больше дискового пространства, чем нужно

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

Сложнее создать согласованный моментальный снимок приложения, работающего на разных томах

Использует немного больше ресурсов

В зависимости от типа тома (метка MS-DOS, LVM, btrfs...), вы можете оказаться не в состоянии эффективно распределить место на одном томе, уменьшив другой том

Часть 5. Работа с Ext4

  • Создание файлов на файловой системе Ext4

Для создания файлов на Ext4 необходимо отформатировать раздел с файловой системой Ext4 с помощью команды mkfs.ext4:

~]# mke4fs -t ext4 blockdevice

вывод команды mkfs.ext4

В этой командной строке блочное устройство - это раздел, который будет содержать файловую систему ext4, которую вы будете создавать.

Маркировка раздела с помощью команды e4label:

~]# e4label <block_device> new-label

Создание точки монтирования и монтирование новой файловой системы в эту точку монтирования:

~]# mkdir /mount/point

~]# mount block_device /mount/point

  • Монтирование файловой системы Ext4 и установка параметров

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

~]# mount block_device /mount/point

Чтобы задать параметры для вашего файла, используйте команду tune2fs. Некоторые параметры, которые можно задать с помощью этой команды, приведены ниже:

Установка метки тома: используйте опцию -L наряду с tune2fs, подобно этой командной строке: sudo tune2fs -L Label_Name /dev/sda2

Параметры файловой системы: снова используйте опцию -L с tune2fs, идентичную следующей командной строке: sudo tune2fs -l /dev/sda2

  • Размещение файловой системы Ext4

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

~]# resize4fs block_devicenew_size

  • Дефрагментация файловой системы Ext4

Некоторые файлы Ext4 созданы с опцией extent, что означает, что вы можете использовать e4defrag для выполнения дефрагментации. Чтобы проверить уровень фрагментации, используйте эту командную строку:

sudo e4defrag -c /path/to/myfiles

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

e4defrag /path/to/myfiles

Часть 6. Ext4 в сравнении с другими файловыми системами Linux

Linux поддерживает различные файловые системы, такие как Ext4, XFS, Btfrs, ZFS, JFS и NTFS. Каждый тип файловой системы решает разные проблемы и имеет свои ограничения.

Файловые системы Linux
Дата выхода
Разработчик
Идеальное использование
ограничения
Ext4 Декабрь 2008 Мингминг Цао, Андреас Дилгер, Алекс Журавлев (Томаш), Дэйв Клейкамп, Теодор Ц'о, Эрик Сандин, Сэм Нагшине Применение для приложений, использующих один поток чтения или записи Не имеет функции безопасного удаления
XFS Май 2000 Silicon Graphics, Red Hat Лучше всего использовать для больших вычислительных систем и систем, требующих высокой производительности Операции с метаданными
Btrfs Март 2009 Facebook, Fujitsu, Fusion-IO, Intel, Linux Foundation, Netgear, Oracle Corporation, Red Hat, STRATO AG и openSUSE Лучше всего, когда используется для противодействия таким препятствиям, как отказоустойчивость, управление и защита данных Высокий уровень фрагментации данных
ZFS Июнь 2006 Sun Microsystems создание файловой системы, охватывающей ряд дисков или пул Невозможность проверить работоспособность оперативной памяти в случае ошибок данных
JFS Июнь 2001 IBM и др. Сохранение согласованности метаданных при их журналировании Невозможность уменьшить раздел JFS
NTFS 1993 Microsoft Предотвращение потери данных в случае потери питания Проблемы совместимости с android и macOS

Вы можете узнать, какую файловую систему Linux следует использовать для вашего компьютера в видеоинструкции ниже:

Бесплатная загрузка

Для Windows XP/Vista/7/8/10/11

Бесплатная загрузка

Для macOS X 10.10 - macOS 13

Также люди спрашивают

Различные бенчмарки пришли к выводу, что файловая система ext4 может выполнять несколько операций чтения-записи быстрее, чем раздел NTFS. Обратите внимание, что хотя эти тесты не показывают реальную производительность, мы можем экстраполировать эти результаты и использовать это как одну из причин.

Формат файловой системы Ext4 является родным для Linux, а операционная система Windows не поддерживает его по умолчанию, но есть способы его обойти.

Основная причина неспособности Windows читать Ext4 заключается в том, что она не имеет драйверов, созданных для этой файловой системы.

В интернете можно найти множество тестов, утверждающих, что формат файловой системы Ext4 намного быстрее, чем FAT32 (и даже NTFS).

Статьи по теме