Библиотека сайта rus-linux.net
Сравнение нескольких файловых систем |
||
---|---|---|
Глава 9. Файловая система Linux |
Сравнение нескольких файловых систем
В время установки вы можете выбрать различные файловые системы для своих разделов, таким образом они будут отформатированы с использованием различных алгоритмов.
Если вы не специалист, то выбор файловой системы не совсем понятен. Мы вкратце рассмотрим несколько современных файловых систем, доступных в Mandrakelinux.
Различные используемые файловые системы
Ext2
Second
Extended Filesystem (сокращенно звучит
как ext2 или просто ext2
)
много лет была файловой системой GNU/Linux по умолчанию. Она заменила
Extended File System (вот откуда в названии появилось «Second»).
ext2 устраняет определенные проблемы и ограничения своей
предшественницы.
ext2 соблюдает обычные стандарты для файловых систем UNIX®-типа. С самого начала она была предназначена для дальнейшего развития, сохраняя при этом высокую отказоустойчивость и хорошую производительность.
Ext3
Как видно из названия, Third Extended File System является наследником ext2. Она совместима с последней, но была улучшена засчет добавления журналирования.
Одним из главных недостатков «традиционных» файловых систем типа ext2 является их низкая устойчивость к внезапным падениям системы (отключение электричества или сбой программного обеспечения). Вообще говоря, при дальнейшей перезагрузке системы такие виды событий приводят к очень долгой проверке структуры файловой системы и попыткам исправить ошибки, что иногда вызывает более обширные разрушения. Это разрушение могло бы привести к частичной или полной потере данных.
Журналирование отвечает за решение этой проблемы. Для упрощения давайте будем говорить, что мы записываем действия (например, сохранение файла) до того, как они происходят на самом деле. Мы могли бы сравнить такой образ действий с тем, что ведет капитан корабля, который использует бортовой журнал для записи ежедневных событий. С той лишь разницей, что он делает запись после того, как событие произошло. Результат - всегда согласованная файловая система. А если возникают проблемы, проверка и окончательное восстановление выполняются очень быстро. Время, потраченное на проверку файловой системы, таким образом, пропорционально ее фактическому использованию и не связано с ее размером.
Таким образом, ext3 предлагает технологию журналирования файловой системы, сохраняя при этом структуру ext2, обеспечивая при этом отличную совместимость. Это значительно облегчает переход с ext2 на ext3 и обратно.
ReiserFS
В отличие от ext3 reiserfs была написана с нуля. Это журналируемая файловая система типа ext3, но ее внутренняя структура радикально отличается, т.к. в ней используются идеи двоичного дерева, навеянные программным обеспеченем для баз данных.
JFS
JFS - это журналируемая файловая система, разработанная и используемая в IBM. Изначально она была собственнической и закрытой, но потом в IBM решили открыть к ней доступ для движения за свободное программное обеспечение. Ее внутренняя структура близка к структуре reiserfs.
XFS
XFS - это журналируемая файловая система, разаработанная в SGI, и также используемая в операционной системе Irix. Изначально она была собственнической и закрытой, но потом в SGI также решили открыть к ней доступ для движения за свободное программное обеспечение. Ее внутренняя структура имеет много разнообразных возможностей, таких как поддержка пропускной способности реального времени, экстенты (непрерывные области с прямым доступом, резервируемые для определенного набора данных) и кластерные файловые системы (но не в свободной версии).
Различия между файловыми системами
Таблица 9.1. Характеристики файловой системы
Вообще говоря, хорошее, но высок риск частичной или полной потери данных |
Среднее[a] |
||||
[a] Имеется
возможность улучшить результаты восстановления после падения
путем журналирования данных, а не только метаданных,
посредством добавления опции |
Максимальный
размер файла зависит от многих параметров (например, от размера блока
для ext2/ext3), а также возможно дальнейшее развитие, в зависимости
версии ядра и архитектуры. Согласно ограничениям файловой системы,
текущий максимальный объем в настоящее время составляет порядка 2
терабайт или более (ТБ, 1ТБ=1024 ГБ), а для JFS он может составить до
4 петабайт (ПБ, 1ПБ=1024 ТБ). К сожалению, эти значения ограничены
также и максимальным размером блочного устройства, который в текущем
ядре 2.4.X
ограничен (только для архитектуры X86
)
до 2ТБ [20]
даже в режиме RAID. В ядре 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.
А как насчет производительности?
Сравнивать производительность файловых систем всегда очень сложно. Все тесты имеют свои ограничения, и результаты должны толковаться очень осторожно. В настоящее время ext2 является очень зрелой файловой системой, но её разработка ведется довольно медленно; ext3 и reiserfs с этой точки зрения созрели полностью. Новые возможности reiserfs включены в reiserfs4[21]. С другой стороны XFS имеет множество возможностей, и со временем все больше этих дополнительных возможностей работает лучше в Linux. JFS в этом отношении использует различные технологии и они интегрируются в Linux одна за одной. Это замедляет процесс, однако они также в процессе завершения и с очень чистым базовым кодом. Сравнения, проведенные пару месяцев или недель назад уже слишком устарели. Давайте не забывать, что сегодняшний материал (особенно касающийся емкости жестких дисков) значительно услиливает разницу между ними. XFS имеет преимущество в том, что в настоящий момент обладает повышенной пропускной способностью при работе с потоковыми файлами.
Каждая из систем обладает своими преимуществами и недостатками. В действительности все зависит от того, как вы используете вашу машину. Для простой настольной машины вполне хватит ext2. Для сервера предпочтение следует отдать журналируемой файловой системе ext3. reiserfs, возможно из-за ее происхождения, больше подходит для сервера баз данных. XFS более предпочтительна в случаях, где на первом месте стоит пропускная способность файловой системы. JFS интересна в том случае, если вам нужны ее расширенные возможности.
При «обычном»
использовании, все четыре файловые системы дают приблизительно
одинаковые результаты. reiserfs
позволяет вам быстро получать доступ к маленьким файлам, но она
довольно медленна при работе с большими файлами (мегабайты). В
большинстве случаев, преимущества reiserfs,
полученные от способностей журналирования, превосходят ее недостатки.
Обратите внимание, что по умолчанию reiserfs
монтируется с опцией notail
.
Это означает, что отсутствует оптимизация для маленьких файлов, и что
работа с большими файлами ведется на нормальной скорости.
[20] Вас могло заинтересовать, как же достигнуть таких емкостей с жесткими дисками, объемы которых едва достигают 320-400ГБ. Воспользовавшись, например, одним контроллером RAID с 8*128ГБ дисками в аппаратном RAID-массиве 0-го уровня, вы можете достичь объема в 2ТБ. Скомбинировав хранилище из нескольких контроллеров RAID, и используя программный RAID-массив Linux или LVM (Logical Volume Manager - диспетчер логических томов), имеется возможность выйти даже за предел (ограничение на размер блока) в 2 ТБ.
[21] На момент написания этого руководства поддержка reiserfs4 в ядре 2.6.X включена не была
Глава 9. Файловая система Linux |
Всё является файлом |