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