ext4

ext4


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)

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

Linked list, 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 от нынешнего.

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

В системах MS Windows доступ к томам с ext4 возможен посредством использования технологии coLinux. Поддержка Просмотра/Чтения реализована в программе Ext2read. Частичный функционал работы с ext4 на уровне драйвера Windows реализован в Ext2Fsd Project.

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

  • Ubuntu 9.04 — опционально, начиная с версии 9.10, ext4 стала ФС по умолчанию.
  • Debian 6.0 — опционально.
  • Поддержка ext4 включена в Fedora 9 (в Fedora 11 — основная), в версию 3.5 (начиная с Loop 3) Sabayon Linux, ArchLinux, Slackware.
  • В openSUSE 11.2 и дистрибутивах линейки Mandriva Linux 2010 — ФС по умолчанию.
  • Red Hat Enterprise Linux — ФС по умолчанию с версии 6.[2]
  • В PCLinuxOS 2010 — ФС по умолчанию.
  • В Android[3][4], начиная с версии 2.3.
  • В Agilialinux — ФС по умолчанию.

См. также

Примечания

  1. Официальное объявление Эндрю Мортона о включении поддержки ext4  (англ.) (txt).
  2. Release Notes for Red Hat Enterprise Linux 6 - File Systems  (англ.). Архивировано из первоисточника 3 июня 2012.
  3. Ts'o, Theodore. 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  (англ.) (wiki). kernel.org. Архивировано из первоисточника 19 мая 2012. Проверено 29 мая 2010.
  • Ext4 Development project  (англ.). bullopensource.org. — Страница проекта по разработке файловой системы ext4 (с 2009 года эта страница более не поддерживается). Архивировано из первоисточника 21 января 2012. Проверено 29 мая 2010.

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

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



Wikimedia Foundation. 2010.

Игры ⚽ Нужно сделать НИР?

Полезное


Смотреть что такое "ext4" в других словарях:

  • Ext4 — Разработчик Mingming Cao, Andreas Dilger, Alex Zhuravlev (Tomas), Dave Kleikamp, Theodore Ts o, Eric Sandeen, Sam Naghshineh и другие Файловая система Fourth extended file system Дата представления Стабильная версия: 21 октября 2008 Тестовая… …   Википедия

  • ext4 — Hersteller Mingming Cao, Dave Kleikamp, Alex Tomas, Theodore Ts o, andere Vollständige Bezeichnung Fourth extended filesystem Erstveröffentlichung 14. Oktober 2008 (Testversion seit: Linux 2.6.19,Final: Linux 2.6.28) Partitionskennung 0x83 (MBR …   Deutsch Wikipedia

  • Ext4 — Saltar a navegación, búsqueda ext4 Desarrollador Mingming Cao, Dave Kleikamp, Alex Tomas, Andrew Morton, y otros Nombre completo Fourth extended file system Introducido 10 de octubre de 2006 (Linux 2.6.19) Identificador de la partición 0x83 ( …   Wikipedia Español

  • Ext4 — Diffuseur de logiciel Nom anglais Fourth extended file system Introduction Stable: 24 décembre 2008 Instable: 29 novembre 2006 (Linux …   Wikipédia en Français

  • ext4 — Nom anglais Fourth extended file system Introduction Stable: 24 décembre 2008 Instable: 29 novembre 2006 (Linux) Identificateur de partition 0x83 Structure …   Wikipédia en Français

  • Ext4 — Hersteller Mingming Cao, Dave Kleikamp, Alex Tomas, Theodore Ts o, andere Vollständige Bezeichnung Fourth extended file system Erstveröffentlichung 14. Oktober 2008 (Testversion seit: Linux 2.6.19,Final: Linux 2.6.28) Partitionskennung 0x83 (MBR) …   Deutsch Wikipedia

  • Ext4 — lowercase|title=ext4Infobox filesystem name = ext4 full name = Fourth extended file system developer = Mingming Cao, Andreas Dilger, Alex Tomas, Dave Kleikamp, Theodore Ts o, Eric Sandeen, Sam Naghshineh, others introduction os = Linux 2.6.19… …   Wikipedia

  • Comparison of Linux distributions — Technical variations of Linux distributions include support for different hardware devices and systems or software package configurations. Organizational differences may be motivated by historical reasons. Other criteria include security,… …   Wikipedia

  • Comparison of file systems — The following tables compare general and technical information for a number of file systems. Contents 1 General information 2 Limits 3 Metadata 4 Features …   Wikipedia

  • Сравнение дистрибутивов Linux — Для улучшения этой статьи желательно?: Проставив сноски, внести более точные указания на источники. Эти таблицы сравнивают общую и техническую информацию о некоторых …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»