Файловые системы Linux

Еще один момент, с которым придется столкнуться во время установки Linux, — выбор файловой системы. В отличие от Windows, которая предлагает отформатировать диск в NTFS или  FAT32, а в последних версиях — только в NTFS, в  Linux выбор гораздо больше. Современное ядро поддерживает следующие файловые  системы, на которых можно установить Linux, — ext2, ext3, ext4, ReiserFS, XFS и JFS. А список всех файловых систем, разделы которых может монтировать Linux, еще больше, в том числе  в этом списке находятся и файловые системы, считающиеся родными для других операционных  систем, в частности Windows.

ПРИМЕЧАНИЕ

На заре своего развития Linux работал с файловой системой Minix, на замену которой и пришел ext2. Minix до сих пор поддерживается ядром, но использовать ее нет смысла.

Просмотреть полный список можно в конфигурационном файле ядра (рис.  2.2):

$ grep -i fs /boot/config-`uname -r`

ПРИМЕЧАНИ Е

В командах командной оболочки можно использовать символы подстановки или выводы других команд, в данном примере в  кавычки        заключена команда, которая получит и подставит номер версии ядра Linux.

Рис. 2.2. Список файловых систем, поддерживаемых  Linux Mint

Кроме этого для тех, кому нужна более быстродействующая или гибкая   в настройках файловая система, можно создать программные RAID-массивы (идентификатор fd) или системы управления логическими томами — LVM (англ. Logical Volume Manager) (идентификатор  8е).  Причем каждая из  указанных файловых систем, которую можно выбрать  во  время установки, имеет свои  особенности  и,  можно сказать,  специализацию.  И хотя разработчики  обычно предлагают оптимальный вариант, подходящий в большинстве случаев, следует знать об этих отличиях — возможно, вы предпочтете другую файловую систему.

ПРИМЕЧАНИ Е

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

Я думаю, такого простенького определения достаточно, чтобы понять, какие требования предъявляются  к файловой системе. Теперь кратко  разберем особенности основных файловых систем. Если описание покажется вам скучным, можете перейти к следующей части главы  и вернуться сюда, когда возникнет проблема выбора файловой системы для работы.

Файловая система ext2 (сокр. Extended File System) долгое время была стандартной для Linux, ее характеризует высокая надежность и высокое быстродействие, которое, в свою  очередь, достигается очень эффективным механизмом  кэширования дисковых операций.  По мере роста размеров раздела и количества файлов ext2 перестала удовлетворять современным требованиям по управлению такими большими объемами, устойчивости к сбоям и восстановлению после сбоя. Например, чтобы указать расположение блоков для больших файлов применялся метод тройной косвенной адресации. Выглядит это примерно так: если файл маленький, то в его метаданных содержится прямая ссылка на ячейки (логические блоки), в которых хранятся данные — прямая адресация. При увеличении объема файла отведенного места в метаданных уже не хватает, чтобы указать на занимаемое пространство, поэтому блоки метаданных указывают уже на  косвенные блоки, в  которых содержатся адреса с данными, определенными в  файле, или, опять же, указатели на следующие косвенные блоки. И так до утроения. В случае сбоя, когда данные уже записаны, но изменения   в адресации  не перераспределены, файл можно  потерять. Ситуация усугубляется тем, что данные часто записываются в новое место, а не поверх старых. Это уменьшает фрагментацию  (увеличивает скорость доступа), но увеличивает вероятность потери данных, так как истинная информация  в метаданных не будет соответствовать реальному расположению данных.

ПРИМЕЧАНИЕ

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

Если  данные заносились в  каталог (а это тоже файл), то после  перезагрузки  мы можем недосчитаться целого каталога.

Конечно, ситуация не так плачевна, как я обрисовал.  Вероятность такого  исхода очень мала, но самое главное — за время существования  ext2 утилита проверки файловой системы fsck (сокр. FileSystem ChecK)  была доведена почти  до совершенства и  практически  безошибочно  устраняет все проблемы. Кроме этого ext2 создает копии  критически  важных метаданных, поэтому вероятность полной потери данных чрезвычайно мала.

ПРИМЕЧАНИЕ

Чтобы не проверять при каждой перезагрузке системы все диски, установленные на компьютере, нашли такой простой выход. После того как все данные согласованы, непосредственно  перед самым размонтированием  раздела устанавливается бит чистого размонтирования (англ. clean bit), наличие которого и проверяет программа fsck. При наличии clean bit делается предположение, что файловая система в порядке, и проверка не производится.

Если бит чистого  размонтирования  не найден, то производится полная  проверка раздела файловой системы. Вот здесь-то и  кроется очевидное  неудобство: чем больше файловая система, тем дольше длится процесс проверки. Во время загрузки  процедура проверки  метаданных на дисковом разделе размером в  несколько сотен гигабайт, с большим  количеством файлов  и  каталогов  может очень сильно затянуться.

Но ext2 все еще пользуется популярностью, особенно там, где важна  скорость считывания данных в разделах, которые монтируются в режиме «только чтение». Например, в каталоге /boot находятся ядро и  некоторые другие файлы, обеспечивающие загрузку системы. Содержимое этого  раздела изменяется  очень редко, некоторые администраторы  Linux  выносят его на небольшой раздел, который форматируется в ext2 и монтируется в режиме  «только чтение».

