1. Сравнение нескольких файловых систем

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

Если вы не специалист, то выбор файловой системы не совсем понятен. Мы вкратце рассмотрим несколько современных файловых систем, доступных в Mandrakelinux.

1.1. Различные используемые файловые системы

1.1.1. Ext2

Second Extended Filesystem (сокращенно звучит как ext2FS или просто ext2) много лет была файловой системой GNU/Linux по умолчанию. Она заменила Extended File System (вот откуда в названии появилось «Second»). ext2 устраняет определенные проблемы и ограничения своего предка.

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

[Замечание]Замечание

Перед изменением размера раздела, он должен быть размонтирован.

1.1.2. Ext3

Как видно из названия, Third Extended File System является наследником ext2. Она совместима с последней, но была улучшена за счет добавления журналирования

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

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

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

[Замечание]Замечание

Как и для ext2, перед изменением размера такого раздела, он должен быть размонтирован.

1.1.3. ReiserFS

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

[Замечание]Замечание

Размер такого раздела может быть изменен «на лету», без размонтирования файловой системы.

1.1.4. JFS

JFS - это журналируемая файловая система, разработанная и используемая в IBM. Изначально она была собственнической и закрытой, но потом корпорация IBM решила открыть к ней доступ движению за свободное программное обеспечение. Ее внутренняя структура близка к структуре reiserfs.

[Внимание]Внимание

В GNU/Linux размер такого раздела не может быть изменен.

1.1.5. XFS

XFS - это журналируемая файловая система, разработанная в SGI, и также используемая в операционной системе Irix. Изначально она была собственнической и закрытой, но потом в SGI также решили открыть к ней доступ для движения за свободное программное обеспечение. Ее внутренняя структура имеет много разнообразных возможностей, таких как поддержка пропускной способности реального времени, экстенты (непрерывные области с прямым доступом, резервируемые для определенного набора данных) и кластерные файловые системы (но не в свободной версии).

[Внимание]Внимание

В GNU/Linux размер такого раздела может быть изменен только в сторону увеличения. Вы не можете уменьшить его. Изменение размера может быть выполнено только для примонтированной файловой системы.

1.2. Различия между файловыми системами

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

 Ext2Ext3ReiserFSJFSXFS
СтабильностьОтличнаяОчень хорошееХорошаяСреднееХорошая
Утилиты для восстановления удаленных файловЕсть (комплекс)Есть (комплекс)НетНетНет
Скорость перезагрузки после падения системыДолго, даже очень долгоБыстроОчень быстроОчень быстроОчень быстро
Состояние данных в случае падения системыВообще говоря, хорошее, но высок риск частичной или полной потери данныхОчень хорошееСреднее[a] Очень хорошееОчень хорошее
Поддержка ACLДаДаНетНетДа

[a] Имеется возможность улучшить результаты восстановления после падения путем журналирования данных, а не только метаданных, посредством добавления опции data=journal в /etc/fstab.

Максимальный размер файла зависит от многих параметров (например, от размера блока для ext2/ext3), а также возможно дальнейшее развитие, в зависимости версии ядра и архитектуры. Согласно ограничениям файловой системы, текущий максимальный объем в настоящее время составляет порядка 2 терабайт или более (ТБ, 1ТБ=1024 ГБ) для ext2 или ext3 на стандартных 32-битных машинах. Для JFS он может составлять до 4 петабайт (ПБ, 1ПБ=1024 ТБ). К сожалению, эти значения ограничены также и максимальным размером блочного устройства[23].

В ядре 2.6.X этот предел блочного устройства может быть увеличен при использовании ядра, скомпилированного с включенной поддержкой Large Block Device (CONFIG_LBD=y). За дополнительной информацией обращайтесь к сайтам Adding Support for Arbitrary File Sizes to the Single UNIX Specification, Large File Support in Linux, и Large Block Devices. С помощью этой функции и поддерживающей ее файловой системы вы можете достичь емкости в 16 ТБ (на 32-битных машинах) без специальных «примочек» файловой системы, как это сделано в JFS для размера файловой системы. Хранимые в ней файлы ограничены меньшим размером.

1.3. А как насчет производительности?

Сравнивать производительность файловых систем всегда очень сложно. Все тесты имеют свои ограничения, и результаты должны толковаться очень осторожно. В настоящее время ext2 является очень зрелой файловой системой, но ее разработка ведется довольно медленно; ext3 и reiserfs с этой точки зрения созрели полностью. Новые возможности reiserfs включены в reiserfs4[24]. С другой стороны XFS имеет множество возможностей, и со временем все больше этих дополнительных возможностей работает лучше в Linux. JFS в этом отношении использует различные технологии и они интегрируются в Linux одна за одной. Это замедляет процесс, однако они также находятся в процессе завершения и с очень чистым базовым кодом. Сравнения, проведенные несколько месяцев или недель назад уже слишком устарели. Давайте не забывать, что сегодняшнее оборудование (особенно что касается емкости жестких дисков) значительно усиливает разницу между ними. XFS имеет преимущество в том, что на данный момент обладает повышенной производительностью при работе с большими файлами в потоковом режиме.

Каждая из систем обладает своими преимуществами и недостатками. В действительности все зависит от того, как вы используете свою машину. Для простой настольной машины вполне хватит ext2. Для сервера предпочтение следует отдать журналируемой файловой системе типа ext3. reiserfs, возможно из-за ее происхождения, больше подходит для сервера баз данных. JFS более предпочтительна в случаях, где на первом месте стоит производительность файловой системы. XFS интересна в том случае, если вам нужны ее расширенные возможности.

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



[23] Вас могло удивить, как достигнуть таких емкостей с жесткими дисками, объемы которых едва достигают 320-400ГБ. Воспользовавшись, например, одним контроллером RAID с 8*250ГБ дисками в аппаратном RAID 0-го уровня, вы можете достичь объема в 2ТБ. Скомбинировав хранилище из нескольких контроллеров RAID, и используя программный RAID для GNU/Linux или LVM (Logical Volume Manager - диспетчер логических томов), существует возможность выйти даже за предел (ограничение на размер блока) в 2 ТБ.

[24] На момент написания этого руководства поддержка reiserfs4 в ядре 2.6.X включена не была