KVM 79 under CentOS 5.2

Noen notater for installasjon av KVM 79 under CentOS 5.2. Litt mer detaljer enn jeg selv trenger, i tilfelle noen har lyst til å prøve.

Installasjon av CentOS 5.2:
Man trenger kun CD 1, så lenge man velger custom package selection og fjerner absolutt alle kryss. Legg /boot, / og swap på primary partisjoner, la det meste stå fritt for LVM. Systemklokka bør bruke UTC.

1) Etter endt installasjon, rediger /etc/fstab , sett noatime istedet for defaults på linjen for / partisjonen.

2) Kjør yum update og yum upgrade etter endt installasjon.

Installere KVM og klargjøre LVM:
3) Bruk fdisk for å opprette en tom partisjon, kan godt være primary (blir da /dev/sda4) hvis man ikke skal utvide RAIDet. Det vil si å kjøre fdisk /dev/sda , og trykke n, enter, enter, enter, w, enter.

4) Reboot maskinen for at /dev/sda4 skal dukke opp

5) Legg til pakkebrønn for KVM
cd /etc/yum.repos.d/
wget http://www.lfarkas.org/linux/packages/centos/lfarkas.repo

6) yum update (svar nei når du blir spurt om du vil oppdatere)
yum install kvm qemu bridge-utils

7) Klargjør fysisk volum pvcreate /dev/sda4

8) Opprett volum gruppe vgcreate /dev/lvmvirt /dev/sda4

9) Lag en plass for den virtuelle gjesten. f.eks.
lvcreate -L 20G -n centos_kvm /dev/lvmvirt

10) Last kvm driveren, modprobe kvm_intel (eller kvm_amd)

11) Jeg skal ikke diskutere ethernet bridging i detalj her, men en måte å gjøre det på er f.eks. å legge følgende i /etc/rc.local, og så reboote. Bytt ut de tre variablene i [] med det som er riktig for deg.

# moduler
modprobe bridge
modprobe tun
modprobe kvm_intel
# bridge
ifconfig eth0 down
ifconfig eth0 0.0.0.0 promisc up
brctl addbr br0
brctl addif br0 eth0
ifconfig br0 [din ip] netmask [din netmask] up
sleep 1
ifconfig eth0 0.0.0.0 promisc up
route add default gw [router ip] br0
ifconfig eth0 0.0.0.0

12) Legg følgende script i /etc/qemu-ifup, det brukes av Qemu når den virtuelle maskinen startes:
#!/bin/sh
echo "Bringing up $1 for bridged mode..."
/sbin/ifconfig $1 0.0.0.0 promisc up
echo "Adding $1 to br0..."
/usr/sbin/brctl addif br0 $1
sleep 2

13) chmod 700 /etc/qemu-ifup

14) Slå av iptables, chkconfig --del iptables

15) Reboot, sjekk konsollet dersom du opplever problemer med nettverk.

16) Start en virtuell maskin med følgende, forutsatt at CentOS 5.2 CDROMen står inne.
qemu-kvm -hda /dev/lvm/centos_kvm -cdrom /dev/cdrom -boot d -m 512 -vnc :3 -net tap -net nic,vlan=0,macaddr=00:16:3e:00:00:07 -daemonize

For å koble deg til installasjonen bruker du vncviewer [ip adresse til host] :3 , dette gir deg samme skjermbilde som ved en vanlig installasjon via konsoll. Bruk qemu-kvm --help for å lese hvordan du kan gjøre denne prosessen sikrere.

17) Gjør partisjoneringen så enkel som mulig. Jeg oppretter en primær partisjon /dev/hda1 for / , med ext3 og en swap partisjon på 1 Gb.

18) Husk å fjerne avhuking for alle pakkegrupper, samt velge Customize Now, for å slippe å bruke mer enn CD 1.

19) Etter installajon vil CDROMen spyttes ut og VNC vinduet vise, Fatal: No bootable device. Det er ok, fordi den fortsatt er satt til å boote CDROM, lukk VNC vinduet og kjør killall qemu-kvm.

20) Start maskinen på nytt med
qemu-kvm -hda /dev/lvm/centos_kvm -m 4096 -smp 4 -nographic -net tap -net nic,vlan=0,macaddr=00:16:3e:00:00:07 -daemonize

Legg merke til at dette gir den 4096 Mb RAM og 4 CPUer, juster etter behov. Hvis den ikke starter tilstrekkelig til at du kan SSHe inn kan du bytte ut -nographic med -vnc :3

21) Konsollet som man starter qemu-kvm fra har en lei tendens til å stoppe echo. Hvis du ikke lenger kan se hva du skriver kan du bare avslutte SSH sesjonen og logge inn på nytt. Jeg har sett en enkel løsning på dette, men husker den ikke i farta.

22) Når alt fungerer bra lagrer du oppstartskommandoen i et lite script som du kjører hver gang du skal ha opp den virtuelle maskinen.

Artikkelen vil muligens bli utvidet med installasjon av drivere for bedre block og net I/O. Kom tilbake hvis du er interessert i bedre ytelse ;)

  • Skriv ut artikkel
  • Abonner med RSS

Siste kommentarer