Проблема
После отмены создания резервной копии в платформе остался файл снимка (снапшота) виртуальной машины (ВМ), который не был автоматически удалён. Наличие этого файла блокирует создание новых снимков системой резервного копирования. Возникает ошибка:
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-томе. При этом он может быть активным или не использоваться ВМ — в зависимости от момента прерывания бэкапа.
Диагностика
Чтобы проверить состояние снимка ВМ:
- Подключитесь к узлу кластера по SSH. Подробнее о подключении по SSH см. в статье Настройка рабочего места.
- Получите список всех ВМ и найдите внутреннее имя целевой ВМ:
virsh list --allПример вывода460 5450_testtest runningПояснения:
5450_testtest— внутреннее имя ВМ.
- Определите название целевого диска и проверьте, используется ли снимок:
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).
Чтобы решить проблему:
- Подключитесь к узлу кластера по SSH. Подробнее о подключении по SSH см. в статье Настройка рабочего места.
- Только для активного снимка (есть суффикс
_snapshot):- Выполните слияние снимка с активным диском:
Пояснения:virsh blockcommit '5450_testtest' vda --active --verbose --pivot5450_testtest— имя целевой ВМ;vda— название диска. Получено в п.3 раздела Диагностика.
- Проверьте результат слияния:
virsh domblklist '5450_testtest'Ожидаемый результат: вывод показывает файл без суффикса _
snapshot.Пример выводаTarget Source ------------------------------------------------ vda /vm/5450_testtest
- Выполните слияние снимка с активным диском:
- Для обоих вариантов. Удалите файл снимка:
- для обычного файла:
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— имя тома снимка.
- для обычного файла:
Связанные статьи: