Файловая система XFS

XFS - это высоко масштабируемая, высокопроизводительная файловая система, которая была изначально разработана в Silicon Graphics в 1993 году. Она была добавлена в основной состав ядра Linux в 2002 году. Сейчас она используется в качестве файловой системы по умолчанию в операционных системах семейства Red Hat.

В этой статье мы рассмотрим как работает файловая система XFS, ее преимущества, недостатки, а также как использовать ее на своем компьютере.

Что такое XFS?

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

Один из основных недостатков XFS состоит в том, что ее нельзя уменьшить. Кроме того, операции с метаданными работают немного медленнее, чем в других файловых системах, поэтому обработка большого количества небольших файлов будет значительно медленнее. Файловая система достаточно стабильна и имеет собственные инструменты для восстановления в случае необходимости. Дальше мы рассмотрим как создать эту файловую систему на вашем жестком диске и как выполняется настройка XFS.

Создание раздела XFS

Я буду предполагать, что у вас уже есть готовый раздел для создания файловой системы. Если нет, вы можете создать его с помощью утилиты Gparted или fdisk. Я буду предполагать, что раздел, на котором необходимо создать файловую систему XFS - это /dev/sda11. Это можно сделать с помощью стандартной утилиты mkfs:

sudo mkfs.xfs /dev/sda11

Если на указанном разделе уже существует файловая система, то нужно использовать опцию -f чтобы ее перезаписать:

sudo mkfs.xts /dev/sda11

Во время создания утилита выдаст текущую информацию о файловой системе и таблице метаданных.

Монтирование XFS

Теперь нам нужно смонтировать только что созданный раздел. Вы можете создать отдельную папку для монтирования или подключить раздел в /mnt. Например, создадим папку /mnt/db. Затем вы можете примонтировать раздел, также как и все другие файловые системы, с помощью команды mount:

sudo mkdir /mnt/da11
$ sudo mount /dev/sda11 /mnt/db
$ sudo mount | grep sda11

Теперь вы можете записывать файлы на этот раздел. Большинство опций файловых систем устанавливаются с помощью монтирования. Рассмотрим основные опции монтирования, специфичные для XFS:

  • inode64 - если у вас есть устройство, размером более 2Тб, то вам нужно использовать эту опцию монтирования для улучшения работы файловой системы;
  • nobarrier - в XFS есть барьер записи данных, это нужно чтобы важные данные не были потеряны при неожиданной перезагрузке. Если вы уверены что ваше оборудование полностью надежно, то барьер лучше отключить чтобы повысить производительность;
  • logdev - позволяет записывать журнал работы файловой системы во внешний файл;
  • sunit - задает размер одного блока данных для RAID массивов. По умолчанию используется размер 512 байт;
  • norecovery - по умолчанию, при каждом монтировании файловой системы выполняется проверка и исправление. если она была размонтирована неправильно. Эта опция отключает такую процедуру;
  • quota - включает поддержку дисковых квот для пользователей.

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

sudo xfs_info /dev/sda11

Если вы хотите, чтобы этот раздел монтировался автоматически, то необходимо настроить монтирование xfs fstab. Для этого достаточно добавить строчку:

sudo vi /etc/fstab

/dev/sda11 /mnt/db xfs defaults 0 0

Настройка квоты XFS

Файловая система XFS поддерживает настройку квот дискового пространства для каждого пользователя, папки, группы или проекта. Рассмотрим как настроить дисковую квоту для определенной папки. Для начала необходимо, чтобы файловая система была смонтирована с поддержкой коты. Дальше создадим тестовую папку в нашей файловой системе:

mkdir /mnt/db/test

Управление квотами выполняется с помощью утилиты xfs_quota, но сначала нам необходимо, чтобы файловая система была смонтирована с поддержкой настройки квот. Для этого перемонтируем ее:

sudo mount -o remount,uquota,gquota /dev/sda11 /mnt/db

Дальше эти же опции желательно добавить в /etc/fstab для этой файловой системы. Теперь рассмотрим как настроить XFS квоту. Сначала запустите утилиту xfs_quota для каталога, куда смонтирована XFS:

sudo xfs_quota -x /mnt/db

Вы можете посмотреть состояние с помощью команды:

quota> report -h

Затем, чтобы задать ограничение на использование пространства в этой файловой системе для пользователя sergiy используйте команду limit:

quota> limit bsoft=100m bhard=200m sergiy

Мы задали ограничение 5 гигабайт и жестко - 6 Гб. Вы можете снова посмотреть report чтобы убедиться в правильности изменений:

quota> report -h

Изменение размера XFS

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

df -h

Далее, увеличение размера XFS осуществляется в два этапа. Но в увеличении размера онлайн есть одно но, вам нужно увеличить размер раздела в таблице разделов, а сделать это без размонтирования можно только в LVM. В других же конфигурациях придется все же размонтировать. Сначала измените размер раздела, например, с помощью Gparted:

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

xfs_growfs /mnt/db

Дальше снова смотрим на размеры:

df -h

Как видите, все увеличилось. Но не забывайте, что вы не можете сжать файловую систему, никогда.

Выводы

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

6 комментариев

  1. larkoma Март 1, 2017 Ответить
  2. Алексей Март 3, 2017 Ответить
  3. Алексей Март 3, 2017 Ответить
  4. Андрей Декабрь 23, 2017 Ответить

Ответить

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: