User Tools

Site Tools


informatica:linux:kvm

This is an old revision of the document!


KVM

virtualizacion

Instalar

1. Entrar en la BIOS del sistema y asegurarse de que el soporte de virtualización está activado

2. Instalar un sistema GNU/Linux reciente (yo pruebo con Debian 6.x=

3. Comprobar que el sistema operativo soporta virtualizacion:

sudo egrep '(vmx|svm)' --color=always /proc/cpuinfo

En caso de que SI soporte virtualizacion veremos lo siguiente:

flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good aperfmperf pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm lahf_lm tpr_shadow vnmi flexpriority
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good aperfmperf pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm lahf_lm tpr_shadow vnmi flexpriority

Con la palabra 'vmx' o 'svm' en rojo

4. Instalar los siguientes paquetes:

sudo aptitude install qemu-kvm libvirt-bin virtinst

5. Anyadir el usuario X al grupo:

sudo adduser  USUARIO libvirt

6. Configurar red para que soporte bridge. *OJO* si nos equivocamos en este paso perderemos conectividad con el hipervisor, por lo que tiene sentido crear un guion para recuperar la conexion de red inicial y reiniciar el sistema, y llamarlo por ejemplo cada 10 minutos en cron.

6.1 Realizar copia de seguridad de la configuracion de red:

sudo cp /etc/network/interfaces /etc/network/interfaces.bak

6.2 Crear un nuevo archivo de configuracion:

sudo vim /etc/network/interfaces

Con el siguiente contenido:

auto lo
iface lo inet loopback

# The primary network interface
#allow-hotplug eth0
#iface eth0 inet dhcp
auto eth0
iface eth0 inet manual

auto br0
iface br0 inet static
        address 192.168.1.200
        network 192.168.1.0
        netmask 255.255.255.0
        broadcast 192.168.1.255
        gateway 192.168.1.1
        bridge_ports eth0
        bridge_fd 9
        bridge_hello 2
        bridge_maxage 12
        bridge_stp off
        dns-nameservers 192.168.1.1

6.3 Creo que es mas seguro reinicar el hipervisor que reiniciar la interfaz de red:

sudo shutdown -r now

Crear VM desde la linea de comando (probar)

Lanzar los comandos desde el hipervisor.

Debian estable desde red configurada con NAT, 512MB de RAM y 2 GB de disco duro:

virt-install \
-n vm1 \
-r 512 \
--vcpus=2 \
--os-variant=debiansqueeze \
--disk /var/lib/libvirt/images/vm1.img,size=2 \
--nographics \
--network user \
-l http://ftp.debian.org/debian/dists/squeeze/main/installer-amd64/ \
-x console=ttyS0,115200

Debian estable desde red configurada con bridge, 512MB de RAM y 2 GB de disco duro:

virt-install \
-n vm1 \
-r 512 \
--vcpus=2 \
--os-variant=debiansqueeze \
--disk /var/lib/libvirt/images/vm1.img,size=2 \
--nographics \
--bridge br0 \
-l http://ftp.debian.org/debian/dists/squeeze/main/installer-amd64/ \
-x console=ttyS0,115200

vmbuilder

http://www.howtoforge.com/virtualization-with-kvm-on-a-debian-squeeze-server

Administrar KVM (y VM) desde una GUI en el cliente

Escenario: NO quiero instalar las X en el hipervisor, y quiero administrar gráficamente el hipervisor y las máquinas virtuales desde otra máquina (cliente) con las X instaladas

1. (Hipervisor) Instalar los siguientes paquetes:

sudo aptitude update; sudo aptitude install netcat socat -R

2. (Hipervisor) Crear el siguiente archivo:

sudo vim /bin/netcatsocket

Con el siguiente contenido:

#!/bin/bash
socat - unix-client:$2

3. (Hipervisor) Darle permisos

sudo chmod +x /bin/netcatsocket

4. (Cliente) Instalar paquetes:

sudo aptitude update; sudo aptitude install virt-manager ssh-askpass -R

5. (Cliente) Conectarse al hipervisor:

virt-manager -c qemu+ssh://USUARIO@HIPERVISOR:PUERTO/system?netcat=netcatsocket

Comandos varios

* Listar todas las Maquinas Virtuales (VM):

virsh list --all
 Id    Name                           State
----------------------------------------------------
 -     name                           shut off

* Eliminar por completo una VM:

virsh undefine vm2
Domain vm2 has been undefined

Errores

* Cannot recv data: Host key verification failed. : Connection reset by peer

Sucede al lanzar:

virt-manager -c qemu+ssh://usuario@hipervisor/system

*Solucion*: iniciar una sesion SSH para almacenar las claves del hipervisor en el cliente:

ssh usuario@hipervisor
informatica/linux/kvm.1337025330.txt.gz · Last modified: 2015/04/13 20:19 (external edit)