Восстановить удаленный образ работающей виртуальной машины KVM

vid/ 26 февраля, 2020/ Шпаргалки сисадмина

Случаи в жизни бывают разные, вот и у я удаляя тестовые образы виртуалок, удалил работаюший образ KVM.

Виртуалка при этом продолжала работать, а следовательно есть шанс хоть, что-то восстановить. Был найден и успешно применен следующий алгоритм действий:

1. Приостанавливаем работу виртуальной машины, полностью выключать нельзя.

virsh suspend test1 , где test1 имя виртуальной машины

2. Смотрим какие процессы связаны с удаленным образом нашей виртуальной машины

lsof|grep /media/data/kvm/images/test1.img, где /media/data/kvm/images/test1.img — полный путь до удаленного файла образа виртуальной машины.

получаем следующий вывод:

qemu-kvm   6233                  root   13u      REG              253,2 536953094144 1122412394 /media/data/kvm/images/test1.img (deleted)
qemu-kvm   6233 6260           root   13u      REG              253,2 536953094144 1122412394 /media/data/kvm/images/test1.img (deleted)
CPU        6233  6262           root   13u      REG              253,2 536953094144 1122412394 /media/data/kvm/images/test1.img (deleted)
CPU        6233  6263           root   13u      REG              253,2 536953094144 1122412394 /media/data/kvm/images/test1.img (deleted)
……..

В этом выводе нас интересуют вторая и пятая колонки, т.е 6233 и 13u.

3. Осталось теперь сохранить образ.

а. Если место на диске достаточно даем команду

cp /proc/6233/fd/13 /media/data/kvm/images/test1.img

б. Если пространства на диске не хватает можно скопировать образ на другой сервер

scp /proc/6233/fd/13 root@server2:/media/backup/test1.img

в. Ели нет в сети серверов с достаточным дисковым пространством можно смонтировать внешний жесткий диск и сохранить образ на него.

в.1 создаем каталог для монтирования внешнего hdd

mkdir /media/hddback

в.2 смотрим как определился в системе подключенный по usb внешний жесткий диск

fdisk -l Например он определился как sdh1

в.3 Монтируем внешний hdd

mount /dev/sdh1 /media/hddback

в.4 копируем образ на внешний hdd

cp /proc/6233/fd/13 /media/hddback/test1.img

4. Останавливаем виртуальную машину

virsh shutdown test1

5. Если нужно копируем сохраненный образ на его старое место

cp /media/hddback/test1.img /media/data/kvm/images

или

scp root@server2:/media/backup/test1.img /media/data/kvm/images

6. Запускаем виртуальную машину

virsh start test1

Поделиться этой записью