Site Tools


chuleta_kvm

KVM

Crear imagen

qemu-img create -f qcow2 image.img 10G

Get images info

qemu-img info /route/example.img

Convert image from qcow2 to raw

qemu-img convert -f qcow1 -O raw /var/lib/libvirt/images/kvm2.img /var/lib/libvirt/images/kvm2_new.img
qemu-img convert -f vpc -O qcow2

Snapshots

qemu-img create -f qcow2 -F qcow2 -b win10.qcow2 win10_UOC_DB.img

KVM con I/O iscsi paravirtualizado soporte trim optimizados ceros y teclado español

qemu-system-x86_64 -enable-kvm -m 4000  -device virtio-scsi-pci,id=scsi -device scsi-hd,drive=hd  -drive if=none,discard=on,detect-zeroes=on,file=debian.cow,id=hd -k es

KVM con I/O paravirtualizado y escritorio remoto spice

 kvm -m 512  -drive file=iso/linuxmint-14.1-mate-dvd-32bit.iso,if=virtio -net nic,model=virtio -net user -vga qxl -spice port=5900,addr=155.210.47.75,disable-ticketing

Screen + KVM

cd /mnt/datos/  && screen -S Nagios -d -m kvm  -curses nagios.img -redir tcp:11022::22 -redir tcp:11080::80 
cd /mnt/datos/  && screen -S XP -d -m kvm -m 350  -nographic -usbdevice tablet  xp.img -redir tcp:3389::3389

montar imagenes raw vmdk qcow

modprobe nbd max_part=16
qemu-nbd -c /dev/nbd0 cosa.vmdk
partprobe /dev/nbd0
mount /dev/nbd0p1 mnt

Si hay lvm

vgscan
vgchange -a y

Ubuntu + KVM + VNC

  • El arranque correcto con vnc requiere quitar de la linea boot la opción “splash”

KVM con BIOS uefi

kvm -bios /usr/share/ovmf/OVMF.fd -m 2G cosa.img

KVM con BIOS uefi nueva sintaxis

cp /usr/share/OVMF/OVMF_VARS.fd .
kvm  -drive if=pflash,format=raw,readonly=on,file=/usr/share/ovmf/OVMF.fd \
     -drive if=pflash,format=raw,file=OVMF_VARS.fd  # requiere copia editable de OVFM_VARS.fd

Modos de red

User Networking

Redirección de puertos
qemu-system-x86_64  -net nic,model=rtl8139 -net user,hostfwd=tcp::3389-:3389,hostfwd=tcp::1992-:1992

Cuando usar:

  • Un modo simple para que la máquina virtual tenga acceso al host, a internet y a recursos de la red local
  • No se va a necesitar acceder a la máquina virtual desde la red o desde otra máquina
  • You are ready to take a huge performance hit.
  • Warning: User networking does not support a number of networking features like ICMP. Certain applications (like ping) may not function properly.

Modo de uso

 kvm -net nic -net user /path/to/hda.img 

Private Virtual Bridge

Cuando usar:

  • Se quiere crear una red virtual entre dos máquinas virtuales

Public Bridge

Cuando usar:

  • Se quiere asignar una IP a la máquina virtual y se quiere que sea accesible desde la red.

¿Ejemplo?

etfiat@debian-brutal:~$ cat puentes
#puente y tap
brctl addbr br0
ifconfig br0 192.168.0.1 up
#apt-get install uml-utilities
tunctl -b -u  etfiat -t tap1
ifconfig tap1
#brctl addif br0 tap1
 
#nat
 
#permitimos redirección
echo 1 >  /proc/sys/net/ipv4/ip_forward
 
iptables -F
iptables -t nat -F
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 155.210.47.75
 
 
#maquina virtual
kvm -hda debian.img   -m 256 -net nic,macaddr=52:54:00:12:34:50,vlan=0 -net tap,vlan=0,ifname=tap1 # -nographic
 
 
 
#bajada de puente y tap
brctl delif br0 tap1
ifconfig br0 down
brctl delbr br0
tunctl -d tap1
 
 
etfiat@debian-brutal:~$ cat /etc/kvm/kvm-ifup
#!/bin/sh
 
