- Файловая система XFS
- Что такое XFS?
- Создание раздела XFS
- Монтирование XFS
- Настройка квоты XFS
- Изменение размера XFS
- Выводы
- How to Create XFS File System in Linux (Step by Step)
- Create XFS file system and internal log on same disk
- Create XFS file system and Internal Log on separate disk
- Create XFS File system on LVM
- Mount XFS File system
Файловая система XFS
XFS — это высоко масштабируемая, высокопроизводительная файловая система, которая была изначально разработана в Silicon Graphics в 1993 году. Она была добавлена в основной состав ядра Linux в 2002 году. Сейчас она используется в качестве файловой системы по умолчанию в операционных системах семейства Red Hat.
В этой статье мы рассмотрим как работает файловая система XFS, ее преимущества, недостатки, а также как использовать ее на своем компьютере.
Что такое XFS?
Эта файловая система имеет все преимущества современных файловых систем, такие как журналирование метаданных для быстрого восстановления, но, кроме того, здесь поддерживается распределение потоков ввода/вывода по группам что сильно увеличивает производительность чтения и записи данных. Но это работает только для больших файлов. Также вы можете увеличить размер файловой системы или выполнить дефрагментацию, даже если она смонтирована.
Один из основных недостатков XFS состоит в том, что ее нельзя уменьшить. Кроме того, операции с метаданными работают немного медленнее, чем в других файловых системах, поэтому обработка большого количества небольших файлов будет значительно медленнее. Файловая система достаточно стабильна и имеет собственные инструменты для восстановления в случае необходимости. Дальше мы рассмотрим как создать эту файловую систему на вашем жестком диске и как выполняется настройка XFS.
Создание раздела XFS
Я буду предполагать, что у вас уже есть готовый раздел для создания файловой системы. Если нет, вы можете создать его с помощью утилиты Gparted или fdisk. Я буду предполагать, что раздел, на котором необходимо создать файловую систему XFS — это /dev/sda11. Это можно сделать с помощью стандартной утилиты mkfs:
Если на указанном разделе уже существует файловая система, то нужно использовать опцию -f чтобы ее перезаписать:
Во время создания утилита выдаст текущую информацию о файловой системе и таблице метаданных.
Монтирование 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 — включает поддержку дисковых квот для пользователей.
Вы можете использовать любую из этих опций для настройки своей файловой системы. После монтирования можно посмотреть информацию про метаданные файловой системы:
Если вы хотите, чтобы этот раздел монтировался автоматически, то необходимо настроить монтирование xfs fstab. Для этого достаточно добавить строчку:
/dev/sda11 /mnt/db xfs defaults 0 0
Настройка квоты XFS
Файловая система XFS поддерживает настройку квот дискового пространства для каждого пользователя, папки, группы или проекта. Рассмотрим как настроить дисковую квоту для определенной папки. Для начала необходимо, чтобы файловая система была смонтирована с поддержкой коты. Дальше создадим тестовую папку в нашей файловой системе:
Управление квотами выполняется с помощью утилиты xfs_quota, но сначала нам необходимо, чтобы файловая система была смонтирована с поддержкой настройки квот. Для этого перемонтируем ее:
sudo mount -o remount,uquota,gquota /dev/sda11 /mnt/db
Дальше эти же опции желательно добавить в /etc/fstab для этой файловой системы. Теперь рассмотрим как настроить XFS квоту. Сначала запустите утилиту xfs_quota для каталога, куда смонтирована XFS:
Вы можете посмотреть состояние с помощью команды:
Затем, чтобы задать ограничение на использование пространства в этой файловой системе для пользователя sergiy используйте команду limit:
quota> limit bsoft=100m bhard=200m sergiy
Мы задали ограничение 5 гигабайт и жестко — 6 Гб. Вы можете снова посмотреть report чтобы убедиться в правильности изменений:
Изменение размера XFS
Вы можете изменить размер файловой системы XFS налету, прямо, когда она будет смонтирована. Сначала смотрим текущий размер разделов:
Далее, увеличение размера XFS осуществляется в два этапа. Но в увеличении размера онлайн есть одно но, вам нужно увеличить размер раздела в таблице разделов, а сделать это без размонтирования можно только в LVM. В других же конфигурациях придется все же размонтировать. Сначала измените размер раздела, например, с помощью Gparted:
Затем осталось увеличить размер файловой системы, это можно сделать даже если файловая система смонтирована. Выполните команду:
Дальше снова смотрим на размеры:
Как видите, все увеличилось. Но не забывайте, что вы не можете сжать файловую систему, никогда.
Выводы
В этой статье была рассмотрена файловая система XFS, монтирование XFS и ее настройка. Мы рассмотрели все самые интересные моменты, касаемо этой файловой системы. Она достаточно стабильна и используется на множестве производственных серверов. Если у вас остались вопросы, спрашивайте в комментариях.
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.
How to Create XFS File System in Linux (Step by Step)
XFS is a 64-bit journaling file system and used where high performance is required. XFS file system is available in most of the linux distribution like Ubuntu, Debian and RHEL. In RHEL based distributions XFS is the default file system.
In guide, we will learn how to create XFS file system from the scratch step by step and then also learn how to mount and use it. For managing file system in Linux, we need a user with sudo privileges. For the demonstration purpose, I have attached 10 GB (/dev/sdb) disk to my linux system. I would be creating XFS file system on it.
Let’s deep dive into the steps,
Create XFS file system and internal log on same disk
Use mkfs.xfs command to create xfs file system and internal log on the same disk, example is shown below:
Create XFS file system and Internal Log on separate disk
If you want to place journal on another disk while creating xfs file system, then it is also possible. Let’s assume I have /dev/sdc disk where I want to store journal of xfs file system. Run beneath command,
$ sudo mkfs.xfs -l logdev=/dev/sdc,size=10000b /dev/sdb
To overwrite the existing xfs file system, use ‘ -f’ option on mkfs.xfs command
$ sudo mkfs.xfs -f -l logdev=/dev/sdc,size=10000b /dev/sdb
In above command, value after size parameter shows that number of blocks (10000)
Create XFS File system on LVM
To create LVM based file system, refer the following steps,
1 ) Create Physical Volume (PV)
Create pv on disk /dev/sdb, run
Run beneath vgcreate command to volume group on pv /dev/sdb,
$ sudo vgcreate vg01_xfs /dev/sdb
3) Create LV (Logical Volume) from VG
Use below lvcreate command to create logical volume of size 10 GB,
$ sudo lvcreate -L 9.9G -n lv01_xfs vg01_xfs
4) Format LV (logical volume) with XFS file system
Run below mkfs.xfs command to format lv (/dev/vg01_xfs/lv01_xfs) with xfs file system,
$ sudo mkfs.xfs /dev/vg01_xfs/lv01_xfs
Output of above commands would look like below:
Mount XFS File system
To mount a file system in linux, first we must have mount point, let’s create the mount point as ‘ /var/data ’, run
Now run following mount command to mount xfs file system,
$ sudo mount /dev/vg01_xfs/lv01_xfs /var/data/ $ df -Th /var/data/ Filesystem Type Size Used Avail Use% Mounted on /dev/mapper/vg01_xfs-lv01_xfs xfs 9.9G 103M 9.8G 2% /var/data $
This is a temporary mount, so to mount the xfs file system permanently add following entries in /etc/fstab file.
/dev/vg01_xfs/lv01_xfs /var/data xfs defaults 0 0
To access the file system, go to the mount point and try to create a file,
$ cd /var/data/ $ sudo touch testfile $ ls -l total 0 -rw-r--r-- 1 root root 0 Jan 10 10:31 testfile $
Great, above confirms that we have successfully able to write on xfs file system. That’s all from this guide, please do share your feedback and queries in below comments section.