Virtualizacion con QEMU y KVM
Descripción
Sistema de Virtualizacion libre
Prerequistos
Un GNU/Linux .. hemos probado y corrido Scientific Linux
Procedimiento
A. Instalación básica
B. Configuración
C. Webmin
Problemas
A. No tengo red
En algunos sistemas no se crea el dispositivo bridge para que se peguen las maquinas virtuales.
Entonces es necesrio configurar un br0 pegado de eth0 .. y listo
Configuraciones especiales y Trucos
A. Redimensionar un disco en caliente
- Apague
- Saque backup del disco .. (copielo)
- Agrandelo a ( por ejemplo 5G) con
dd bs=1 if=/dev/zero of=dominica.img seek=5G count=0
- reincie
- Y aqui puede, ya sea agrandar la particion o agregar otra
Referencia: http://marc-abramowitz.com/archives/2005/12/18/resizing-a-qemu-virtual-machine-partition-and-filesystem/
OJO .. si encima de este tiene LVM .. toca usar pvresize para agrandar el disco ..y ya ser reporga en vg .. y ya puede seguir estandar
B. Convierta imagenes de VMware y Vbox
Estos procesos convierten las imagenes en RAW .. que son usables
WMware: qemu-img convert -O raw BA-Calisto.vmdk Calisto.img
Virtualbox: VBoxManage clonehd –format RAW ubuntu.vdi ubuntu.img
Aunque la recomendacion es usar qcow
qemu-img convert -f raw ubuntu.img -O qcow2 ubuntu.qcow
pero pues da igual
https://www.dalemacartney.com/2013/01/05/converting-vmware-disk-images-to-use-in-kvm/
C. Migrar maquinas xml de un lado a otr
virsh -c qemu:///system define maquina.xml
D. Emulacion de arquitecturas de procesador especificas
QEMU/KVM tiene la posibilidad de emular distintas arquitecturas de procesador, la unica restriccion es que esta debe ser definida antes de instalar la maquina.
Liste las emulaciones que soporta su servidor de virtualizacion:
/usr/bin/kvm -cpu ?
Cree la nueva maquina virtual, como lo hace normalmente, pero no instale el sistema operativo, apaguela y modifique el archivo de configuracion.
virsh dumpxml testVM > /tmp/testVM.xml
Agregue al archivo testVM.xml despues de features el modelo de la cpu con los parametros que soporta (ver documentacion de libvirt):
<cpu match='exact'> <model>core2duo</model> <vendor>Intel</vendor> <topology sockets='1' cores='2' threads='1'/> <feature policy='disable' name='lahf_lm'/> </cpu>
Vuelva a definir el archivo de la maquina virtual:
virsh define /tmp/testVM.xml
Inicie la maquina e instale normalmente. La maquina instalada correra sobre un procesador core2duo.
NOTA: El cambiar la arquitectura del procesador hace que la maquina no sea facilmente migrable entre distintos hosts con procesadores fisicos diferentes.
E. Optimizacion para win7
https://pve.proxmox.com/wiki/Windows_7_guest_best_practices
F. MacOS con cpu ARM (Apple Silicon)
Problemas
Storage parameter error. Internal error storage pool is not active
Usando virt-manager para crear una nueva maquina virtual, en el paso de crear la imagen del disco, se obtiene ese error.
La forma de solucionarlo es arrancando el pool:
> virsh pool-start default
Si el pool es diferente al defecto, listelos todos y arranque el que necesite:
> virsh pool-list --all
error starting domain:timed out during operation: cannot acquire state change lock
Usando virt-manager para clonar una maquina virtual, despues de clonada la maquina original no inicia.
La forma de solucionarlo es reiniciar libvirtd. No interfiere con los procesos normales de virtualizacion, solo con el virt-manager.
killall -9 libvirtdrm /var/run/libvirtd.pid/etc/init.d/libvirt-bin restartReinicie virt-manager.
Referencias
- ftp://ftp.scientificlinux.org/linux/scientific/documents/tuv/6/Virtualization.html –
- http://libvirt.org/formatdomain.html#elementsCPU
- Comparaciones entre virtualizaciones
FIN
05-Julio-2012 J.C. Pineros C. v1.0 Error domain corregido
16-Mayo-2012 J.C. Pineros C. v1.0 Emulacion de CPU, referencia.
11-Abril-2012 J.C. Pineros C. v1.0 Agregado error pool de almacenamiento.
15-Marzo-2006 J.E.Gomez v1.0 Primera version
Advertencia
Este documento es privado y es de uso exclusivo de sus autores y de SKINA TECH. Cualquier uso sin una autorización escrita es contra la ley de derechos de autor y de propiedad intelectual, y será motivo de una acción legal.