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

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

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

Рассматриваются только файловые системы семейства linux. Так что, кого это также заинтересовало, прошу под кат.

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

Были иcпользованы bonnie++ и postmark. Я не буду приводить результаты, так как мне делать этого не следует (это не паблик тесты, я не думаю, что имею право их выкладывать, прошу меня извинить). Поэтому ограничусь небольшими выводами.

Лидирует по производительности ext2, несильно отстает jfs, затем идет reiserfs, ext3, и с небольшим отрывом xfs.

Если сравнивать наиболее распространенные файловые системы между собой, то выходит следующее:

потеря производительности для xfs по мере добавления промежуточных уровней device mapper'a менее существенна, чем для ext3.

ext3 — обычная, вылизанная до блеска, файловая система, сравнительно простая во внутренней организации, за счет чего не особо эффективная. Поддерживается всем, чем угодно, совместима с ext2. Обычно ставится по умолчанию именно по этим причинам. К тому же, невелик риск потерять что-либо.

xfs — более сложная, более эффективная в работе с большими по размеру файлами, хорошо работает с большими по объему каталогами на чтение и поиск в них. Эффективно реализована поддержка ACL. Невысокая нагрузка на процессор.

Особенности при работе LVM2 — размер файловой системы ext3 можно как увеличивать, так и уменьшать, но лишь при отмонтированной файловой системе, в отличии от xfs, которую можно лишь увеличивать, но на смонтированной файловой системе, то есть, не прерывая работу с ней.

для xfs также есть возможность принудительно сбросить буферы на диск без отмонтирования и прерывания работы с ней. Для ext3 snapshot через LVM будет аналогичен состоянию файловой системы при отключении питания. Но разработчики обещали поправить это дело в новых версиях ядра.

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

ext2 — та же ext3, только без поддержки журналирования, за счет чего работает быстрее.

jfs дает хороший прирост в скорости работы. Плюс этой файловой системы в том, что возможно восстановить данные с поврежденного тома, или же стертые данные, в отличии от ext3, но при этом, jfs не сохраняет данные о стертых каталогах а файлах, что затруднит поиск. Нет ограничений на количество файлов. Одинаково производительна как на файлах малого обьема, так и на файлах большого обьема. fsck работает очень быстро. Минимальная нагрузка на процессор, оптимизирована для работы в многопроцессорной среде. Раздел можно лишь увеличить. Идеально подходит для хранения корневой файловой системы.

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

На этом, в общем-то, все. Приятного всем дня
 

PS: Ссылку на оригинал статьи не приведу, нашел давно и сохранил у себя на жестяке.