XFS

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page XFS and the translation is 46% complete.
Outdated translations are marked like this.

XFS — это высокопроизводительная журналируемая файловая система. Она поддерживает ACL (POSIX) при работе в Linux.

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

Установка

Ядро

ЯДРО Включение поддержки XFS (CONFIG_XFS_FS:)
File systems  --->
   <*> XFS filesystem support

Необязательно:

ЯДРО Включение необязательных возможностей XFS
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 size

Freezing

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, предназначенная для реализации расширенных возможностей, в то же время уделяя особое внимание отказоустойчивости, самовосстановлению и простоте администрирования.

Ссылки