Differences

This shows you the differences between two versions of the page.


Previous revision
proxmox:snapshot_rollback_failed [2019/02/11 09:13] (current) – external edit 127.0.0.1
Line 1: Line 1:
 +====== Проблема ======
 +На хосте **Proxmox 5.2.1** есть виртуальная машина **Windows Server 2016**. Диск машины единственный, в формате **qcow2**. \\
 +На виртуалке установлен **Qemu Agent**, разрешен **Memory Balooning**. \\
 +После того, как был был сделан **snapshot** с галочкой **Include Memory**, виртуалка ушла в **BSOD** с источником проблем - **MEMORY MANAGEMENT**. \\
 +В результате - невозможно загрузиться.
 +**Rollback** выполнить невозможно - **proxmox**  сообщает:
 +  qemu-img: Could not open '/mnt/data/images/102/vm-102-disk-1.qcow2': qcow2: Image is corrupt; cannot be opened read/write
 +  TASK ERROR: command '/usr/bin/qemu-img snapshot -a before_xendesktop_update /mnt/data/images/102/vm-102-disk-1.qcow2' failed: exit code 1
 +Также машина отказывется запускаться:
 +  kvm: -drive file=/mnt/data/images/102/vm-102-disk-1.qcow2,if=none,id=drive-virtio0,cache=writeback,format=qcow2,aio=threads,detect-zeroes=on: qcow2: Image is corrupt; cannot be opened read/write
 +  TASK ERROR: start failed: command '/usr/bin/kvm -id 102 -name .......' failed: exit code 1
 +Откатиться на более ранние снепшоты тоже не получается. \\
 +**ProxMox Storage**, на котором лежит виртуальная машина, представляет собой раздел **BTRFS**. В директории с файлами виртуальной машины тоже что-то непонятное. Файл диска **vm-102-disk-1.qcow2** имеет размер **80 Tb**, при том, что общий размер хранилища ~2Tb. Проверка с помощью
 +  btrfs check --repair
 +проблем не выявила и размер файла не изменился. \\
 +
 +
 +
 +
 +====== Решение ======
 +Для того, чтобы восстановить доступ к диску, я смонтировал образ **qcow2** и скопировать его содержимое в формат **raw**.
 +  sudo modprobe nbd
 +  sudo qemu-nbd -r --connect=/dev/nbd0 /mnt/data/images/102/vm-102-disk-1.qcow2
 +  sudo apt-get install safecopy
 +  sudo safecopy --stage1 /dev/nbd0 /mnt/data/images/102/vm-102-disk-1.raw
 +  sudo qemu-nbd --disconnect /dev/nbd0
 +После этого, в конфигурации виртуальной машины я переписал путь к новому raw-диску. \\
 +Теперь система загружается в **Repair Mode**, однако системного диска не видно. \\
 +После того, как диск был отсоединен и присоединен как SATA, **Repair Mode** смог увидеть диск и выполнить **Repairing Disk Errors**. \\
 +Спустя примерно пару часов(!) ошибки на диске были исправлены и Windows ушел в перезагрузку, однако так как тип диска сменился - все закончилось **BSOD** - **INACCESSIBLE_BOOT_DEVICE**. \\
 +В итоге, повреждения на диске оказались критичными для винды и загрузиться она не могла с **BSOD** и ошибкой **0xc000021a**, однако, файлы с диска достать было можно. Попытки восстановления системы штатными средствами с помощью 
 +  sfc /scannow
 +не помогли. 
 +====== Вывод ======
 +Пользоваться механизмами снепшотов **qcow2** следует с оторожностью. Вероятно, во избежание подобных ситуаций, виртуальную машину следует выключать перед созданием снепшота.