= Virtualisatie met SYN-3 = = Eenmalige host voorbereidingen = == Vereisten == * Zorg dat u minimaal SYN-3 versie 4.4.2 heeft * Zorg dat uw licentie de ''Virtualisation module'' heeft. * Zorg dat u hardware-virtualisatie ondersteuning heeft. Dit kunt u zo controleren: {{{ [Syn-3] root@server.nl ~# egrep '^flags.*(vmx|svm)' /proc/cpuinfo flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx rdtscp lm constant_tsc arch_perfmon pebs bts pni monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr sse4_1 sse4_2 popcnt lahf_lm ida flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx rdtscp lm constant_tsc arch_perfmon pebs bts pni monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr sse4_1 sse4_2 popcnt lahf_lm ida flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx rdtscp lm constant_tsc arch_perfmon pebs bts pni monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr sse4_1 sse4_2 popcnt lahf_lm ida flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx rdtscp lm constant_tsc arch_perfmon pebs bts pni monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr sse4_1 sse4_2 popcnt lahf_lm ida }}} Indien u geen output krijgt heeft u geen ondersteuning. * Controleer of u minimaal versie 3.3 heeft van de kvm kernel modules. Oudere versies geven problemen: {{{ [Syn-3] root@server.nl /sys/module/kvm# cat /sys/module/kvm/version kvm-kmod-3.3 }}} * SYN-3 ondersteund momenteel alleen 32-bits guests. * U kunt momenteel maximaal 2047Mb memory per guest toewijzen. == Storage pool definitie == Er moet eerst een storagepool gedefineerd worden, waarin de virtuele disk images opgeslagen kunnen worden. Een simpelle directory kan dienst doen als pool. We gebruiken hiervoor de speciaal bedoelde directory /home/system/kvm: {{{ [Syn-3] root@server ~# mkdir /home/system/kvm/ [Syn-3] root@server ~# virsh pool-define-as kvm dir --target /home/system/kvm/ Pool kvm defined [Syn-3] root@server ~# virsh pool-autostart kvm Pool kvm marked as autostarted [Syn-3] root@server ~# virsh pool-start kvm Pool kvm started }}} == Virtualisatie met bridging netwerk support == Hierbij worden guest systemen aan een netwerk kaart gekoppeld met behulp van een bridge. Dit betekend dat alle netwerk configuratie en firewalling de verantwoordelijkheid van de guest word. Op het host systeem hoeven we alleen eenmalig bridging te configuren. Vervolgens kunnen alle KVM's hier gebruik van maken. * Ga naar de SCC en verwijder alle IP adressen van de adapter die u wilt gebruiken. * Pas /etc/network/network.up als volgt aan en stel hier nu de zojuist verwijderde adressen in: {{{ modprobe tun brctl addbr kvmbr3 2>/dev/null ifconfig kvmbr3 up brctl addif kvmbr3 eth3 ifconfig kvmbr3:1 192.168.0.252 netmask 255.255.255.0 }}} * Let op: Dit is het IP adres waarop u de SYN-3 server wilt kunnen bereiken, dit IP heeft niks met de guest systemen te maken. * Vergeet niet om het script executable te maken. * Herstart het netwerk met /etc/rc.d/rc.inet1 == Meer info == * http://www.linux-kvm.org/page/Main_Page = Guest OS installatie = == Guest OS keuze == Het is mogelijk om meteen aan te geven welk guest OS u gaat installeren. Als u dit doet worden er meteen wat handige instellingen en optimisaties gedaan. Een lijst van mogelijke keuzes kunt u zo opvragen: {{{ [Syn-3] root@server ~# virt-install --os-variant list win7 : Microsoft Windows 7 vista : Microsoft Windows Vista winxp64 : Microsoft Windows XP (x86_64) winxp : Microsoft Windows XP win2k : Microsoft Windows 2000 win2k8 : Microsoft Windows Server 2008 win2k3 : Microsoft Windows Server 2003 openbsd4 : OpenBSD 4.x freebsd8 : FreeBSD 8.x freebsd7 : FreeBSD 7.x freebsd6 : FreeBSD 6.x solaris9 : Sun Solaris 9 solaris10 : Sun Solaris 10 opensolaris : Sun OpenSolaris netware6 : Novell Netware 6 netware5 : Novell Netware 5 netware4 : Novell Netware 4 msdos : MS-DOS generic : Generic debiansqueeze : Debian Squeeze debianlenny : Debian Lenny debianetch : Debian Etch fedora16 : Fedora 16 fedora15 : Fedora 15 fedora14 : Fedora 14 fedora13 : Fedora 13 fedora12 : Fedora 12 fedora11 : Fedora 11 fedora10 : Fedora 10 fedora9 : Fedora 9 fedora8 : Fedora 8 fedora7 : Fedora 7 fedora6 : Fedora Core 6 fedora5 : Fedora Core 5 mes5.1 : Mandriva Enterprise Server 5.1 and later mes5 : Mandriva Enterprise Server 5.0 mandriva2010 : Mandriva Linux 2010 and later mandriva2009 : Mandriva Linux 2009 and earlier rhel6 : Red Hat Enterprise Linux 6 rhel5.4 : Red Hat Enterprise Linux 5.4 or later rhel5 : Red Hat Enterprise Linux 5 rhel4 : Red Hat Enterprise Linux 4 rhel3 : Red Hat Enterprise Linux 3 rhel2.1 : Red Hat Enterprise Linux 2.1 sles11 : Suse Linux Enterprise Server 11 sles10 : Suse Linux Enterprise Server ubuntuoneiric : Ubuntu 11.10 (Oneiric Ocelot) ubuntunatty : Ubuntu 11.04 (Natty Narwhal) ubuntumaverick : Ubuntu 10.10 (Maverick Meerkat) ubuntulucid : Ubuntu 10.04 (Lucid Lynx) ubuntukarmic : Ubuntu 9.10 (Karmic Koala) ubuntujaunty : Ubuntu 9.04 (Jaunty Jackalope) ubuntuintrepid : Ubuntu 8.10 (Intrepid Ibex) ubuntuhardy : Ubuntu 8.04 LTS (Hardy Heron) virtio26 : Generic 2.6.25 or later kernel with virtio generic26 : Generic 2.6.x kernel generic24 : Generic 2.4.x kernel }}} == Nieuwe virtuele machine aanmaken == In dit voorbeeld gaan we een Windows 2003 server als guest installeren in kvm: {{{ [Syn-3] root@server ~# virt-install --connect qemu:///system --autostart --virt-type kvm --name windows1 --ram 2047 --disk path=/home/system/kvm/windows1.img,format=qcow2,size=40 --graphics vnc,listen=0.0.0.0,password=ditiseentest --cdrom /home/system/isos/2003R2.iso --os-variant win2k --network bridge=kvmbr3 --noautoconsole --vcpus 2 --cpu host Starting install... Allocating 'windows1.img' | 40 GB 00:00 Creating domain... | 0 B 00:04 Domain installation still in progress. Waiting for installation to complete. }}} * --name is de naam van de machine. (windows1) * --disk path= geeft aan waar u de virtuele disk wilt maken en hoe groot (40Gig) * password= stelt het vnc password in om naar de console van de machine te kunnen connecten * --os-variant geeft aan welk OS type u gaat installeren * --cdrom geeft het path aan naar de installatie iso-file * --vcpus geeft het aantal toe te wijzen CPUs aan. * --ram geeft de hoeveelheid geheugen aan. (max 2047Mb) virt-inst blijft nu wachten totdat u klaar bent met installeren. (na de eerste reboot) U dient nu zelf een connectie te maken om het guest OS daadwerkelijk te installeren. (zie hieronder) == Connectie met de machine maken == Zodra een machine gestart is kunt u via een vncclient een connectie maken met de console. De eerste machine draait op poort 5900. '''Vergeet poort 5900 open te zetten op uw SYN-3 machine, zodat u er vanaf de LAN bij kan.''' Gebruik het opgegeven password om te authenticeren. == Snapshot maken == In virsh kunt u een snapshot maken van de huidige situatie. Mocht er iets mis gaan bij het installeren van drivers of iets degelijks, dan kunt u altijd terug naar deze snapshot. {{{ [Syn-3] root@server /home/system/kvm# virsh Welcome to virsh, the virtualization interactive terminal. Type: 'help' for help with commands 'quit' to quit virsh # help snapshot-create-as NAME snapshot-create-as - Create a snapshot from a set of args SYNOPSIS snapshot-create-as [] [] [--print-xml] [--no-metadata] [--halt] [--disk-only] [--reuse-external] [--quiesce] [[--diskspec] ]... DESCRIPTION Create a snapshot (disk and RAM) from arguments OPTIONS [--domain] domain name, id or uuid [--name] name of snapshot [--description] description of snapshot --print-xml print XML document rather than create --no-metadata take snapshot but create no metadata --halt halt domain after snapshot is created --disk-only capture disk state but not vm state --reuse-external reuse any existing external files --quiesce quiesce guest's file systems [--diskspec] disk attributes: disk[,snapshot=type][,driver=type][,file=name] virsh # snapshot-create-as windows1 Domain snapshot 1336485395 created }}} Dit kan enige tijd duren! == IO performance verbeteren == Door speciale IO-drivers te installeren kan de performance van de guest aanzienelijk verbeterd worden. Voor Windows vind u deze drivers hier: http://www.linux-kvm.org/page/WindowsGuestDrivers/Download_Drivers Voor linux guests is het vaak voldoende om open-vm-tools via uw package manager te installeren. (zie http://open-vm-tools.sourceforge.net/) Een ISO file aankopelen als CDROM drive doet u in virsh als volgt: {{{ virsh # attach-disk windows1 /home/system/isos/virtio-win-0.1-22.iso hdc --type cdrom --mode readonly Disk attached successfully }}}