switch=$(ip route ls | awk '/^default / { for(i=0;i<NF;i++) { if ($(i) == "dev") print $(i+1) }}')
switch=br0
/sbin/ifconfig $1 0.0.0.0 up
/usr/sbin/brctl addif ${switch} $1
exit 0
kvm -cdrom debian-8.3.0-amd64-netinst.iso  -net bridge -net nic,model=virtio -drive file=/dev/sdh,format=raw -m 2048

kvm -cdrom debian.iso  -net bridge -net nic,model=virtio -drive file=/dev/sdh,format=raw -m 2048

kvm -drive file=debian.img,if=virtio -drive file=debian.iso,if=virtio,media=cdrom 

kvm  -drive file=debian-8.3.0-amd64-netinst.iso,media=cdrom  -drive file=debian.img,if=virtio,format=raw -m 2048 -net bridge -net nic,model=virtio
# The loopback network interface
auto lo
iface lo inet loopback
 
 
allow-hotplug enp10s3f0
iface enp10s3f0 inet manual
 
auto br0
iface br0 inet static
   address 155.210.4.98
   netmask 255.255.255.240
   network 155.210.4.0
   broadcast 155.210.4.111
   gateway 155.210.4.110
   dns-nameservers 155.210.12.9 155.210.3.12
   dns-search unizar.es
 
   bridge_ports enp10s3f0
   bridge_stp off
   bridge_fd 0
   bridge_maxwait 0
 
 
auto br1  
iface br1 inet static
        address 10.148.97.254  
        broadcast 10.148.97.255  
        netmask 255.255.255.0
        network 10.148.97.0
        dns-nameservers 155.210.12.9 155.210.3.12
        dns-search unizar.es

Pasar dispositivo usb a la VM

sudo kvm -m 4000  -cdrom Descargas/Fedora-Games-Live-x86_64-33-1.2.iso -usb --device usb-host,vendorid=0x258a,productid=0x0027

Bridges en interfaces con vlan

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
vlan-raw-device eno1

#auto eno1.516
#iface eno1.516 inet static
#       address 10.0.4.207
#       netmask 255.255.255.0
#       gateway 10.0.4.254

auto eno1.516
iface eno1.516 inet manual

auto brblades
iface brblades inet static
        address 10.0.4.207
        netmask 255.255.255.0
        gateway 10.0.4.254

        bridge_ports eno1.516
        bridge_stp off
        bridge_fd 0
        bridgeç_maxwait 0



#auto eno1.1105
#iface eno1.1105 inet static
#       address 172.16.200.101
#       netmask 255.255.255.0

auto eno1.1105
iface eno1.1105 inet manual

auto brceph
        iface brceph inet static
        address 172.16.200.101
        netmask 255.255.255.0

        bridge_ports eno1.1105
        bridge_stp off
        bridge_fd 0
        bridge_maxwait 0


Bridged network sintaxis nueva


qemu-system-x86_64 -enable-kvm                                                           \
 -m 4096 frontal.img                                                                      \
 -device e1000,netdev=net0,mac=DE:AD:BE:EF:00:FA                                         \
 -netdev tap,id=net0,script=/etc/kvm/kvm-brblades-ifup,downscript=/etc/kvm/kvm-ifdown    \
 -device e1000,netdev=net1,mac=DE:AD:BE:EF:00:FB                                         \
 -netdev tap,id=net1,script=/etc/kvm/kvm-brceph-iup,downscript=/etc/kvm/kvm-ifdown       \



$ cat /etc/kvm/kvm-brceph-ifup  
#!/bin/sh 
# 
# Script called by kvm on tap interface creation 
# 
KVM_BR=`basename $0 -ifup | sed -e 's/^[^-]*-\?//'` 
KVM_BRIDGE=${KVM_BR:-$KVM_BRIDGE} 
echo "$0:" 
echo "Adding $1 to bridge interface $KVM_BRIDGE" 
brctl addif "$KVM_BRIDGE" "$1" 
ip link set "$1" up


$ cat /etc/kvm/kvm-ifdown  
#!/bin/sh 
# 
# Script called by kvm on tap interface deletion 
# 
KVM_BR=`basename $0 -ifdown|sed -e 's/^[^-]*-\?//'` 
KVM_BRIDGE=${KVM_BR:-$KVM_BRIDGE} 
echo "$0:" 
echo "Removing $1 from bridge $KVM_BRIDGE" 
ip link set "$1" down 
brctl delif "$KVM_BRIDGE" "$1"
chuleta_kvm.txt · Last modified: by etfiat