Difference between revisions of "KVM"
(→Installatie Debian domU) |
(→= De xml van de virtuele machine install) |
||
Line 98: | Line 98: | ||
Retrieving file initrd.gz... | 13 MB 00:31 ... |
Retrieving file initrd.gz... | 13 MB 00:31 ... |
||
</pre> |
</pre> |
||
− | === De xml van de virtuele machine install == |
+ | === De xml van de virtuele machine install === |
<pre> |
<pre> |
||
Wed, 26 Jan 2011 08:56:34 DEBUG Generated install XML: |
Wed, 26 Jan 2011 08:56:34 DEBUG Generated install XML: |
Revision as of 15:05, 26 January 2011
Installatie fysieke host
Installeer een kale machine met ruimte voor:
- 8 Gb voor de fysieke machine, primary partition
- 2 Gb swap, eerste logical partition op de extended partition
- LVM op de tweede logical partition van de extended partition
Voor testuitvoer van het KVM gedeelte zie de uitvoer van tests na configuratiestappen in kvm test.
Prepareer LVM
Creeer het physical volume.
root@sauron:~# pvcreate /dev/sda6 Physical volume "/dev/sda6" successfully created
en maak vervolens de volume group aan.
root@sauron:~# vgcreate dev-kvm /dev/sda6
Debian
De installatie verloopt vanaf een USB-stick met een netinstall, installeer een kale machine van 4 Gb met een swap space van 2 Gb. De uitvoer van tests na configuratiestappen staat in kvm test . Voorbereiding virtuele machines:
Vervolgens als de machine draait:
udell-kvm:~# apt-get install kvm qemu lvm2 libvirt-bin virtinst bridge-utils virt-manager virt-clone virt-goodies virt-top
- http://wiki.debian.org/KVM
- http://www.howtoforge.com/virtualization-with-kvm-on-a-debian-lenny-server-p3
- http://www.punknix.com/virtualization_kvm
- http://packages.debian.org/nl/lenny/kvm
Ubuntu Server
De installatie verloopt via een .iso image van een CDRom, dus na de install is de volgende stap nodig voor zowel de host als de guests:
root@sauron:~# apt-get update && apt-get upgrade
De networkbridge voor KVM
auto lo iface lo inet loopback auto eth0 iface eth0 inet manual auto br0 iface br0 inet static address 10.68.71.4 netmask 255.255.255.224 gateway 10.68.71.1 bridge_ports eth0 bridge_fd 9 bridge_hello 2 bridge_maxage 12 bridge_stp off
udell-kvm:~# /etc/init.d/networking restart
Voeg toe aan /etc/modules
kvm kvm-intel
udell-kvm:~# modprobe kvm kvm-intel
Inspectie dom0
Inspecteer de dom0 met:
root@sauron:~# virt-top
Zie kvm test.
Installatie domU
Prepareer een logical volume
Maak een (voorbeeld) logical partition aan op de gecreeerde volume group
root@sauron:~# lvcreate -L 16G -n support dev-kvm
Zie kvm test voor testuitvoer.
Installatie console
De installatie verloopt middels vncviewer. Maak contact met de fysieke machine als de installatie op de fysieke machine is gestart. Let op: de -Y optie dient om grafisch weer te geven en het poortnummer is de poort waarop vnc voor de te installeren machines luistert.
martin@udell:~$ ssh -Y 192.168.1.201 Enter passphrase for key '/home/martin/.ssh/id_dsa': martin@sauron:~$ xvncviewer localhost:5901 VNC Viewer Free Edition 4.1.1 for X - built Apr 9 2010 18:41:55 Copyright (C) 2002-2005 RealVNC Ltd. See http://www.realvnc.com for information on VNC.
Er verschijnt een grafisch venster, dat dienst doet als console. De installatie gaat hiervandaan verder.
Installatie Debian domU
De installatie van een virtuele machine verloopt op de Debian manier via een netinstall. virt-install haalt alle code, inclusief de netboot van de debian repository, in geval van Webhuis via een apt-cacher proxy vanwege de installatie van meerdere machines.
- netinstall
- generatie xml van de virtuele machine install
- start van de install van de virtuele machine
- voortzetting van de installatie via een vnc-console
- generatie xml van de virtuele machine
- start van de virtuele machine
Eerst zoekt virt-install de netinstall:
root@dom0-123:~# virt-install --connect qemu:///system -n cfengine3 -r 256 --vcpus=2 --disk path=/dev/dev-kvm/cfengine3 \ -l http://ftp.nl.debian.org/debian/dists/squeeze/main/installer-amd64 os-type linux \ --os-variant debiansqueeze --accelerate --network=bridge:br1 --hvm --vnc --force --debug
De installatie met virt-install is vrij intelligent. Het draait om het vinden van de informatie om de installatie te starten. Na enige meldingen van de software die zijn weg zoekt in het archief vindt virt-install de voor de installatie belangrijke bestanden, het is zelfs een netinstall:
Wed, 26 Jan 2011 08:55:50 DEBUG Fetching URI: http://ftp.nl.debian.org/debian/dists/squeeze/main/installer-amd64/current/images/MANIFEST Wed, 26 Jan 2011 08:55:50 DEBUG Saved file to /var/lib/libvirt/boot/virtinst-MANIFEST.gBEjKl Retrieving file MANIFEST... | 3.3 kB 00:00 ... Wed, 26 Jan 2011 08:55:50 DEBUG Detected a Debian distro Wed, 26 Jan 2011 08:55:50 DEBUG Fetching URI: http://ftp.nl.debian.org/debian/dists/squeeze/main/installer-amd64/current/images/netboot/debian-installer/amd64/linux Wed, 26 Jan 2011 08:56:02 DEBUG Saved file to /var/lib/libvirt/boot/virtinst-linux.aW2jsK=======================- ] 176 kB/s | 2.2 MB 00:00 ETA Retrieving file linux... | 4.6 MB 00:11 ... Wed, 26 Jan 2011 08:56:02 DEBUG Fetching URI: http://ftp.nl.debian.org/debian/dists/squeeze/main/installer-amd64/current/images/netboot/debian-installer/amd64/initrd.gz Wed, 26 Jan 2011 08:56:34 DEBUG Saved file to /var/lib/libvirt/boot/virtinst-initrd.gz.724oyj=====================-] 210 kB/s | 6.4 MB 00:00 ETA Retrieving file initrd.gz... | 13 MB 00:31 ...
De xml van de virtuele machine install
Wed, 26 Jan 2011 08:56:34 DEBUG Generated install XML: <domain type='kvm'> <name>cfengine3</name> <currentMemory>262144</currentMemory> <memory>262144</memory> <uuid>8c6c8c04-de68-eab9-fe18-e77b4b69b543</uuid> <os> <type arch='x86_64'>hvm</type> <kernel>/var/lib/libvirt/boot/virtinst-linux.aW2jsK</kernel> <initrd>/var/lib/libvirt/boot/virtinst-initrd.gz.724oyj</initrd> <cmdline>method=http://ftp.nl.debian.org/debian/dists/squeeze/main/installer-amd64</cmdline> </os> <features> <acpi/><apic/><pae/> </features> <clock offset="utc"/> <on_poweroff>destroy</on_poweroff> <on_reboot>destroy</on_reboot> <on_crash>destroy</on_crash> <vcpu>2</vcpu> <devices> <emulator>/usr/bin/kvm</emulator> <disk type='block' device='disk'> <driver name='qemu'/> <source dev='/dev/dev-kvm/cfengine3'/> <target dev='vda' bus='virtio'/> </disk> <interface type='bridge'> <source bridge='br1'/> <mac address='52:54:00:48:30:e6'/> <model type='virtio'/> </interface> <input type='tablet' bus='usb'/> <graphics type='vnc' port='-1' keymap='en-us'/> <console type='pty'/> <video> <model type='cirrus'/> </video> </devices> </domain>
=== De xml van de virtuele machine Creating domain... | 0 B 00:00 Wed, 26 Jan 2011 08:56:34 DEBUG Started guest, looking to see if it is running Wed, 26 Jan 2011 08:56:34 DEBUG Launching console callback Wed, 26 Jan 2011 08:56:34 DEBUG Generated boot XML: <domain type='kvm'>
<name>cfengine3</name> <currentMemory>262144</currentMemory> <memory>262144</memory> <uuid>8c6549c04-de48-e5b9-fe12-e7596869b543</uuid> <os> <type arch='x86_64'>hvm</type> <boot dev='hd'/> </os> <features> <acpi/><apic/><pae/> </features> <clock offset="utc"/> <on_poweroff>destroy</on_poweroff> <on_reboot>restart</on_reboot> <on_crash>restart</on_crash> <vcpu>2</vcpu> <devices> <emulator>/usr/bin/kvm</emulator> <disk type='block' device='disk'> <driver name='qemu'/> <source dev='/dev/dev-kvm/cfengine3'/> <target dev='vda' bus='virtio'/> </disk> <interface type='bridge'> <source bridge='br1'/> <mac address='52:54:00:23:40:6e'/> <model type='virtio'/> </interface> <input type='tablet' bus='usb'/> <graphics type='vnc' port='-1' keymap='en-us'/> <console type='pty'/> <video> <model type='cirrus'/> </video> </devices>
</domain>
De installatie is gestart en virt-install heeft de melding het console niet te kunnen openen. virt-install geeft aan dat de rest van de installatie via een console.
Cannot open display: Run 'virt-viewer --help' to see a full list of available command line options Wed, 26 Jan 2011 08:56:35 DEBUG Removing /var/lib/libvirt/boot/virtinst-linux.aW2jsK Wed, 26 Jan 2011 08:56:35 DEBUG Removing /var/lib/libvirt/boot/virtinst-initrd.gz.724oyj Wed, 26 Jan 2011 08:56:37 DEBUG Domain state after install: 1 Domain installation still in progress. You can reconnect to the console to complete the installation process. root@dom0-148:~#
Openen van een console
Het openen van het console verloop via twee stappen.
- Met de grafische optie inloggen op de host
- vnc starten op de console
martin@dell:~$ ssh -Y 10.99.99.99 Enter passphrase for key '/home/martin/.ssh/key': Linux dom0-123 2.6.32-5-amd64 #1 SMP Wed Jan 12 03:40:32 UTC 2011 x86_64 Last login: Wed Jan 26 13:46:08 2011 from 10.68.71.149 martin@dom0-123:~$ xvnc4viewer localhost:5900
De vnc console is verre van ideaal, maar wel werkbaar en is tenslotte maar een enkele keer nodig. De machine funcitoneert pas na een handmatige start.
Installatie Ubuntu-server domU
De installatie van een virtuele Ubuntu-server domU verloopt middels een iso-image.
root@sauron:~# virt-install --connect qemu:///system -n test01 -r 128 --vcpus=2 --disk path=/dev/dev-kvm/support \ -c /var/lib/ubuntu-server-10.4.20100612.iso os-type linux --os-variant ubuntulucid --accelerate \ --network=bridge:br0 --hvm --vnc --force --debug
Het nadeel van deze methode is dat het noodzakelijk is om onmiddelijk nadat de host is opgebracht een uprade uit te voeren.
root@sauron:~# apt-get update && apt-get upgrade
console virtuele machine
Een console vanaf de dom0 op een virtuele machine vereist op elke host configuratie instellingen en een eenmalig herstart of start van de geconfigureerde console.
Maak in de virtuele machine het bestand /etc/init/ttyS0.conf aan en voorzie het van de volgende inhoud:
# ttyS0 - getty # # This service maintains a getty on ttyS0 from the point the system is # started until it is shut down again. start on stopped rc RUNLEVEL=[2345] stop on runlevel [!2345] respawn exec /sbin/getty -L 115200 ttyS0 xterm
Herstart de virtuele machine, of geef het volgende commando:
root@sauron:~# start ttyS0
Verbind daarna vanf de dom0 met:
root@sauron:~# virsh console <virtuele machine>
Geef nog een <enter> voor een login prompt als de virtuele console zonder login verschijnt.
Documentatie van Ubuntu: https://help.ubuntu.com/community/KVM/Access
Zie ook kvm test.
Weeggooien domU
Een domU verdwijnt met het commando:
root@sauron:~# virsh undefine <domU>
Cloneren domU
Het cloneren van een machine is op zich een eenvoudig proces, maar er is een voozorgsmaatregel noodzakelijk. Zet een hekje in het bestand /etc/udev/rules.d/70-persistent-net.rules voor de volgende regel:
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:16:36:5e:11:af", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
Let op, bij een reboot van de clone machine zet udev de regel er doorleuk weer achteraan. Start het cloneren met de opdracht:
root@sauron:~# virt-clone -o clone -n server-5 -m 52:54:00:54:1c:b4 --auto-clone -f /dev/dev-kvm/server-5
Via vncviewer is het ip adres te achterhalen en is de login op dat adres mogelijk.
Praktische toepassing virt-clone
- Maak voor LVM eerst het volume aan
- Specificeer het volume bij het clone commando
- Gebruik de --force optie bij herhaald genereren
- Denk erom de gewraakte netwerk regel uit de udev configuratie te halen na elke boot van de cloneer machine
Terug naar: Webhuis bouwstenen