
Mis dispositivos de almacenamiento están montados de la siguiente manera:
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/md2 193G 35G 148G 19% /
/dev/md4 492G 73M 466G 1% /mnt
Mi imagen KVM se encuentra /kvm/vhdd/
en la partición/dev/md2
ls -l /kvm/vhdd/wwe.img
-rw------- 1 libvirt-qemu kvm 163611607040 Mar 9 09:12 /kvm/vhdd/wwe.img
Necesito mover esta partición de imagen /dev/md4
, es decir, el directorio /mnt
.
¿Como hacer esto? Puedo detener mi máquina virtual. ¿Pero qué debo hacer después de parar? ¿Debería simplemente hacer cp
? ¿O debería editar las configuraciones? encontré
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,
¿Debo reemplazar esta ruta /kvm/vhdd/
en mis configuraciones? Por favor ayuda, tengo miedo de bloquear el servicio, gracias.
Respuesta1
Copia de seguridad de la máquina virtual original:
- virsh apaga la wwe
- lista virsh --todos
- cp /etc/libvirt/qemu/wwe.xml /etc/libvirt/qemu/orig-wwe.xml
- cp /kvm/vhdd/wwe.img /kvm/vhdd/orig-wwe.img
Mueva la imagen de VM a la partición /mnt/kvm:
mkdir /mnt/kvm
mv /kvm/vhdd/wwe.img /mnt/kvm/wwe.img
Editar archivo XML: vim /etc/libvirt/qemu/wwe.xml
From: <source file='/kvm/vhdd/wwe.img'/> To: <source file='/mnt/kvm/wwe.img'/>
virsh inicio wwe
Nota:Puede restaurar al estado original utilizando archivos originales en cualquier momento; sin embargo, a continuación se muestra una forma alternativa para clonar y mover VM en KVM Infra.
KVM - Clonar invitados de la imagen disponible:
1- cree una VM base e instale el sistema operativo, apague la VM base
virsh shutdown basevm
2- volcar su archivo XML en template.xml y copiar su imagen en template.qcow2
virsh dumpxml basevm > /etc/libvirt/qemu/template.xml
cp /home/kvm/images/basevm.qcow2 /home/kvm/images/template.qcow2
3- en template.xml apunte el archivo fuente del disco a 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- ejecute virt-sysprep en template.qcow2. para restablecer la imagen, por ejemplo, eliminará las claves SSH, creará una nueva dirección MAC, limpiará los archivos de registro, etc.
virt-sysprep -a /home/kvm/images/template.qcow2
5- después de este punto ya no necesitas la VM base. Elimínelo si no está en uso.
virsh undefine basevm
rm /home/kvm/images/basevm.qcow2
6- Clonación de nuevas VM desde Plantilla: template.xml y template.qcow2
virt-clone --connect qemu:///system --original-xml /etc/libvirt/qemu/template.xml --name server --file /home/kvm/images/template.qcow2
KVM - Mover invitado a otro host:
1- Después de los pasos anteriores, transfiera el archivo xml y de imagen al nuevo Host 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
Respuesta2
Si lo entiendo, ¿lo que necesita es mover /kvm/vhdd/wwe.img a algún lugar en /mnt (digamos /mnt/kvm/vhdd/wwe.img)?
Si es así yo haría:
detenga la máquina virtual (usando apagado u otro comando en la propia VM), luego espere el estado detenido en virt-manager (o virsh)
mover el archivo de imagen a una nueva ubicación
cambiar la ubicación de la imagen en la definición de VM:
ya sea usando la GUI de virt-manager (elimine el disco duro en la definición de VM y agréguelo nuevamente desde una nueva ubicación),
o con virsh (asumiendo que el nombre de la VM es 'wwe'), por ejemplo:
~# 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
(Mostrará solo el cambio de ubicación del archivo como diferencia)
~# virsh undefine wwe ~# virsh define wwe_new.xml
reinicie la máquina virtual.
Respuesta3
Además de lo que ya se ha dicho, recomendaría utilizar virsh edit
en lugar de editar el archivo xml directamente en /etc. Los comentarios en este archivo dicen:
<!--
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.
-->
Entonces el procedimiento real es así:
virsh shutdown <vmname>
mv oldpath/image.qcow newpath/image.qcow
virsh edit <vmname>
Busque la etiqueta<source file="...">
y cambie la ruta en consecuencia.virsh start <vmname>