WikiSort.ru - Не сортированное

ПОИСК ПО САЙТУ | о проекте

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)
Структура
Содержимое папок Связный список, B-дерево[1]
Размещение файлов Битовая карта/экстенты
Сбойные сектора Table
Ограничения
Максимальный размер файла 16 тебибайт (размер кластера 4 кибибайта)
Максимум файлов 4 миллиарда (задаётся во время создания ФС)
Максимальная длина имени файла 255 байт
Максимальный размер тома 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 (IFS)

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

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

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

Основные изменения по сравнению с ext3:

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

Особенности

  • Использование экстентов (англ. extent). В ФС ext3 адресация данных выполнялась традиционным образом — поблочно. Такой способ адресации стал менее эффективным с ростом размера файлов. Экстенты позволяют адресовать большое количество (до 128 MB) последовательно идущих блоков одним дескриптором. До четырёх указателей на экстенты может размещаться непосредственно в inode, этого достаточно для файлов маленького и среднего размера.
  • 48-битные номера блоков. При размере блока 4 KB это позволяет адресовать до одного эксбибайта (248·(4 KB) = 248·(22)·(210) B = 260 B = 1 EB).
  • Выделение блоков группами (англ. multiblock allocation). ФС хранит информацию не только о местоположении свободных блоков, но и о количестве свободных блоков, расположенных друг за другом. При выделении места ФС находит такой фрагмент, в который данные можно записать без фрагментации. Использование этой техники позволяет снизить уровень фрагментации ФС.
  • Отложенное выделение блоков (англ. delayed allocation). Выделение блоков для хранения содержимого файла происходит непосредственно перед записью на диск (например, при вызове sync), а не при вызове write. Из-за этого блоки можно выделять не по одному, а группами, что в свою очередь минимизирует фрагментацию и ускоряет процесс выделения блоков. С другой стороны, увеличивается риск потери данных в случае внезапного пропадания питания.
  • Поднято ограничение на число вложенных каталогов. ext3 (без использования патчей) позволяла размещать в одном каталоге не более 32 000 подкаталогов (до 65 535, если изменить константы ядра).
  • Резервирование inode’ов при создании каталога (англ. directory inodes reservation). При создании каталога резервируется несколько inode’ов. Впоследствии, при создании файлов в этом каталоге сначала используются зарезервированные inode’ы, и если таких не осталось, выполняется обычная процедура выделения inode.
  • Размер inode. Размер inode (по умолчанию) увеличен с 128 (ext3) до 256 байтов. Это позволило реализовать перечисленное ниже.
  • Временные метки с наносекундной точностью (англ. nanosecond timestamps). Точность временных меток, хранящихся в inode, повышена до наносекунд. Диапазон значений тоже расширен: у ext3 верхней границей хранимого времени было 18 января 2038 года, а у ext4 — 25 апреля 2514 года.
  • Версия inode. В структуре inode появилось поле, хранящее номер версии. Номер может увеличиваться при каждом изменении inode, если ФС монтирована с опцией iversion[3]. Это используется демонами сетевой файловой системы NFS версии 4 (NFSv4) для отслеживания изменений файлов.
  • Хранение расширенных атрибутов в структуре inode (англ. extended attributes (EA) in inode). Производительность файловой системы повышается из-за исключения операции поиска атрибутов в каком-либо другом месте диска. К расширенным атрибутам относятся списки контроля доступа ACL, атрибуты SELinux и другие. Атрибуты, для которых недостаточно места в структуре inode, хранятся в отдельном блоке размером 4 KB. В будущем планируется снять это[какое?] ограничение.
  • Вычисление контрольных сумм для записей журнала (англ. journal checksumming). Использование контрольных сумм для транзакций журнала позволяет быстрее находить и (иногда) исправлять ошибки системы после сбоя (при проверке целостности).
  • Предварительное выделение (англ. persistent preallocation). Для выделения места на ext2 и ext3 приложению приходилось записывать в файл нулевые байты. В ext4 появилась возможность резервирования блоков. Теперь не нужно тратить время на запись нулевых байт, достаточно использовать системный вызов fallocate. fallocate выделяет для файла блоки и устанавливает для них флаг «заполнены нулевыми байтами». При чтении из файла приложение получит нулевые байты (так же, как при чтении sparse файла). При записи в файл флаг «заполнены нулевыми байтами» будет снят. В отличие sparse файлов запись в такой файл никогда не прервётся из-за нехватки свободного места.
  • Дефрагментация без размонтирования (англ. online defragmentation). Дефрагментация выполняется утилитой e4defrag, поставляемой в составе пакета e2fsprogs с 2011 года[4].
  • Неинициализированные блоки (англ. uninitialised groups). Возможность пока не реализована и предназначена для ускорения проверки целостности ФС утилитой fsck. Блоки, отмеченные как неиспользуемые, будут проверяться группами, и детальная проверка будет производится только если проверка группы показала наличие повреждений. Предполагается, что время проверки будет составлять от 1/2 до 1/10 от нынешнего в зависимости от способа размещения данных.[источник не указан 1633 дня]

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

  • coLinux — технология, позволяющая запустить ядро Linux под управлением ОС Windows. Возможен доступ к томам с ФС ext2/ext3/ext4.
  • Ext2read — программа, предоставляющая доступ к ФС ext2/ext3/ext4 и LVM2, но в режиме только для чтения, с интерфейсом, напоминающим проводник Windows.
  • Ext2Fsd — экспериментальный драйвер, добавляющий поддержку ФС ext2/ext3/ext4 для ОС Windows. Драйвер поддерживает не все возможности ФС.
  • Paragon ExtFS for Windows — бесплатное для личного пользования проприетарное ПО, предоставляющее доступ к ФС ext2/ext3/ext4 для чтения и записи.

