Файловая система XFS, оптимизация и дефрагментация

Файловая система XFS показывает великолепную производительность при работе с большими файлами и изначально разрабатывалась для использования на дисках большого объема. Недостатком данной системы считалась недостаточная производительность на большом количестве мелких файлов. Однако последние патчи, сделанные разработчиками системы XFS, устраняют данный недостаток и поднимают скорость работы с мелкими файлами до уровня файловых систем ext4, ReiserFS.

Одно из преимуществ XFS – это наличие штатного дефрагментатора (чтобы там не говорили, а при копировании больших и огромных файлов дефрагментация может существенно снизить скорость).

Набор утилит для управления файловой системой XFS называется xfsprogs. Рассмотрим какие возможности по оптимизации дают эти утилиты.

Просмотр информации о расположении файла

Для хранения файлов XFS выделяет место в виде так называемых экстентов (Extent). Обычно при копировании файла на файловую систему он занимает один экстент. Но в случае когда файл модифицируется и увеличивается в размере, а пространство после файла уже занято, содержимое фала может быть помещено в несколько экстентов. Аналогично, когда при копировании большого файла нет достаточного по размеру экстента.

В зависимости от особенностей использования, файлы на XFS ней могут довольно значительно фрагментироваться.

Чтобы посмотреть карту экстентов в которых хранится файл, используется следующая команда:

xfs_bmap -v /media/video/football_cup_1993.avi

Она выводит примерно следующую информацию:

/media/video/football_cup_1993.avi:
 EXT: FILE-OFFSET         BLOCK-RANGE          AG AG-OFFSET                TOTAL
   0: [0..262015]:        18748384..19010399    0 (18748384..19010399)    262016
   1: [262016..524159]:   771769344..772031487  2 (253665088..253927231)  262144
   2: [524160..1048447]:  767587184..768111471  2 (249482928..250007215)  524288
   3: [1048448..2097023]: 738171688..739220263  2 (220067432..221116007) 1048576
   4: [2097024..4097231]: 880928368..882928575  3 (103771984..105772191) 2000208

Как видно файл /media/video/football_cup_1993.avi располагается в пяти экстентах.

Дефрагментация XFS

Для реорганизации расположения файлов (дефрагментации) используется команда xfs_fsr. Она может использоваться как для всего раздела, так и для отдельного файла. Для выполнения дефрагментации необходимо, чтобы на разделе было достаточно свободного места для копирования любого файла. По завершению операции каждый файл будет занимать один экстент.

Для дефрагментации всего раздела используется команда:

xfs_fsr -v /dev/<раздел>

Дефрагментация отдельного файла выполняется командой:

xfs_fsr -v <имя файла>

опция -v выводит дополнительную информацию.

Проверка степени фрагментации XFS

Информацию о фрагментации раздела можно получить командой:

xfs_db -r -c frag /dev/<раздел> 

Опция -r необходима для проверки раздела, который примонтирован и используется в данный момент. Опция -c frag нужна непосредственно для вывода информации о фрагментированности раздела.

Вывод примерно следующий:

actual 134826, ideal 130102, fragmentation factor 3,50%

Комментарии

Оставить комментарий

Ответ на Файловая система XFS, оптимизация и дефрагментация