@ Карта сайта News Автора!

Bog BOS: Файловая система XFS (Linux)

Последние изменения:
2024.11.22: sysadmin: systemd-journald (централизованное хранение)
2024.11.11: sysadmin: Linux: пространства имён
2024.11.06: sysadmin: настройка TCP/IP в Linux: виртуальный интерфейс и виртуальный мост
2024.10.25: sysadmin: Linux VFS, атрибуты, расширенные атрибуты, ACL

Последнее изменение файла: 2024.06.13
Скопировано с www.bog.pp.ru: 2024.11.23

Bog BOS: Файловая система XFS (Linux)

Журналируемая файловая система xfs позволяет использовать блочные устройства размером более 16ТБ (пакеты xfsprogs и xfsdump), первоначально была разработана для SGI IRIX, поддерживает расширенные атрибуты файлов, выделение места экстентами, эффективное распараллеливание за счёт разбиения области данных на независимые отсеки. Является файловой системой по умолчанию в RHEL 7. Поддержка отличных от Linux ОС брошена в xfsprogs 4.19. Не очень любит мелкие файлы. Предпочтительна при большом количестве потоков доступа. Форма файловой системы на диске имеет несколько версий, текущая - V5.

Архитектурные особенности

Создание (mkfs.xfs)

Ключи утилиты mkfs.xfs:

Параметры монтирования

Опции монтирования:

Файлы в /proc

Статистика и ручки управления:

Кстати, опыт показал, что xfs сбрасывает накопленные буфера с такой интенсивностью, что захлёбывается внешнее хранилише (RAID контроллер), поэтому рекомендуется обеспечить ранее начало сброса: 40000000 в /proc/sys/vm/dirty_bytes, 10000000 в /proc/sys/vm/dirty_background_bytes.

Проблема с излишней фрагментацией ("XFS: ... possible memory allocation deadlock") купируется сбросом буферов в slab ("echo 2 > /proc/sys/vm/drop_caches"). У меня это произошло с индексным фйалом MySQL при добавлении ключа (файл 40ГБ оказался разбит на 3 миллиона кусочков).

Утилиты (xfsprogs)

xfsprogs содержит программы создания и обслуживания файловых систем XFS. RHEL/CentOS 7 - версия 4.5. RHEL/Rocky Linux 8.9 - версия 5.0

xfs_info (скрипт для xfs_db).

xfs_admin (скрипт для xfs_db) позволяет изменить метку и UUID размонтированной фаловой системы.

xfs_check (скрипт для xfs_db) - проверка файловой системы, требуется размонтирование, требует 16 ГБ памяти (реально использовались 10 ГБ) для файловой системы в 7 TB (67%, 500 файлов); требует и реально использует 42 ГБ памяти для файловой системы в 20TB, быстр.

xfs_logprint - вывод и разбор журнала.

xfs_metadump (скрипт для xfs_db) - вывод метаданных в файл.

Определить уровень фрагментации файлов: "xfs_db -c frag -r блочное-устройство" (размонтирование не требуется, но иногда случается "Segmentation fault"; показывает долю "лишних" экстентов).

Определить уровень фрагментации свободного пространства: "xfs_db -c freesp -r блочное-устройство" (размонтирование не требуется).

Утилита дефрагментирования файла или файловой системы xfs_fsr (в качестве параметра можно указать файл или блочное устройство; по умолчанию - все файлы на всех файловых системах); не требует размонтирования. По очереди копирует все фрагментированные файлы в непрерывный кусок свободной области (если есть), затем меняет ссылку на файл. Отображённые в память (map) файлы не обрабатываются. Команда chattr утилиты xfs_io позволяет пометить файлы, которые не надо дефрагментировать (атрибут f). На каждом проходе обрабатывается 10% самых фрагментированных файлов (или просто самых больших?). Информация о следующем к обработке файле хранится в /var/tmp/.fsrlast_xfs, т.е. может продолжать прерванную работу. Лучше запускать почаще, т.к. дефрагментировать сильно "загаженную" файловую систему утилита неспособна - свободное место фрагментируется в пыль, после чего становится невозможно дефрагментировать большие файлы. Опции:

Утилита восстановления структуры файловой системы xfs_repair (после аварийного отключения компьютера требуется смонировать и размонтировать файловую систему перед вызовом xfs_repair; 1 ГБ ОП и 12 секунд на 7.5 ТБ и 500 файлов, быстра); ключи:

Утилиты xfsdump и xfsrestore могут помочь извлечь данные из файловой системы, которой не помогла xfs_repair (требуется монтирование).

Утилита xfs_growfs позволяет увеличить размер файловой системы без размонтирования (уменьшение размера файловой системы невозможно).

Прочее: xfs_bmap, xfs_freeze, xfs_io (манипуляция внутренними структурами и отладчик), xfs_mdrestore, xfs_mkfile, xfs_ncheck, xfs_quota.

Изменения (файл CHANGES)):

Примеры

Раздел под резервное копирование bacula поверх автономного дискового массива HP StorageWorks MSA P2000 G3 (FC)

Проверка деградации (чтение tarnull) после полутора лет эксплуатации под хранилище томов bacula (большие и очень большие файлы, XFS, LVM над LSI MegaRAID 9266-8i - 2 RAID-6 по 18 дисков, SAS 4TB, rdcache=NoRA, iopolicy=Direct):

Проверка деградации (чтение tarnull) после полутора лет эксплуатации под хранилище томов bacula (большие и очень большие файлы, XFS, LVM над LSI MegaRAID 9266-8i - 2 RAID-6 по 18 дисков, SAS 4TB, rdcache=RA, iopolicy=Cached):

Вывод: при восстановлении малым количеством потоков необходимо включать кеширование и предварительное чтение.

Ссылки

@ Карта сайта News Автора!

Bog BOS: Файловая система XFS (Linux)

Последние изменения:
2024.11.22: sysadmin: systemd-journald (централизованное хранение)
2024.11.11: sysadmin: Linux: пространства имён
2024.11.06: sysadmin: настройка TCP/IP в Linux: виртуальный интерфейс и виртуальный мост
2024.10.25: sysadmin: Linux VFS, атрибуты, расширенные атрибуты, ACL



Copyright © 1996-2024 Sergey E. Bogomolov; www.bog.pp.ru