Ext4 total commander plugin, ext4 mac, ext4 keenetic, xfs 2 ext4

01-02-2024


ext4
Разработчик

Mingming Cao, Andreas Dilger, Alex Zhuravlev (Tomas), Dave Kleikamp, Theodore Ts'o, Eric Sandeen, Sam Naghshineh и другие

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

Fourth extended file system

Дата представления

Стабильная версия:
21 октября 2008
Тестовая версия:
10 октября 2006
(Linux 2.6.28, 2.6.19)

Метка тома

0x83 (MBR)
EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 (GPT)

Структура
Содержимое папок

hashed B-tree

Размещение файлов

Extents/Bitmap

Сбойные сектора

Table

Ограничения
Максимальный размер файла

16 тебибайт (размер кластера 4 кибибайта)

Максимум файлов

4 миллиарда (specified at filesystem creation time)

Максимальная длина имени файла

256 байт

Максимальный размер тома

1 эксбибайт (ограничен до 16 тебибайт из-за ограничений e2fsprogs)

Допустимые символы в названиях

Все байты кроме NULL и '/'

Возможности
Свойства

modification (mtime), attribute modification (ctime), access (atime), delete (dtime), create (crtime)

Диапазон дат

14 декабря 1901 - 25 апреля 2514

Точность хранения даты

Наносекунда

Потоки метаданных

Нет

Атрибуты

extents, noextents, mballoc, nomballoc, delalloc, nodelalloc, data=journal, data=ordered, data=writeback, commit=nrsec, orlov, oldalloc, user_xattr, nouser_xattr, acl, noacl, bsddf, minixdf, bh, nobh, journal_dev

Права доступа

POSIX

Фоновая компрессия

Нет

Фоновое шифрование

Нет

Поддерживается ОС

Linux, Windows (только чтение)

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

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

Содержание

Характеристика

Основной особенностью стало увеличение максимального объёма одного раздела диска до 1 эксбибайта (260 байт) при размере блока 4Kb, и увеличение размера одного файла до 16 тебибайт. Кроме того, в ext4 представлен механизм пространственной (extent) записи файлов (новая информация добавляется в конец заранее выделенной по соседству области файла), уменьшающий фрагментацию и повышающий производительность.

Особенности

  • Использование экстентов. В файловой системе ext3 адресация данных выполнялась традиционным образом, поблочно. Такой способ адресации становится менее эффективным с ростом размера файлов. Экстенты позволяют адресовать большое количество (до 128 MB) последовательно идущих блоков одним дескриптором. До 4х указателей на экстенты может размещаться непосредственно в inode, что достаточно для файлов маленького и среднего размера.
  • 48-битные номера блоков. При размере блока 4K это позволяет адресовать до одного эксбибайта (248*4KB = 250*1KB = 260 B = 1 EB).
  • Выделение блоков группами (multiblock allocation). Файловая система хранит не только информацию о местоположении свободных блоков, но и количество свободных блоков, идущих друг за другом. При выделении места файловая система находит такой фрагмент, в который данные могут быть записаны без фрагментации. Это снижает уровень фрагментации файловой системы в целом.
  • Отложенное выделение блоков (delayed allocation). Выделение блоков для хранения данных файла происходят непосредственно перед физической записью на диск (например, при вызове sync), а не при вызове write. В результате, операции выделения блоков можно делать не по одной, а группами, что в свою очередь минимизирует фрагментацию и ускоряет процесс выделения блоков. С другой стороны, увеличивает риск потери данных в случае внезапного пропадания питания.
  • Превышен лимит в 32000 каталогов. В ext3, если не использовать специальные патчи, в одном каталоге можно было создать не более 32000 подкаталогов (или, если быть совсем точным, до 65535 каталогов, но только изменяя константы ядра).
  • Резервирование inode'ов при создании каталога (directory inodes reservation). При создании каталога резервируется несколько inode'ов. Впоследствии, при создании файлов в этом каталоге сначала используются зарезервированные inode'ы, и если таких не осталось, выполняется обычная процедура.
  • Размер inode. Размер inode (по умолчанию) увеличен с 128 до 256 байтов. Это дало возможность реализовать те преимущества, которые перечислены ниже.
  • Временные метки с наносекундной точностью (nanosecond timestamps). Более высокая точность времён, хранящихся в inode. Диапазон хранящихся времён тоже расширен: если раньше верхней границей хранимого времени было 18 января 2038 года, то теперь это 25 апреля 2514 года.
  • Версия inode. В inode появился номер, который увеличивается при каждом изменении inode файла. Это будет использоваться, например, в NFSv4, для того чтобы узнавать, изменился ли файл.
  • Хранение расширенных атрибутов в inode (EA in inode). Хранение расширенных атрибутов, таких как ACL, атрибутов SELinux и прочих, позволяет повысить производительность. Атрибуты, для которых недостаточно места в inode, хранятся в отдельном блоке размером 4KB. Предполагается снять это ограничение в будущем.
  • Контрольное суммирование в журнале (Journal checksumming). Контрольные суммы журнальных транзакций. Позволяют лучше найти и (иногда) исправить ошибки при проверке целостности системы после сбоя.
  • Предварительное выделение (persistent preallocation). Сейчас для того, чтобы приложению гарантированно занять место в файловой системе, оно заполняет его нулями. В ext4 появилась возможность зарезервировать множество блоков для записи и не тратить на инициализацию лишнее время. Если приложение попробует прочитать данные, оно получит сообщение о том, что они не проинициализированы. Таким образом, несанкционированно прочитать удалённые данные не получится.
  • Дефрагментация без размонтирования (online Defragmentation). Реализовано в самой последней версии e2fsprogs. (~/misc/e4defrag)
  • Неинициализированные блоки (uninitialised groups). Пока не реализовано. Позволяет ускорить проверку файловой системы с помощью fsck. Блоки, отмеченные как неиспользуемые, проверяются группами, и детальная проверка производится только если проверка группы показала, что внутри есть повреждения. Предполагается, что эта возможность может очень сильно ускорить процесс проверки целостности файловой системы; в зависимости от способа размещения данных время проверки будет составлять от 1/2 до 1/10 от нынешнего.

