База знаний VMmanager
Режим фокусировки

Ошибка создания резервной копии: external snapshot file for disk vda already exists

Проблема

После отмены создания резервной копии в платформе остался файл снимка (снапшота) виртуальной машины (ВМ), который не был автоматически удалён. Наличие этого файла блокирует создание новых снимков системой резервного копирования. Возникает ошибка:

Creating snapshot fail
unsupported configuration: external snapshot file for disk vda already exists and is not a block device: /vm/5450_testtest.5450_testtest_snapshot

Пояснения:

  • /vm/5450_testtest.5450_testtest_snapshot  — имя файла снимка.

Снимок занимает место на диске и может блокировать миграцию ВМ на другой узел кластера.

Причина

Автоматическое удаление снимка ВМ не произошло, потому что процесс создания резервной копии был прерван. В результате снимок остался в файловой системе или LVM-томе. При этом он может быть активным или не использоваться ВМ — в зависимости от момента прерывания бэкапа.

Диагностика

Чтобы проверить состояние снимка ВМ:

  1. Подключитесь к узлу кластера по SSH. Подробнее о подключении по SSH см. в статье Настройка рабочего места.
  2. Получите список всех ВМ и найдите внутреннее имя целевой ВМ:
    virsh list --all
    Пример вывода
    460   5450_testtest            running

    Пояснения:

    • 5450_testtest — внутреннее имя ВМ.
  3. Определите название целевого диска и проверьте, используется ли снимок:
    virsh domblklist '5450_testtest'
    Пример вывода
    Target    Source
    ------------------------------
    vda       /vm/5450_testtest.5450_testtest_snapshot

    Пояснения:

    • vda — название диска

    Если в столбце Source указан файл с суффиксом _snapshot, снимок активен (используется ВМ).

    Пример активного снимка
    vda    /vm/5450_testtest.5450_testtest_snapshot

    Если Source указывает на основной файл без суффикса _snapshot, снимок не активен (не используется ВМ).

    Пример неактивного снимка
    vda    /vm/5450_testtest

Решение

Требуется безопасно удалить снимок: без перезагрузки или потери изменений ВМ.

Вариант решения зависит от результата диагностики:

  • если снимок активен, удалите файл снимка ВМ после слияния с диском (пп. 2 — 3);
  • если снимок не используется ВМ, выполните только удаление файла снимка (п. 3).
Внимание!
Если удалить активный снимок без слияния, будут утеряны все изменения ВМ, сделанные после создания снимка. Перед выполнением инструкции создайте резервную копию текущих данных ВМ. Подробнее см. в статье Создание резервных копий вручную.

Чтобы решить проблему:

  1. Подключитесь к узлу кластера по SSH. Подробнее о подключении по SSH см. в статье Настройка рабочего места.
  2. Только для активного снимка (есть суффикс  _snapshot):
    1. Выполните слияние снимка с активным диском:
      virsh blockcommit '5450_testtest' vda --active --verbose --pivot
      Пояснения:
      • 5450_testtest — имя целевой ВМ;
      • vda — название диска. Получено в п.3 раздела Диагностика
    2. Проверьте результат слияния:
      virsh domblklist '5450_testtest'

      Ожидаемый результат: вывод показывает файл без суффикса _snapshot.

      Пример вывода
      Target     Source
      ------------------------------------------------
      vda        /vm/5450_testtest
  3. Для обоих вариантов. Удалите файл снимка:
    • для обычного файла:
      rm -f /vm/5450_testtest.5450_testtest_snapshot

      Пояснения:

      • 5450_testtest.5450_testtest_snapshot — имя файла снимка.
    • для LVM-тома (если в выводе domblklist присутствует запись вида: /dev/lvm0/<имя_ВМ>_snapshot):
      lvremove -f /dev/lvm0/vm137477_snapshot

       Пояснения:

      • vm137477_snapshot — имя тома снимка.
Может быть полезно