- 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)Метка тома Структура Содержимое папок Linked list, hashed B-tree
Размещение файлов Extents/Bitmap
Сбойные сектора Table
Ограничения Максимальный размер файла Максимум файлов 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
Права доступа Фоновая компрессия Нет
Фоновое шифрование Нет
Поддерживается ОС 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 — ФС по умолчанию.
См. также
Примечания
- ↑ Официальное объявление Эндрю Мортона о включении поддержки ext4 (англ.) (txt).
- ↑ Release Notes for Red Hat Enterprise Linux 6 - File Systems (англ.). Архивировано из первоисточника 3 июня 2012.
- ↑ Ts'o, Theodore. Android will be using ext4 starting with Gingerbread, Thoughts by Ted (12 December 2010). Проверено 20 декабря 2010.
- ↑ 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.
Материалы на русском языке
- ext4 (wiki). xgu.ru. — подробное описание преимуществ ext4 по сравнению с ext3. Архивировано из первоисточника 21 января 2012. Проверено 29 мая 2010.
- acheron «Интервью о состоянии поддержки ext4 в Fedora 9». linux.org.ru (12 марта 2008). — новость и обсуждение на ЛОР. Архивировано из первоисточника 21 января 2012. Проверено 29 мая 2010.
- apelsyn «ext4: Еще тестируется или уже работает?». habrahabr.ru (8 июня 2008). — небольшая заметка о переходе на ext4 на Habrahabr. Архивировано из первоисточника 21 января 2012. Проверено 29 мая 2010.
- Родерик Смит «IBM: Переход на ext4». IBM DeveloperWorks (20 ноября 2008). — Подготовка к новейшей файловой системе для Linux. Архивировано из первоисточника 21 января 2012. Проверено 29 мая 2010.
- Boten «Полноценный доступ ко всем Linux-файловым системам в Windows 2000/XP/Vista/7 с помощью coLinux». habrahabr.ru (22 сентября 2009). — заметка на Habrahabr о способе получения доступа к томам с ext4 в системах MS Windows. Архивировано из первоисточника 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 (wiki). Fedora Project. Архивировано из первоисточника 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.
Файловые системы (список • сравнение) Дисковые ADFS • AdvFS • BeFS • Btrfs • EFS • ext • ext2 • ext3 • ext3cow • Next3 • ext4 • FAT • FATX • VFAT • FFS • Files-11 • GFS • HFS • HFS Plus • XFSX • HPFS • ISO 9660 • JFS • LFS • MFS (Macintosh) • MFS (Tivo) • Minix • MUFS • NWFS • NILFS • NSS • NTFS • Protogon (В разработке) • PFS • Qnx4fs • Qnx6fs • ReiserFS • Reiser4 • SFS • SpadFS • UFS • UFS2 • UDF • VxFS • WinFS • WAFL • XFS • ZFS • Больше...
Оптические диски ISO 9660 • UDF Флеш-память/SSD FAT • exFAT (FAT64) • TFAT • FFS2 • JFFS • JFFS2 • LogFS • NVFS • UDF • YAFFS Кластерные Files-11 • GFS • OCFS • QFS • Xsan • Больше... Распределённые
(сетевые)AFS • OpenAFS • AFP • Ceph • DFS • GlusterFS • GPFS • Google File System • Lustre • NCP • NFS • POHMELFS • Hadoop • Kosmos • HAMMER • SMB (CIFS) • Больше... Специальные cramfs • FUSE • Squashfs • UMSDOS • UnionFS • Больше...
Псевдо- и виртуальные configfs • devfs • procfs • specfs • sysfs • tmpfs • WinFS Шифрованные EncFS • EFS • FSFS • SSHFS • SolFS • ZFS Категории:- Журналируемые файловые системы
- Linux
Wikimedia Foundation. 2010.