Знакомство с файловой системой ext4

ОС Linux поддерживает множество файловых систем - журналируемых, кластерных, систем с шифрованием. Это и неудивительно, ведь Linux - это великолепная открытая среда для использования как стандартных, так и специальных файловых систем. А также это отличная среда для разработки этих файловых систем. В этой статье мы познакомимся с новой файловой системой ext4, частичная реализация которой осуществлена в недавно вышедшем дистрибутиве Fedora 9.

Компьютерные файловые системы (ФС) по своим принципам ничем не отличаются от бумажных файловых архивов, где документы положены в отдельные бумажные или полиэтиленовые файлы-папочки, пронумерованы и описаны в каталогах и разложены аккуратно по полкам-стеллажам, и где сидит архивариус, который и управляет всем этим хозяйством. Точно так же и файловая система компьютера определяет порядок и регламент по организации, хранению и именованию данных на носителях информации - дисках, флэшках, CD. Каждая конкретная ФС определяет параметры имени файла, максимально возможный размер файла, метаданные этого файла. И также каждая система играет роль архивариуса, то есть обеспечивает функции удобного и достаточно простого доступа к файлам для пользователей и прикладных программ.

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

В мире Unix и, соответственно, Linux для этих типовых задач давно используется семейство файловых систем ext2/ext3 (extended file system - расширенная файловая система). История этого семейства начинается с 1993 года, когда появилась ext2. В ней были реализованы такие особенности, как сетевая иерархия каталогов, расширенный набор атрибутов файлов, списки контроля доступа. Растущие объёмы дискового пространства и хранимых данных привели к необходимости организовать более эффективный механизм защиты системы от последствий сбоев и аварий. Система восстановления после сбоев в ext2 уже не обеспечивала достаточную оперативность восстановления данных. Разработанная Стивеном Твиди (Stephen Tweedie) ФС ext3 является продолжением ext2, где была добавлена возможность журналирования, то есть механизм транзакций при операциях с файлами. Теперь при аварийных перезагрузках уже не было необходимости дожидаться длительной работы утилиты восстановления fsck при перезапуске компьютера, что весьма критично для работы серверов.

Но время идёт, объёмы данных продолжают расти, и перед файловыми системами появляются новые дополнительные задачи. 10 октября 2006 года для нескольких версий операционной системы Linux был выпущен экспериментальный патч, включающий в них поддержку новой файловой системы ext4. Эта ФС также является эволюционным развитием предыдущей ext3. Рассмотрим более подробно её некоторые новые возможности.

 
  • В первую очередь, увеличены объёмы данных, которые ФС может скушать и переварить. Ext4 поддерживает гигантские объёмы дисков и размеры файлов. Теперь компьютерщикам, кроме "мега" и "гига", придётся учить новые префиксы чисел. Новая файловая система позволяет хранить в одном разделе до 1024 петабайт, а максимальный размер файла может составлять 16 тебибайт. Ext3 поддерживает 32 тысячи поддиректорий, а в ext4 все ограничения на количество поддиректорий сняты.
  • Запись контрольных сумм в журнал и, как следствие, высокая надежность транзакций.
  • В ext4 представлен механизм "пространственной" (extent) записи файлов. Эта технология уже присутствует в таких файловых системах, как Reiser4 и IBM JFS. Новая информация добавляется на диск по определённому алгоритму, который специально уменьшает фрагментацию и повышает производительность. А также предполагается механизм дефрагментации, чего не было в предыдущих ext2 и ext3.
  • Для более точной работы с временными атрибутами файлов - время создания, модификации - используются наносекундные временные отметки (timestamps). Максимально возможное время увеличено до 25 апреля 2514 года, против 18 января 2038 года у Ext3.
  • В недалёком будущем, надеюсь, обещают механизмы и утилиты восстановления удаленных файлов.
  • И, естественно, сохранена совместимость с ext3. Ext4 можно примонтировать как раздел ext3. Однако при этом, естественно, вы будете лишены возможностей extents.

Из всего вышесказанного можно сделать вывод, что ext4 знаменует грядущую эпоху информационных хранилищ, глобальных датацентров, транснациональных сервисных интернет-систем с их невообразимыми для простого обладателя какого-нибудь простого ноутбука объёмами информации. И, выбрав эту файловую систему у себя на компьютере, тот же владелец простого ноутбука вряд ли заметит преимущества этой ФС. Но, с другой стороны, ext4 - это продолжение надёжности и простоты ext2/ext3. С появлением функций восстановления данных данная ФС может быть интересной и обычному пользователю.

