Глава 9. Файловая Система Linux

Вполне естественно, что ваша GNU/Linux система размещена на вашем жестком диске в файловой системе. Здесь мы осветим различные аспекты, связанные с файловыми системами, а также рассмотрим возможности, которые они предоставляют.

Сравнение Нескольких Файловых Систем

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

Если вы не специалист, то выбор файловой системы не очевиден. Мы предлагаем краткое описание трех из самых современных файловых систем, любая из которых является доступной под Mandrake Linux.

Различные Используемые Файловые Системы

Ext2FS

Ext2FS это аббревиатура от Second Extended Filesystem (по-русски - расширенная файловая система номер два) или проще ext2. Многие годы ext2 была файловой системой по умолчанию в GNU/Linux. Ext2 заменила собой Extended File System (вот откуда появилось “Second” в названии). В “новой” файловой системе были исправлены некоторые проблемы, а также убраны ограничения.

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

Ext3

Как видно из названия, Third Extended File System (Расширенная файловая система номер три) - является наследником файловой системы Ext2FS. Ext3 совместима с Ext2, но обладает одной новой и очень интересной особенностью - журналирование.

Одним из главных недостатков “традиционных” файловых систем, подобных Ext2FS, является низкая сопротивляемость к резким системным сбоям (сбой питания или авария программного обеспечения). Вообще говоря, такие события являются серьезным экзаменом для структуры файловой системы. Попытки исправить ошибки иногда приводят к увеличению искажений и появлению более серьезных ошибок в файловой системе. Результатом этого могут быть частичные потери данных в файловой системе.

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

Ext3FS предлагает технологию журналирования файловой системы, сохраняя при этом структуру Ext2FS, что обеспечивает превосходную совместимость.

ReiserFS

В отличии от Ext3FS, ReiserFS создан на пустом месте. Это тоже журналируемая файловая система подобно Ext3FS, но их внутренняя структура радикально отличается. В ReiserFS используется концепция бинарных деревьев (binary-tree), позаимствованная из программного обеспечения баз данных.

JFS

JFS - сокращение от journalized filesystem (журналируемая файловая система). JFS была разработана и использовалась IBM. Вначале JFS была закрытой системой, но недавно IBM решила открыть доступ для движения свободного программного обеспечения. Внутренняя структура JFS близка к ReiserFS.

Различия Между Этими Файловыми Системами

Таблица 9.1. Характеристики файловой системы

Ext2FS Ext3FS ReiserFS JFS
Стабильность Отличная Хорошая Хорошая Средняя
Инструментальные средства для спасения удаленных файлов Есть(комплексные) Есть(комплексные) Нет Нет
Время перезагрузки после аварии Долго (даже очень долго) быстро Очень быстро Очень быстро
Восстанавливаемость данных в случае аварийного отказа Хорошо, НО большой риск частичной или полной потери данных Неизвестно Очень хорошо. Полная потеря данных очень редка Очень хорошо

Максимальный размер файлов зависит от большого количества параметров (например таких, как размер блока для ext2/ext3), а также от версии ядра и архитектуры. Тем не менее, доступный минимум, согласно ограничениям файловой системы, в настоящее время равен 2Tb (1Tb=1024 Gb) и может увеличен до 4Pb (1Pb=1024 Tb) для JFS. К сожалению, эти значения также ограничены максимальным размером блочного устройства, который в текущих версия ядер 2.4.X равен (только для архитектуры X86) 2TB [17] даже в RAID режиме. Для получения дополнительной информации, проконсультируйтесь здесь Adding Support for Arbitrary File Sizes to the Single UNIX Specification.

Размышления о Производительности

Всегда очень сложно сравнивать производительность. Каждый тест имеет ограничения и его результаты должны быть интерпретированы внимательно и с осторожностью. В настоящее время, Ext2FS - очень зрелая файловая система, но её развитие недостаточно. C другой стороны, журналируемые файловые системы, подобные Ext3FS и ReiserFS развивается очень быстро. Проверки, сделанные пару месяцев или недель назад, уже слишком стары. Давайте не забывать, что сегодняшний материал тестирования (особенно это касается жестких диков) очень быстро устаревает. Однако JFS в настоящее время показывает лучшие результаты по производительности.

Каждая из систем предоставляет преимущества и имеет свои недостатки. Фактически, все зависит, от того как вы используете вашу машину. Для простой настольной машины (рабочей станции) вполне подойдет Ext2FS. Для сервера предпочтительно использовать журналируемую файловую систему Ext3FS. ReiserFS больше подходит для серверов баз данных. JFS предпочтителен в случаях, когда главная задача файловой системы - это производительность.

При “нормальном” использовании, все четыре файловые системы дают приблизительно одинаковые результаты. ReiserFS позволяет предоставляет быстрый доступ к маленьким файлам и сравнительно медленный к большими файлами(много мегабайт). В большинстве случаев, преимущества от журналирующих способностей ReiserFS сводят на нет его недостатки.