Поддержка ext4 в дистрибутивах Linux

  • Ubuntu:
    • 9.04: ext4 доступна для выбора по желанию пользователя;
    • 9.10+: ext4 стала ФС по умолчанию.
  • Debian:
    • 6.0: ext4 доступна для выбора по желанию пользователя;
    • 7.0+: ext4 предлагается, как ФС по умолчанию.
  • Fedora:
    • >=9: ext4 доступна для выбора по желанию пользователя;
    • 11+: ext4 — ФС по умолчанию.
  • Sabayon Linux:
    • 3.5 Loop 3+: ext4 доступна.
  • ArchLinux.
  • Slackware.
  • OpenSUSE:
    • 11.2+: ext4 — ФС по умолчанию.
  • Mandriva Linux:
    • 2010+: ext4 — ФС по умолчанию.
  • Red Hat Enterprise Linux:
    • 6+: ext4 — ФС по умолчанию[5].
  • PCLinuxOS:
    • 2010+: ext4 — ФС по умолчанию.
  • Android:
    • 2.3+: ext4 доступна[6][7].
  • AgiliaLinux:
    • ext4 — ФС по умолчанию.

См. также

Примечания

  1. Hashed B-tree
  2. Официальное объявление Эндрю Мортона о включении поддержки ext4 (англ.) (txt) (недоступная ссылка). Архивировано 7 августа 2008 года.
  3. mount -t ext4 /dev/sda2 /mnt/ -o rw,iversion
    
    man mount
  4. Include ext4 defragmenting tool
  5. Release Notes for Red Hat Enterprise Linux 6 - File Systems (англ.). Архивировано 3 июня 2012 года.
  6. Ts'o, Theodore. Android will be using ext4 starting with Gingerbread, Thoughts by Ted (12 December 2010). Проверено 20 декабря 2010.
  7. Android 2.3 Platform Highlights. Android Developers (6 December 2010). Проверено 7 декабря 2010. Архивировано 21 января 2012 года.

Ссылки

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

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

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

Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".

Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.

Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .




Текст в блоке "Читать" взят с сайта "Википедия" и доступен по лицензии Creative Commons Attribution-ShareAlike; в отдельных случаях могут действовать дополнительные условия.

Другой контент может иметь иную лицензию. Перед использованием материалов сайта WikiSort.ru внимательно изучите правила лицензирования конкретных элементов наполнения сайта.

2019-2024
WikiSort.ru - проект по пересортировке и дополнению контента Википедии