XFS
XFS — это высокопроизводительная журналируемая файловая система. Она поддерживает ACL (POSIX) при работе в Linux.
XFS имеет репутацию надежной файловой системы, благодаря которой в ядре Linux был создан большой тестовый набор xfstests, используемый ныне для выявления регрессий в работе различных файловых систем.
Установка
Ядро
File systems --->
<*> XFS filesystem support
Необязательно:
File systems --->
[*] XFS Quota support
[*] XFS POSIX ACL support
[*] XFS Realtime subvolume support
[ ] XFS Verbose Warnings
[ ] XFS Debugging support
Установка
Необходимо установить пакет sys-fs/xfsprogs для пользовательских утилит XFS:
root #
emerge --ask sys-fs/xfsprogs
Использование
Mount
Монтирование файловой системы XFS выполняется командой mount.
XFS поддерживает discards для твердотельных накопителей в /etc/fstab.
Creation
Создание файловой системы XFS выполняется с помощью mkfs.xfs из xfsprogs:
root #
mkfs.xfs -L 'label'
Метка не является обязательной. Дальнейшая настройка при создании может быть интересна для использования в качестве RAID, многотерабайтных дисков и ведения журнала для жесткого диска на отдельном твердотельном накопителе.
Filesystem information
xfs_spaceman can be used to display information about the space available and to run a report on the health of a filesystem.
root #
xfs_spaceman -c info /path/to/mountpoint
Changing parameters
It is not possible to change the parameters of a mounted filesystem
The parameters of an XFS filesystem can be changed using xfs_admin. For the full list of options, view the manpage: xfs_admin(8)
root #
xfs_admin -L 'label' /dev/sda1
Expanding a filesystem
The filesystem must be mounted to be grown
To grow an XFS filesystem to N amount, use xfs_growfs.
root #
xfs_growfs -D N /path/to/mountpoint
Using the
-d
argument results in it being expanded to the max sizeFreezing
To suspend access to a filesystem, use the xfs_freeze command.
root #
xfs_freeze -f /path/to/mountpoint
Utilities
Utility | Description[1] | Man page |
---|---|---|
fsck.xfs | Checks a filesystem for corruption | fsck.xfs(8) |
mkfs.xfs | Creates a new filesystem | mkfs.xfs(8) |
xfs_admin | Changes the parameters of a filesystem | xfs_admin(8) |
xfs_bmap | Prints block mapping for an XFS file | xfs_bmap(8) |
xfs_copy | Copies contents of a filesystem to one or more targets in parallel | xfs_copy(8) |
xfs_estimate | Estimate the amount of space a directory would consume if it were copied to an XFS filesystem | xfs_estimate(8) |
xfs_db | Used to debug an XFS filesystem | xfs_db(8) |
xfs_freeze | Suspends access to a filesystem | xfs_freeze(8) |
xfs_fsr | Improves organization of mounted filesystems, compacting or improving the layout of extents | xfs_fsr(8) |
xfs_growfs | Increases a filesystem's size | xfs_growfs(8) |
xfs_info | Equivalent to invoking xfs_growfs but does not change any aspects about the filesystem | xfs_info(8) |
xfs_io | Used for debugging, like xfs_db but for regular file paths than raw volumes | xfs_io(8) |
xfs_logprint | Prints the log of an XFS filesystem | xfs_logprint(8) |
xfs_mdrestore | Restores an XFS metadump image to a filesystem image | xfs_mdrestore(8) |
xfs_metadump | Copies filesystem metadata to a file | xfs_metadump(8) |
xfs_mkfile | Creates an XFS file (padded by zeroes by default) | xfs_mkfile(8) |
xfs_ncheck | Generates pathnames from inode numbers | xfs_ncheck(8) |
xfs_quota | Used for reporting and editing different aspects of filesystem quotas | xfs_quota(8) |
xfs_repair | Repairs corrupted or damaged XFS filesystems | xfs_repair(8) |
xfs_rtcp | Copies a file to a real-time partition | xfs_rtcp(8) |
xfs_scrub | Checks and repairs contents of a mounted filesystem | xfs_scrub(8) |
xfs_scrub_all | Scrubs all mounted XFS filesystems | xfs_scrub_all(8) |
xfs_spaceman | Reports and controls free space usage | xfs_spaceman(8) |
Техобслуживание
Поддержка временных меток больше 2038 года (bigtime)
Старые разделы (созданные до xfsprogs-5.15) не имеют включённого по умолчанию флага bigtime. Монтирование подобных разделов приводит к следующим предупреждениям:
root #
dmesg
... [ 4.036258] xfs filesystem being mounted at /home supports timestamps until 2038 (0x7fffffff) ...
Чтобы проверить текущую версию xfsprogs, запустите mkfs.xfs -V. На своевременно обновляемых системах Gentoo этого не нужно делать, но при использовании установочных носителей других дистрибутивов с устаревшими утилитами это необходимо проверять.
Код поддержки bigtime был включен по умолчанию в xfsprogs 5.15, так что ручное включение для новых версий больше не обязательно.
Начиная с ядра 5.10, XFS получила поддержку bigtime
для увеличения максимального значения временных меток с 2038 до 2486 года для дискового формата V5[2].
Чтобы включить bigtime
для уже созданной старой ФС, сначала корректно её отмонтируйте. Обновление не запустится, если размонтирование прошло некорректно.
Затем выполните:
root #
xfs_admin -O bigtime=1 /dev/sda1
Замените /dev/sda1 именем устройства.
При использовании XFS на корневом разделе необходим initramfs или иное окружение с нужными утилитами для обновления метаданных.
Использование Dracut initramfs для проведения обновления
Во-первых, для Dracut необходимы дополнительные файлы, включаемые в initramfs для выполнения обновления. Этого можно добиться, либо используя параметр --install
, либо указав в конфигурационном файле параметр install_items
.
root #
dracut --install "/usr/sbin/xfs_admin /usr/bin/expr" ...
Теперь в параметры загрузки ядра можно добавить параметр rd.break=pre-mount
, чтобы остановить загрузку initramfs прямо перед тем, как смонтировать корневую файловую систему. Этот параметр должен быть временным, и после обновления его следует удалить для последующих корректных перезапусков.
Удаление
Для удаления при следующем запуске:
root #
emerge --ask --depclean --verbose sys-fs/xfsprogs
Смотрите также
- Deduplication — uses the clone mechanism of a copy-on-write or CoW capable filesystem, a feature that allows to share data of copied but identical files
- FAT — файловая система, использовавшаяся в MS-DOS (и последующих версиях Microsoft Windows до NT).
- Ext4 — дисковая файловая система с открытым исходным кодом, и самая последняя версия серии «расширенных файловых систем».
- Btrfs — copy-on-write (CoW, копирование при записи) файловая система для Linux, предназначенная для реализации расширенных возможностей, в то же время уделяя особое внимание отказоустойчивости, самовосстановлению и простоте администрирования.