Осталось  добавить, что ext2 поддерживает файлы максимального размера в 2 Тбайт и раздел размером до 32 Тбайт. Обычно этого хватает для домашнего применения.

Основной недостаток ext2 — долгое время проверки после сбоя — исправили в файловой системе ext3, которая является дальнейшим развитием ext2. Разработана ext3 в компании Red Hat доктором Стивеном  Твиди. Чтобы не изобретать колесо, в данном случае поступили просто: добавили к стандартной ext2 журнал. Таким образом, основные характеристики  ext2 и  ext3 аналогичны, за исключением того, что ext3 является журналируемой файловой системой. Утилиты проверки файловой системы для ext2 поддерживают и ext3. К тому же идентичность файловых систем позволяет оперативно переходить как с ext2 на ext3, так и  наоборот, просто изменив параметры монтирования.

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

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

ПРИМЕЧАНИЕ

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

Платить за удобство теперь приходится быстродействием,  так как самая медленная операция в компьютере — это операция ввода/вывода на диск,  и количество таких операций возросло, особенно при  использовании  варианта  с журналированием данных. Решают вопрос разными ухищрениями, например размещают журнал на другом физическом  диске.  Но фактически  время работы с журналом намного меньше, чем работа непосредственно с данными. Что интересно, за счет улучшения алгоритма движения головки жесткого диска  в некоторых тестах файловая система ext3 показывает даже лучшую производительность, чем ext2.

Некоторый полезный объем теперь приходится  отводить под сам  журнал, но он, как правило, не занимает много места.

ВНИМАНИЕ

Журналируемые файловые системы предназначены не для восстановления всех данных любой ценой, а для поддержания непротиворечивости  метаданных файловой системы на момент сбоя.

Файловая система ext3 поддерживает следующие три режима работы.

•                               data=writeback — режим, при  котором выполняется только  журналирование метаданных, сами данные не журналируются. Сохранность данных после сбоя не гарантируется, но скорость работы выше по сравнению с другими режимами. Журнал позволяет уменьшить  время начальной загрузки системы.

•                               data=ordered — используется  по умолчанию,  похож на  предыдущий,  то есть журналируются только метаданные, но блоки данных записываются  первыми. В большинстве случаев  такой режим  гарантирует сохранность данных, особенно если  данные дописывались в  конец файла, чего в принципе   предостаточно.

Подготовка жесткого диска    4 1

•          data=journal — режим полного журналирования,  все новые данные  вначале записываются в  журнал и  только после этого переносятся  на свое постоянное место. В случае аварийного отказа журнал можно повторно перечитать и при вести данные и  метаданные в непротиворечивое состояние.

Выбранный отличный от ordered, который, как уже говорилось,  используется по умолчанию, указывается помощью параметра -о .  Например:

$   sud o  mount     о   data=journa l   t   ext 3   /dev/hda 5         /home

ПРИМЕЧАНИЕ

Конвертировать ext2 в ext3 просто, достаточно использовать утилиту tune2fs с параметром -j . Например, tune2fs -j /dev/hda5.

Именно ext3 разработчики  рекомендуют как подходящую для  большинства случаев, хотя по умолчанию предлагается ext4.

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

Файловая система ext3 заслужила репутацию надежной, ей доверяют свои данные многие пользователи  и  корпорации.  Но наиболее существенным  ограничением является максимальный  размер хранилища 16 Тбайт. Чтобы снять это ограничение, в  середине 2006 г. была выпущена серия заплаток (patch), которые, в свою  очередь, нарушали обратную совместимость. Поэтому было принято решение на основе заплаток  создать новую файловую систему, которая получила название ext4.

Главная задача разработчиков — не просто повысить производительность  и улучшить характеристики,  но и  предоставить простой путь перехода  пользователей,  работавших с ext2 или ext3, на новую версию файловой системы.

Размер раздела увеличен до 1 эксабайта, а максимальный размер файла — 16 Тбайт (в будущем планируется увеличить это число),  в каталоге может быть до 4 млн файлов (в ext3 — 32 тыс.). В ext4 предложен механизм пространственной (англ. extent) записи файлов, когда новые данные добавляются в конец заранее выделенной по соседству области  файла,  что уменьшает фрагментацию  и  повышает производительность.  Кроме  этого механизм отложенного размещения максимально затягивает  запрос на запись файла, и  в  итоге при  сбрасывании  данных  на  диск драйвер файловой системы, зная размер файла, старается отвести под него рядом расположенные блоки. Это увеличивает производительность и уменьшает фрагментацию.

И главное, чтобы перейти с ext3 на новую файловую систему, достаточно просто смонтировать раздел с ext3 как ext4. Старые данные  будут обрабатываться, как принято  в ext3, новые получат все преимущества ext4.

Источник: Яремчук С. А.  Linux Mint на 100 %. — СПб.: Питер, 2011. — 240 е.: ил. — (Серия «На 100 %»).

Похожие посты:

Вы можете оставить комментарий, или ссылку на Ваш сайт.

Оставить комментарий