Резервная копия исходной виртуальной машины:

Резервная копия исходной виртуальной машины:

Мои устройства хранения данных смонтированы следующим образом:

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/md2        193G   35G  148G  19% /
/dev/md4        492G   73M  466G   1% /mnt

Мой образ KVM находится /kvm/vhdd/на разделе/dev/md2

ls -l /kvm/vhdd/wwe.img
-rw------- 1 libvirt-qemu kvm 163611607040 Mar  9 09:12 /kvm/vhdd/wwe.img

Мне нужно переместить этот раздел образа /dev/md4, т. е. каталог /mnt.

Как это сделать? Я могу остановить свою виртуальную машину. Но что мне делать после остановки? Мне просто сделать cp? Или мне нужно отредактировать конфиги? Я нашел

grep -R "/kvm" /etc/
/etc/libvirt/qemu.conf:#    "/dev/ptmx", "/dev/kvm", "/dev/kqemu",
/etc/libvirt/storage/autostart/iso.xml:    <path>/kvm/iso</path>
/etc/libvirt/storage/autostart/vhdd.xml:    <path>/kvm/vhdd</path>
/etc/libvirt/storage/iso.xml:    <path>/kvm/iso</path>
/etc/libvirt/storage/vhdd.xml:    <path>/kvm/vhdd</path>
/etc/libvirt/qemu/wwe.xml:    <emulator>/usr/bin/kvm-spice</emulator>
/etc/libvirt/qemu/wwe.xml:      <source file='/kvm/vhdd/wwe.img'/>
/etc/libvirt/qemu/autostart/wwe.xml:    <emulator>/usr/bin/kvm-spice</emulator>
/etc/libvirt/qemu/autostart/wwe.xml:      <source file='/kvm/vhdd/wwe.img'/>
/etc/default/libvirtd:# Start libvirtd to handle qemu/kvm:
/etc/default/qemu-kvm:# /run/hugepages/kvm
/etc/apparmor.d/libvirt/libvirt-68d2ecf6-4569-49cc-871f-042a42ad1c03.files:  "/kvm/vhdd/wwe.img" rwk,

Мне заменить этот путь /kvm/vhdd/в моих конфигах? Пожалуйста, помогите, я боюсь обрушить службу, спасибо.

решение1

Резервная копия исходной виртуальной машины:

  1. virsh закрытие wwe
  2. список virsh --все
  3. cp /etc/libvirt/qemu/wwe.xml /etc/libvirt/qemu/orig-wwe.xml
  4. cp /kvm/vhdd/wwe.img /kvm/vhdd/orig-wwe.img

Переместить образ виртуальной машины в раздел /mnt/kvm:

  1. mkdir /mnt/kvm

  2. mv /kvm/vhdd/wwe.img /mnt/kvm/wwe.img

  3. Редактировать XML-файл: vim /etc/libvirt/qemu/wwe.xml

    From: <source file='/kvm/vhdd/wwe.img'/>
    
    To: <source file='/mnt/kvm/wwe.img'/>
    
  4. virsh старт wwe

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



KVM — клонирование гостевых систем из доступного изображения:

1- создайте базовую виртуальную машину и установите ОС, выключите базовую виртуальную машину

virsh shutdown basevm

2- скопируйте его XML-файл в template.xml и скопируйте его изображение в template.qcow2

virsh dumpxml basevm > /etc/libvirt/qemu/template.xml
cp /home/kvm/images/basevm.qcow2 /home/kvm/images/template.qcow2

3- в template.xml укажите исходный файл на диске template.qcow2

<disk type='file' device='disk'>
  <driver name='qemu' type='qcow2' cache='none'/>
  <source file='/home/kvm/images/template.qcow2'/>
  <target dev='vda' bus='virtio'/>
  <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
</disk>

4- запустите virt-sysprep на template.qcow2. для сброса образа, например, для удаления ключей SSH, создания нового MAC-адреса, очистки файлов журналов и т. д.

virt-sysprep -a /home/kvm/images/template.qcow2

5- после этого момента базовая ВМ вам больше не нужна. Удалите ее, если не используете.

virsh undefine basevm
rm /home/kvm/images/basevm.qcow2

6- Клонирование новых виртуальных машин из шаблона: template.xml и template.qcow2

virt-clone --connect qemu:///system --original-xml /etc/libvirt/qemu/template.xml --name server --file /home/kvm/images/template.qcow2

KVM — перемещение гостя на другой хост:

1- После выполнения вышеуказанных шагов перенесите XML-файл и файл изображения на новый хост KVM:

scp /etc/libvirt/qemu/template.xml kvm02:/etc/libvirt/qemu/template.xml
scp /home/kvm/images/template.qcow2 kvm02:/home/kvm/images/template.qcow2

virt-sysprep -a /home/kvm/images/template.qcow2
virsh define /etc/libvirt/qemu/template.xml
virsh start vm

решение2

Если я правильно понял, вам нужно переместить /kvm/vhdd/wwe.img куда-нибудь в /mnt (скажем, /mnt/kvm/vhdd/wwe.img )?

Если так, то я бы:

  • остановите виртуальную машину (используя poweroff или другую команду в самой виртуальной машине), затем дождитесь состояния остановки в virt-manager (или virsh)

  • переместить файл изображения в новое место

  • изменить местоположение изображения в определении виртуальной машины:

  • либо с помощью графического интерфейса virt-manager (удалить жесткий диск в определении виртуальной машины и добавить его снова из нового места),

  • или с помощью virsh (предполагая, что имя виртуальной машины — «wwe»), например:

    ~# virsh dumpxml wwe > wwe.xml
    
    ~# sed "s[file='/kvm/vhdd/wwe.img'[file='/mnt/kvm/vhdd/wwe.img'[" wwe.xml > wwe_new.xml
    
    ~# diff wwe.xml wwe_new.xml
    

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

    ~# virsh undefine wwe
    
    ~# virsh define wwe_new.xml
    
  • перезапустите виртуальную машину.

решение3

В дополнение к тому, что уже было сказано, я бы рекомендовал использовать virsh editвместо редактирования xml-файла в /etc напрямую. Комментарии в этом файле говорят:

<!--
WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BE
OVERWRITTEN AND LOST. Changes to this xml configuration should be made using:
  virsh edit vmname
or other application using the libvirt API.
-->

Итак, фактическая процедура выглядит следующим образом:

  1. virsh shutdown <vmname>
  2. mv oldpath/image.qcow newpath/image.qcow
  3. virsh edit <vmname> Найдите тег tag <source file="...">и измените путь соответствующим образом.
  4. virsh start <vmname>

Связанный контент