Обзор файловых систем

Июль 3, 2017

Ext2 vs Ext3 vs Ext4 vs ReiserFS vs Reiser4 vs Btrfs vs XFS vs JFS vs ZFS

Рано или поздно вы либо столкнётесь с незнакомой вам файловой системой, либо вас дико будет не устраивать выбранная по умолчанию файловая система. А возможно вам, как и мне станет интересно почему их столько много. А потому что универсальной ещё не придумали, но обо всём по порядку.
Файловая система (file system) — порядок, определяющий способ организации, хранения и именования данных на носителях информации в компьютерах, а также в другом электронном оборудовании. Файловая система определяет формат содержимого и способ физического хранения информации, которую принято группировать в виде файлов. Конкретная файловая система определяет размер имен файлов и (каталогов), максимальный возможный размер файла и раздела, набор атрибутов файла. Некоторые файловые системы предоставляют сервисные возможности, например, разграничение доступа или шифрование файлов. Существует множество вариантов, как разметить диск для Linux и среди них нет 100% правильного. Чтобы выбрать наиболее подходящий вариант, нужно определиться с целью. Будит это web-сервер, email-сервер, ftp, desktop или что-то еще. И расставить приоритеты, что важнее в данной конкретной ситуации, скорость обработки, безопасность данных или какой нибудь другой параметр.

Ext2 — отсутствует журналирование, создан по подобию UFS. Можно использовать для загрузочного раздела /boot, но подойдёт ещё лучше для различных флеш-накопителей.
Ext3 — обратно совместима с ext2, появилось журналирование (нельзя отключить), может содержать до 32 000 поддиректорий, переход от ext2 к ext3 может быть осуществлен простым добавлением файла журнала к первой, не только без переформатирования раздела, но даже и без рестарта машины. Часто применяют для серверов баз данных, не лучший выбор для других серверов так-как не поддерживает создание снимков и весьма трудно восстанавливать удалённые данные.
Ext4 — обратно совместимая с ext2 и ext3, журналирование (с возможностью отключения), может содержать до 64 000 поддиректорий. Так же часто применяют для серверов баз данных, но часто встречается и в других типах серверов. Отлично подойдёт для SSD.

ReiserFS (Reiser3) — Журналируемая файловая система, в некоторых случаях быстрее Ext4, но менее стабильна. Хорошо грузит процессор. Быстро работает с огромным числом маленьких файлов, хорошо подходит для хранения и работы с мультимедиа, торрентами, какого-нибудь кэша. Часто используется для разделов /home, /var, /tmp. И ещё, если кто-то назвал ReiserFS старьём значит он зелёный овощ.
Reiser4 — 4-ая версия ReiserFS, тоже быстрая файловая система, хорошо работает с большим количеством мелких файлов, файловая система отсутствует в основной ветви ядра. Можно увеличивать в смонтированном состоянии. Актуально при использовании на LVM.

BtrFS (B-tree FS или Butter FS) — возможность перехода с ext3 на Btrfs. Позволяет делать снимки областей диска во время её работы. Контроль за целостностью данных и метаданных, сжатие данных. Размещение на нескольких разделах, поддержка подтомов, изменение размера не лету. Отличная файловая система для сервера.

XFS — Файловая система, наиболее подходящая для хранения очень больших файлов, в которых постоянно что-нибудь дописывается или изменяется. Поддерживает журналирование (в журнал записываются только изменения метаданных). Эффективно реализована поддержка ACL. Увеличение разделов на лету, невозможность уменьшения размера. Рекомендуется использовать эту файловую систему с проверенным аппаратным обеспечением, подключенным к управляемому источнику бесперебойного питания (UPS). Не рекомендуется для корневой файловой системы, низкая производительность при работе с большим количеством файлов. она ориентирована на работу с мультимедийными приложениями с их огромными потоками данных.

JFS (IBM Journaled File System) — Разработана IBM для файловых серверов с высокой нагрузкой, при разработке особый упор делался на производительность и надёжность. Возможно восстановить данные с поврежденного тома, или же стертые данные. Поддерживает журналирование. Минимальная нагрузка на процессор, оптимизирована для работы в многопроцессорной среде. Раздел можно лишь увеличить. Отлично подходит для хранения корневой файловой системы.

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

FAT12/FAT16/FAT32/NTFS — хоть это и не линуксовые системы и использовать их в Linux будет большая глупость, тем не менее взаимодействие Linux с оными следует рассмотреть, в случае монтирования такого диска с Windows машины.

FAT12/FAT16/FAT32 — Эти файловые системы используются в MS-DOS и разных версиях Windows, а также на многих съёмных носителях (в частности, на дискетах и USB-flash). Linux поддерживает чтение и запись на эти файловые системы.
NTFS — Файловая система NTFS изначально появилась в системах Windows NT, но может использоваться и другими версиями Windows (например, Windows 2000). Linux поддерживает чтение и запись на эту систему через FUSE-модуль NTFS-3G.

На заметку.
Журналирование — что бы вы понимали позволяет восстановить файловую систему при сбоях в работе компьютера.
ACL (Access Control List) — список контроля доступа, который определяет, кто или что может получать доступ к конкретному объекту, и какие именно операции разрешено или запрещено этому субъекту проводить над объектом.

Краткий вывод.
Если вам нужна максимально стабильная файловая система linux — то лучшим решением будет ext4, хотите новых технологий — btrfs, для маленьких файлов — raiser4, для больших — XFS.

Таблица для вывода. Журналирование в таблице подразумевается блоков или транзакций, мета-данные не в счёт.
 Название  Макс. разм. файла  Макс. разм. тома  ACL   Журналирование  Мгновенные снимки   Шифрование
  Ext2  2 ТиБ  32 ТиБ  Да  Нет  Нет  Нет
  Ext3  2 ТиБ  32 ТиБ  Да  Да  Нет  Нет
  Ext4  16 ГиБ   1 ЭиБ  Да  Да  Нет  Нет
  ReiserFS  8 ТиБ  16 ТиБ  Да  Да  Нет  ?
  Reiser4  8 ТиБ  ?  Нет  Да  ?  Да
  BtrFS  16 ЭиБ  16 ЭиБ  Да  ?  Да  ?
  XFS  9 ЭиБ  9 ЭиБ  Да  Нет  Да  ?
  JFS  8 ЭиБ  4 ПиБ  Да  Нет  ?  ?
  ZFS  16 ЭиБ  16 ЭиБ  Да  Да  Да  Да
  FAT32  4 ГиБ  8 ТиБ  Нет  Нет  Нет  Нет
  NTFS  16 ЭиБ  16 ЭиБ  Да  Да  Да  Да

P.S. Если вам есть чем дополнить мои заметки пишите в комментариях, с радостью добавлю в статью.
Теги статьи:
Категории статьи
Linux

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *