chuleta_kvm
Table of Contents
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
