XFS (XFS)

Перейти к навигации Перейти к поиску
XFS
Разработчик Silicon Graphics
Файловая система XFS
Дата представления 1994 (IRIX 5.3)
Структура
Содержимое папок B+ деревья
Размещение файлов B+ деревья
Ограничения
Максимальный размер файла 8 эксбибайт - 1 байт
Максимальная длина имени файла 255 байт
Максимальный размер тома 16 эксбибайт
Допустимые символы в названиях Все символы, исключая NUL и /
Возможности
Свойства Да
Точность хранения даты 1 ns
Атрибуты Да
Права доступа Да
Фоновая компрессия Нет
Фоновое шифрование Нет (обеспечивается на уровне блочного устройства)
Поддерживается ОС IRIX, Linux, FreeBSD (только для чтения, экспериментально чтение-запись; удалена начиная с FreeBSD 10)

XFS — высокопроизводительная 64-битная журналируемая файловая система, созданная компанией Silicon Graphics для собственной операционной системы IRIX. 1 мая 2001 года Silicon Graphics выпустила XFS под GNU General Public License (Linux версия 2.2). XFS отличается от других файловых систем тем, что она изначально была рассчитана для использования на дисках большого объёма (более 2 терабайт, см. например, RAID-массивы).

Поддержка XFS была включена в основное ядро Linux версии 2.4 (начиная с 2.4.25, когда Марчело Тозатти (Marcelo Tosatti) посчитал её достаточно стабильной) и 2.6, и, таким образом, она стала довольно универсальной для Linux-систем. Инсталляторы дистрибутивов openSUSE, Gentoo, Mandriva, Slackware, Ubuntu, Fedora/RHEL и Debian предлагают XFS как вариант файловой системы для установки.

FreeBSD стала поддерживать XFS в режиме чтения в декабре 2005 года, с июня 2006 была представлена экспериментальная поддержка записи. Несмотря на это, её предполагалось использовать только для облегчения миграции с Linux, но не основной файловой системы. Поддержка XFS была удалена в FreeBSD 10[1].

Особенности

[править | править код]
  • 64-битная файловая система.
  • Журналирование только метаданных (если не задать иное параметрами).
  • Выделение места экстентами (Extent — указатель на начало и число последовательных блоков). В экстентах выделяется место для хранения файлов, а также экстентами хранятся свободные блоки.
  • B-tree индексы активно используются для хранения различных данных файловой системы: для списка блоков с inode'ами, списка экстентов с содержимым файла, каталогов файлов, списков экстентов свободных блоков (свободные блоки проиндексированы и по размеру блока, и по расположению). Однако использование b-tree индексов не догма — небольшой файл или каталог может быть размещен прямо внутри inode.
  • Отложенное выделение места (Delayed allocation). При записи файла для него выделяется место в памяти, а на диске выделяется место только при записи файла на диск. Таким образом под файл оптимально выделяется место на диске, что уменьшает фрагментацию.
  • Изменение размера «на лету» (только увеличение).
  • Размещение в нескольких линейных областях (по умолчанию — 4 шт.) т. н. «allocation groups» (увеличивает производительность путём выравнивания активности запросов как к разным дискам на RAID-массивах типа «stripe», так и при асинхронном обращении к файловой системе на обычном диске.)
  • Дефрагментация «на лету».
  • API ввода-вывода реального времени (для приложений жёсткого или мягкого реального времени, например, для работы с потоковым видео).
  • Интерфейс (DMAPI) для поддержки иерархического управления носителями (HSM).
  • Инструменты резервного копирования и восстановления (xfsdump и xfsrestore).
  • «Индексные блоки» inode выделяются динамически (по мере надобности) и неиспользуемые inode могут освобождаться (высвобождая место для хранения данных).
  • Малые «накладные расходы» — размер служебных структур данных. На вновь созданной файловой системе XFS на служебные нужды тратится порядка 0,54 %. Это достигается малым количеством заголовков для групп (allocation groups), а также за счет динамического выделения inode.

Недостатки

[править | править код]
  • Невозможно уменьшить размер существующей файловой системы. Если раздел на диске занят XFS, его размер нельзя будет изменить в меньшую сторону (это важно принимать во внимание при разбивке диска).
  • Восстановление удалённых файлов в XFS — очень сложный процесс, поэтому на данный момент (2014 год) для этого существует всего лишь несколько программных продуктов, например «Raise Data Recovery for XFS» для ОС Windows.
  • Возможность потери данных во время записи при сбое питания, так как большое количество буферов данных хранится в памяти при том, что метаданные записываются в журнал (на диск) оперативно. Это характерно и для других файловых систем с журналированием метаданных.

Примечания

[править | править код]
  1. Has FreeBSD 10 Dropped Support For XFS? Lists.freebsd.org (27 октября 2013). Дата обращения: 30 марта 2014. Архивировано 30 марта 2014 года.