Перейти к основному содержимому

ALIMUSAEV — IT и 1С

C:\> type \instructions\linux\perenesti-vm-v-kvm-na-drugoj-disk.md

Перенести ВМ в KVM на другой диск

НАЗНАЧЕНИЕ

Перенос виртуальных машин, развернутые в KVM, на другой диск.

ПРИМЕНЕНИЕ

Для освобождения текущего места на диске, так как при полном заполнении начинаются сбои в работе виртуальных машин. Или же для банального переноса на новый физический диск со старого деградирующего.

УСЛОВИЕ

  • Права администратора в KVM-сервере;
  • Наличие KVM+QEMU и необходимых для работы библиотек;
  • Удаленный доступ по ssh;
  • Наличие доступного места на другом диске;
  • Внерабочее время (все ВМ должны быть выключены!);
  • Наличие ИБП (на случай, если свет вырубят).

ШАГИ

Для примера: есть виртуальная машина с именем VM-Serv, образ виртуального жесткого диска disk.qcow2. Есть два диска: SSD по пути /mnt/ssd/kvm и HDD по пути /mnt/hdd. Нужно перенести на HDD.

  1. Подключиться к терминалу KVM по ssh:
ssh admin@192.168.x.x

где admin — имя админской учетки, а 192.168.x.x — ip-адрес сервера.

  1. Сначала узнать состояние виртуальной машины и ее имя:
sudo virsh list  --all
  1. Если виртуальная машина выключена, то пропустить пункт, иначе выполнить команду:
sudo virsh shutdown VM-Serv

или принудительно:

sudo virsh destroy VM-Serv

После проверить состояние машины и убедиться, что она выключена (пункт 2).

  1. Проверить объем допустимой памяти целевого диска (если это новый диск или том, то пропустить):
df -h /mnt/hdd
  1. Проверить наличие папки kvm (можно назвать иначе, но для ясности лучше так):
ls /mnt/hdd/kvm/

Если такой папки нет, то создать:

sudo mkdir /mnt/hdd/kvm
  1. Перенести образ на другой диск и дождаться ее завершения:
sudo mv /mnt/ssd/kvm/disk.qcow2 /mnt/hdd/kvm/

Чтобы увидеть процесс через каждые пять секунд, можно открыть второй терминал и подключиться так же (пункт 1), а затем выполнить команду:

watch -n 5 df -h /mnt/ssd /mnt/hdd
  1. После завершения переноса открыть редактор xml для ВМ:
sudo virsh edit VM-Serv
  1. Найти строку <source file=/mnt/ssd/kvm/disk.qcow2'/> и заменить каталог расположения ВМ. В данном случае, на <source file=/mnt/hdd/kvm/disk.qcow2'/>.

  2. Проверить, что ВМ запускается:

sudo virsh start VM-Serv

РЕЗУЛЬТАТ

После аккуратного плавного переноса место на прежнем диске освободится. ВМ перенесется без проблем и будет запускаться.