Расскажите об устройстве и ключевых особенностях файловой системы ext4

Ответ

Ext4 (Fourth Extended Filesystem) — это стандартная журналируемая файловая система для многих дистрибутивов Linux, являющаяся развитием ext3.

Ключевые особенности:


  • Журналирование (Journaling)

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



  • Экстенты (Extents)

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



  • Отложенное выделение (Delayed Allocation)

    Файловая система откладывает выделение дисковых блоков до момента фактической записи данных на диск (а не в момент вызова write() в приложении). Это позволяет файловой системе принимать более оптимальные решения о расположении данных, что также снижает фрагментацию.



  • Поддержка больших объемов

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



  • Контрольные суммы (Checksums)

    Для повышения надежности в ext4 добавлены контрольные суммы для журнала и метаданных. Это помогает обнаруживать и предотвращать повреждения данных.



  • Обратная совместимость

    Файловую систему ext4 можно примонтировать как ext3 (с потерей новых возможностей), что обеспечивает плавный переход.