Поддержка в операционных системах

В системах Ext2read. Частичный функционал работы с ext4 на уровне драйвера Ext2Fsd Project.

Дистрибутивы Linux

См. также

Примечания

  1. Официальное объявление Эндрю Мортона о включении поддержки ext4  (англ.) (txt).
  2. Release Notes for Red Hat Enterprise Linux 6 - File Systems  (англ.). Архивировано из первоисточника 3 июня 2012.
  3. Android will be using ext4 starting with Gingerbread, Thoughts by Ted (12 December 2010). Проверено 20 декабря 2010.
  4. Android 2.3 Platform Highlights. Android Developers (6 December 2010). Архивировано из первоисточника 21 января 2012. Проверено 7 декабря 2010.

Ссылки

Официальные ресурсы

  • Ext4 (and Ext2/Ext3) Wiki  (англ.) (Архивировано из первоисточника 19 мая 2012. Проверено 29 мая 2010.
  • Ext4 Development project  (англ.). bullopensource.org. — Страница проекта по разработке файловой системы ext4 (с 2009 года эта страница более не поддерживается). Архивировано из первоисточника 21 января 2012. Проверено 29 мая 2010.

Материалы на русском языке

  • ext4 (Архивировано из первоисточника 21 января 2012. Проверено 29 мая 2010.
  • acheron «Интервью о состоянии поддержки ext4 в Fedora 9». Архивировано из первоисточника 21 января 2012. Проверено 29 мая 2010.
  • apelsyn «ext4: Еще тестируется или уже работает?». Архивировано из первоисточника 21 января 2012. Проверено 29 мая 2010.
  • Родерик Смит «IBM: Переход на ext4». IBM DeveloperWorks (20 ноября 2008). — Подготовка к новейшей файловой системе для Linux. Архивировано из первоисточника 21 января 2012. Проверено 29 мая 2010.
  • Boten «Полноценный доступ ко всем Linux-файловым системам в Windows 2000/XP/Vista/7 с помощью coLinux». Архивировано из первоисточника 21 января 2012.

Материалы на английском языке

  • KernelTrap (англ.)
    • Jeremy Andrews «ext4 2.6.25 Merge Plans» (22 января 2008). Архивировано из первоисточника 21 января 2012. Проверено 29 мая 2010.
    • Jeremy Andrews « Linux: ext4 Filesystem» (29 июня 2006). Архивировано из первоисточника 21 января 2012. Проверено 29 мая 2010.
  • LWN.net
    • Jonathan Corbet «A better ext4» (23 января 2008). Архивировано из первоисточника 21 января 2012. Проверено 29 мая 2010.
    • Theodore Ts'o «ext4 merge plans for 2.6.25» (21 января 2008). Архивировано из первоисточника 21 января 2012. Проверено 29 мая 2010.
    • Jonathan Corbet «Time for ext4?» (12 июня 2006). Архивировано из первоисточника 21 января 2012. Проверено 29 мая 2010.
  • Ext4: The Next Generation of Ext2/3
  • Features/Ext4 (Архивировано из первоисточника 21 января 2012. Проверено 29 мая 2010.
  • Jonathan Corbet «Linux Weather Forecast/filesystems» (26 января 2009). — обзор множества новых файловых систем в Linux, в том числе ext4 и прогнозы что их ждёт.(недоступная ссылка — история) Проверено 29 мая 2010.
  • Avantika Mathur, Mingming Cao, Andreas Dilger «ext4: the next generation of the ext3 file system». Originally published in «login: The USENIX Magazine», 32, #3 (Berkeley, CA: USENIX Association, 2007) (2007). — очень подробное объяснение каждой новой возможности ext4. Архивировано из первоисточника 21 января 2012. Проверено 29 мая 2010.
  • First benchmarks of the ext4 file system. linuxinsight.com (21 октября 2006). — Тестирование возможностей ext4. Архивировано из первоисточника 21 января 2012. Проверено 29 мая 2010.


Ext4 total commander plugin, ext4 mac, ext4 keenetic, xfs 2 ext4.

Сурава, Президент Республики Сербской, Ангун, Проект:Города России/Списки улиц/Туймазы, Музей истории Москвы.

© 2011–2023 stamp-i-k.ru, Россия, Барнаул, ул. Анатолия 32, +7 (3852) 15-49-47