XFS
XFS — это высокопроизводительная журналируемая файловая система . Она поддерживает ACL (POSIX) при работе в Linux.
XFS имеет репутацию надежной файловой системы, благодаря которой в ядре Linux был создан большой тестовый набор xfstests, используемый ныне для выявления регрессий в работе различных файловых систем.
Установка
Ядро
File systems --->
<*> XFS filesystem support Search for <code>CONFIG_XFS_FS</code> to find this item.
Необязательно:
File systems ---> <*> XFS filesystem support Search for <code>CONFIG_XFS_FS</code> to find this item. [*] XFS Quota support Search for <code>CONFIG_XFS_QUOTA</code> to find this item. [*] XFS POSIX ACL support Search for <code>CONFIG_XFS_POSIX_ACL</code> to find this item. [*] XFS Realtime subvolume support Search for <code>CONFIG_XFS_RT</code> to find this item. [ ] XFS Verbose Warnings [ ] XFS Debugging support [ ] XFS online metadata check support [ ] XFS online metadata check usage data collection [ ] XFS online metadata repair 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' /dev/sda1
Метка не является обязательной. Дальнейшая настройка при создании может быть интересна для использования в качестве 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
| Программа | Описание [1] | Страница man |
|---|---|---|
| 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, предназначенная для реализации расширенных возможностей, в то же время уделяя особое внимание отказоустойчивости, самовосстановлению и простоте администрирования.