Teknologi

Enkel virtualisering med KVM

2. september 2010 · Ingen Kommentarer

Mest som et notat for min egen del, men det kan være nyttig for andre også.

Jeg hadde nettopp behov for å sette opp et utvikler driftsmiljø for en PHP-applikasjon jeg skriver. Jeg ønsket ikke å sette den opp på arbeidsstasjonen min da jeg ikke ønsker å male meg opp i et hjørne dersom denne skal byttes ut eller oppgraderes. Det å sette opp et driftsmiljø er noe kjedelig dersom det må gjøres for ofte. Bestemte meg derfor å teste ut KVM.

KVM og QEMU er noenlunde like, på en måte, hvorav KVM er maskinvareakselerert virtualisering. QEMU støtter virtualisering av flere plattformer, dersom man har behov det.

Etter et par søk på Google fant jeg fram til artikkelen Using Linux KVM Virtualization on Ubuntu Gutsy Gibbon 7.10 som beskriver veldig enkelt en del kommandoer man kan kjøre.

Jeg lastet ned nyeste Ubuntu. Først forsøkte jeg amd64-versjonen, men denne fungerte ikke da jeg tydeligvis kjørte i686-versjon av Ubuntu på vertsmaskinen. Selv om CPU-en støtter 64bit så er det OS-et som må støtte 64 bit dersom du ønsker å kjøre 64-bit gjeste-OS i KVM. Så jeg endte opp med å laste ned i386-versjonen av Ubuntu Lucid.


$ qemu-img create lucid-server.img -f qcow2 10G
$ kvm -no-acpi -m 750 -cdrom $HOME/ubuntu-10.04.1-server-i386.iso -boot d  -k no -vnc :2 lucid-server.img

Legg merke til opsjonen “-vnc :2″ som gjør at KVM setter opp en VNC-server på port 5902. Dette gjorde jeg fordi jeg ikke ønsker at vinduet med den virtuelle serveren skal vises på vertsmaskinen, men jeg vil allikevel ha muligheten til å se skjermbildet. Dette er strengt tatt også nødvendig for å installere Ubuntu. :)

PS: Sånn helt på tampen… boota nettopp Ubuntu 10.04 i KVM på en 3 år gammel maskin… vips var loginskjermen der – rask! :D

OPPDATERING:
For å sette opp bridge-nettverk slik at den virtuelle maskinen kan motta IP-adresse fra DHCP, så må du konfigurere et bridge-grensesnitt på vertsmaskinen. På Ubuntu gjør du det ved å legge til følgende i /etc/network/interfaces:


auto br0
iface br0 inet dhcp
    bridge_ports    eth0
    bridge_stp      off
    bridge_maxwait  0
    bridge_fd       0

Du må reloade nettverksinnstillingene:

/etc/init.d/networking restart

Til kvm-kommandoen for å starte den virtuelle maskinen legger du til følgende opsjoner:


-net nic,vlan=0 -net tap,vlan=0,ifname=tun0