P.S. Ну а если говорить о моих личных предпочтениях, то, как обычный пользователь, я пока предпочитаю ReiserFS.

Михаил АСТАПЧИК

Версия для печатиВерсия для печати

Номер: 

20 за 2008 год

Рубрика: 

Software
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!
 

Комментарии

Страницы

Аватар пользователя gnuser
Linux - ядро, а не апэрацыйная сыстэма...
Аватар пользователя Инкогнито
вот-вот
Аватар пользователя Инкогнито
Linux is a free Unix-type operating system originally created by Linus Torvalds with the assistance of developers around the world.

www.linux.org

Аватар пользователя Владимир
Вот бы Линус Торвальд удивился, что он писал, писал, а получилось одно только ядро к жизни никак не привязанное. Что есть операционная система? Операцио́нная систе́ма, ОС, ось (англ. operating system) — базовый комплекс компьютерных программ, обеспечивающий управление аппаратными средствами компьютера, работу с файлами, ввод и вывод данных, а также выполнение прикладных программ и утилит.

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

С 1990-х наиболее распространёнными операционными системами для персональных компьютеров и серверов являются ОС семейства Microsoft Windows и Windows NT, Mac OS и Mac OS X, системы класса UNIX, и Unix‐подобные (особенно GNU/Linux). Википедия

Аватар пользователя mike
Линукс это открытая ОС. Поэтому есть её различные сборки (кто хочет - компилит/собирает сам, нет - покупает), имеющие или нет те или иные компоненты, по-разному раскрашенныее, а также упрощающие установку. Но всё, что писано "под Линукс" работает в любой современной сборке. По крайней мере - ДОЛЖНО работать.
Аватар пользователя Логик
Недавно SUN выпустил Java машину JVM работающую на "голом железе", то есть без Windows и без Linux.

"операционная система" - это два слова, которые вы должны вначале определить, а потом уже, на основании ВАМИ ЖЕ данного определения и использовать! ИМХО.

Аватар пользователя assd
>кто хочет - компилит/собирает сам, нет - покупает

ну например если использовать debian или ubuntu, то собирать ничего не надо. Все есть в репозитарии уже собранное - нужно только набрать команду установки и в качестве параметра имя пакета. Система притянет установит и настроит пакет и все пакеты дополнительные пакеты от которых в той или иной степени зависит работа устанавливаемого пакеты. Некоторые коммерческие дистрибутивы тоже используют такую систему, но охватить такое кол-во ПО как тот же дебиан - неуверен что получится, т.к. нет у них столько денег поддерживать, такое огромное кол-во ПО.

>Недавно SUN выпустил Java машину JVM работающую на "голом железе", то есть без Windows и без Linux.

Ага. И питается святым духом - даже шнура электропитания нет.

>"операционная система" - это два слова, которые вы должны вначале определить

Это не два слова, а одно понятие, которое определено было еще в середине 20 века:

Операционная система, ОС, ось (англ. operating system) — базовый комплекс компьютерных программ, обеспечивающий управление аппаратными средствами компьютера, работу с файлами, ввод и вывод данных, а также выполнение прикладных программ и утилит.(c) ru.wikipedia.org/wiki/

Если внутри черного ящика нет ни Windows и ни Linux - это еще не значит что внутри нет операционной системы.

Аватар пользователя Логик
>Операционная система, ОС, ось (англ. operating system) — базовый комплекс компьютерных программ...

Тут много еще не определенных слов, типа:

это минимальный или обязательный?

комплекс - это означает много программ (файлов) навалено?

>Если внутри черного ящика нет ни Windows и ни Linux - это еще не значит что внутри нет операционной системы.

Но это может означать, что многие функции операционной системы включены в реализацию самой этой JVM. - Тогда JVM есть, а "базового комплекса..." нет, не видать его то! ИМХО

Аватар пользователя Логик
>Linux - ядро, а не апэрацыйная сыстэма...

Есть операционная система, где ядро используется от Солярис - а все остальное, что не есть ядро, от Линукс. - И как это называть, такой гибрид?

Аватар пользователя VeGeek
1. Да с ZFS (пока для лина нет, не факт что будет) и эта, новая ФС от Oracle - да нафиг кому ext4 нужна с ними.

2. Ну, Ричард Столлман говорит, что линуксойды юзают операционную систему GNU, постороенную на ядре Linux. Так что Debian - это GNU/Linux, а Nexenta - GNU/Sun-OS.

Страницы