У меня есть несколько систем, использующих разделы glusterfs и xfs. Некоторые из этих систем являются хостами для виртуальных машин (с использованием libvirt и qcow2 для хранения).
Я заметил, что в некоторых случаях была существенная фрагментация, поэтому я запустил xfs_fsr для дефрагментации. Две из моих виртуальных машин довольно большие, и я получаю «недостаточно свободного места» при попытке дефрагментировать разделы, на которых они размещены.
Есть ли способ обойти это? Я не уверен, что понимаю параметр -f, это то, что мне следует использовать?
РЕДАКТИРОВАТЬ: Я взял связанный вопрос, который я задам в другом сообщении.
xfs_fsr
дефрагментирует файл копирование его в новое временное расположение и атомарно заменить новый (непрерывный) файл старым. Это, очевидно, означает, что это действительно требуется достаточно места для создания временной копии (то есть: по крайней мере, столько же свободного места, сколько и файл, который вы дефрагментируете).
Из xfs_fsr
страница руководства:
xfs_fsr улучшает структуру экстентов для каждого файла, копируя весь файл во временное расположение, а затем меняя экстенты данных целевого и временного файлов атомарным образом. Этот метод требует, чтобы на диске было достаточно свободного места для копирования любого файла и чтобы оно было менее фрагментировано, чем исходный файл. Это также требует, чтобы у владельца файла оставалось достаточно квоты на файловое пространство для копирования в системах с квотами. xfs_fsr генерирует предупреждающее сообщение, если места недостаточно для улучшения целевого файла.
это -f
опция позволяет указать расположение файла выполнения, который, в свою очередь, используется при восстановлении прерванного сеанса дефрагментации. Опять же, со страницы руководства:
-f leftoff
Используйте этот файл вместо /var/tmp/.fsrlast для чтения состояния, с которого начать, и в качестве файла для сохранения состояния, в котором реорганизация остановилась.