3 juni 2009 Willem-Geert Nijboer | [VIRTUALISATIE] 1 3 juni 2009 [VIRTUALISATIE] Geschiedenis Document eigenaar: Willem-Geert Nijboer Datum Revisie Editor Wijzigingen 03-06-2009 Versie 0.1 Willem-Geert Nijboer Eerste uitgave Willem-Geert Nijboer | 2 3 juni 2009 [VIRTUALISATIE] Inhoudsopsgave Willem-Geert Nijboer | 3 3 juni 2009 [VIRTUALISATIE] Voorwoord Tijdens mijn stage heb ik mij bezig gehouden met Kernel-Based Virtual Machine of ook KVM genoemd. Dankzij deze technologie is het mogelijk om te besparen op energie verbruik en Servers. Dit document bevat informatie over verschillende Open Source Virtualisatie technieken die ook in de Open Source community worden gebruikt maar het doel van dit document gaat echter over KVM. Dit document is gemaakt door Willem-Geert Nijboer te Groningen, student aan het Noorderpoort College. Willem-Geert Nijboer | 4 3 juni 2009 [VIRTUALISATIE] Verschillende soorten virtualisatie Hardware emulatie Dit is de meest complexe virtualisatie die door de hardware wordt geëmuleerd. In deze methode wordt er een hardwarematige Virtual Machine (VM) gemaakt op een Host Systeem om de hardware te emuleren. Helaas zit hier ook een nadeel aanvast, hardware emulatie kan extreem langzaam zijn. Dit komt omdat elke instructie die wordt uitgevoerd moet worden geemuleerd op de Host Systeem. Voor grote emulaties dat een Cycle Accuracy gebruikt moet een gesimuleerde CPU Pipelines en Cacheing, dit gedrag kan de echte snelheid nog vele malen trager worden dan dat het op een fysieke machine zou zijn. Full Virtualization Full Virtualization ook wel bekend als Native Virtualization en is een andere methode virtualisatie. Dit model maakt gebruik van een Virtual Machine dat hangt tussen de Gast Operating System en de Native Hardware. Bepaalde instructies zijn beschermd en moeten binnen de Hypervisor worden behandeld. Dit komt omdat de Operating System niet directe toegang heeft tot de Hardware. Hij communiceert namelijk via de Hypervisor en de Hardware wordt ook met de Hypervisor gedeeld. Willem-Geert Nijboer | 5 3 juni 2009 [VIRTUALISATIE] Full Virtualization is sneller dan Hardware Emulation maar de performance is uiteraard minder dan op een fysieke machine dit komt door de Hypervisor Mediation. Het grootste voordeel wat je uit Full Virtualization haalt is dat er een ongemodificeerd Operating System kan worden gedraaid. Het nadeel is dan wel weer dat de Operating System de hardware moet ondersteunen anders zal het echter niet werken. Paravirtualization Paravirtualization is een veel gebruikte techniek en is vrij populair. Toch heeft Paravirtualization veel weg van Full Virtualization, deze methode maakt gebruik van Hypervisor om gedeelde toegang te krijgen tot het onderliggende hardware maar integreert de Virtualation-aware code in de Operating System zelf. Door deze benadering ondervangt hij de behoefte om een Recompliation uit te voeren of te opsluiten zodat de werkende Systemen in de virtualisatie process gaan samenwerken. Paravirtualization vereist van de Operating System om gemodificieerd te zijn voor de Hypervisor. Wat uiteraard een nadeel is, maar Paravirtualizaiton biedt wel de Performance die het dichts bij een fysieke machine komt. Net zoals Full Virtualization is het ook mogelijk om met Paravirtualization meerdere Operating Systems te draaien. Willem-Geert Nijboer | 6 3 juni 2009 [VIRTUALISATIE] Operating System-Level Virtualization Operating System-Level Virtualization maakt gebruik van een andere techniek dan de vorige die hier boven staan beschreven. Deze techniek draait de virtualisatie boven op de Operating System zelf. Deze methode ondersteunt een Operating System vervolgens isoleert hij de Virtuale Machines. Operating System-Level Virtualization vereist dat er veranderdingen worden gedaan aan het System Kernel, maar dit heeft wel zijn voordeel zo heb je bij een Virtual Machine een Native Performance. Lijst Open Source Virtualisatie projecten Hieronder bevindt zich een lijst over de net genoemde technologieën welk product wat gebruikt. Uiteraard zijn alle producten geschikt voor Open Source gebruik. Project Bochs QEMU VMware z/VM Xen UML Linux-VServer OpenVZ Type Emulation Emulation Full Virtualization Full Virtualization Para Virtualization Para Virtualization Operating System Virtualization Operating System Virtualization License LGPL LGPL/GPL Propietary Propietary GPL GPL GPL GPL Hier onder volgt een beschrijving over de genoemde programmas. Willem-Geert Nijboer | 7 3 juni 2009 [VIRTUALISATIE] Bochs (Emulatie) Bochs is een x86 computer simulator, de images kunnen worden geëmigreerd en draait op verschillende platforms inclusief PowerPC, Alpha, Sparc en MIPS. Wat Bochs zo interessant maakt is dat deze programma niet alleen de Processor emuleert. Hij emuleert de hele systeem inclusief de rand apparatuur. Bochs kan worden geïnstalleerd en geconfigureerd op ouwe systemen die niet echt meer van deze tijd zijn, de Intel 386 Processor of zijn grote broer de 486, Pentium, Pentium Pro of een 64bit variant. Bochs kon ook grafische instructies emuleren zoals MMX of 3DNow. Bochs is makkelijke te gebruiken als Emulator en het draait op elke Linux distributie of op Windows. QEMU (Emulatie) QEMU is een andere Emulator net zoals Bochs, er zijn wel een aantal verschillen tussen deze twee emulators maar het is niet de moeite waard om deze te noemen. QEMU heeft ondersteuning van twee modus om te draaien. De eerste modus is de Full System Emulation Mode, deze modus komt vrijwel overeen met Bochs omdat het ook een complete systeem emuleert. Dankzij deze modus ondersteund het ook aantal processor architecturen zoals, x86, x86_64, ARM, SPARC, PowerPC en MIPS. Deze emulaties werden op redelijke snelheid gedaan dit is te danken aan de dynamische vertaling tussen het systeem en de hardware. Uiteraard is het mogelijk om een Windows of Linux Operating System te draaien in deze modus en zo zijn er nog een aantal meer. QEMU geeft ook ondersteuning aan de tweede modus, deze modus word de User Mode Emulation genoemd. Deze modus kan alleen gedraaid worden op een Linux machine, dit komt omdat een Binary die via een andere architectuur kan worden gestart. Dankzij deze Binary zou het mogelijk kunnen zijn om in Linux een MIPS architectuur te laten draaien. Zo zijn er natuurlijk ook andere architectuur onderstuurd zoals ARM, SPARC en PowerPC uiteraard is nog meer in ontwikkeling. Willem-Geert Nijboer | 8 3 juni 2009 [VIRTUALISATIE] VMware (Full Virtalization) VMware is een commerciële oplossing voor Full Virtualization. VMware werkt met een Hypervisor die tussen de Gast Operating System en Hardware zit als een abstractielaag. De abstractielaag zorgt ervoor dat elke Operating System op de Hardware draait zonder ervan te weten dat er meerdere machines zijn. VMware virtualiseert ook de beschikbare I/O hardware en zorgt ervoor dat de Hypervisor goed loopt. Het gehele virtuele omgeving wordt opgeslagen als een bestand, met de bedoeling dat een bestand snel kan worden geëmigreerd of over gekopieerd. z/VM (Full Virtualization) De z/VM is een Operating System Hypervisor voor System z dit is gemaakt door IBM. Bij de kern is er een Controleprogramma (CP), die zorgt voor de virtualisatie en dat de virtuele machine de middelen krijgt zodat het werkt. Dit geeft de toegang tot meerdere processoren en andere bronnen om te worden gevirtualiseerd. Z/VM kan ook een LAN virtualiseren dit is gedaan zodat Virtual Machines gewoon met elkaar kunnen communiseren. Dit wordt allemaal geemuleerd in de Hypervisor en is hoog beveiligd. Willem-Geert Nijboer | 9 3 juni 2009 [VIRTUALISATIE] Xen (Paravirtualization) Xen is een open source oplossing voor Operating system-level paravirtualization van XenSource. Dankzij de samenwerking tussen de Paravirtualization en de Hypervisor zal de Operating System bijna op Native Performance draaien. Xen vereist ook dat de Guest Operating System moet worden gemodificeerd, Operating Systems die al zijn gepatched kunnen dus per direct functioneren. Uiteraard uit de perspectief van Linux is het heel leuk want alles is Open Source en dit is opzich wel een leuke comprimie want het levert een betere Perfomance dan Full Virtualization. Dan komen we op het perspectief van Support en daar zit uiteraard het probleem in, dat is er haast niet. Het is mogelijk om Windows als een Guest in Xen te draaien maar het nadeel hieraan is dat alleen de Hardware het een klein beetje laat afweten, alleen Intel Vanderpool of AMD Pacifica werken ermee. De Operating Systems die Xen ondersteunen zijn als volgt: Minix, Plan 0, NetBSD, FreeBSD en Open Solaris. User-Mode Linux (Paravirtualization) User-Mode Linux(UML) geeft je toegang om naast een Linux Operating System nog een Linux Operating System te draaien in de User-Space. Elke Linux Guest Operating System bestaat in de processen van de Linux Host Operating System. Dit geeft de toegang dat je meerdere Linux Kernels kan draaien op 1 Linux Kernel. In Linux Kernel 2.6 zit nog steeds wel UML in de Main Kernel Tree, maar het moet wel worden aangevinkt, gerecompiled om te kunnen gebruiken. Dit zorgt ervoor dat de Virtual Machine de Harware deelt wat beschikbaar is. Willem-Geert Nijboer | 10 3 juni 2009 [VIRTUALISATIE] Linus-VServer (Operatin System-Level Virtualization) Linux-VServer is de oplossing voor operating System-Level Virtaulization. Linux-VServer virtualiseert de Linux Kernel zodat er meerdere User-Space omgevingen komen, deze omgevingen worden ook genoemd als Virtual Private Servers (VPS), deze VPS draaien afhankelijk van elkaar en weten niet date r meerdere Virtual Machines draaien. Dit isoleert de de User-Space van elkaar, je begint met een concept van de Context. In Linux-VServer is een Context een Container voor de processen die aan de VPS worden gegeven, dit is zodat een Tooltje als ps alleen weet van de Processen van VPS. Tijdens de Boot zal de Kernel een Default Context selecteren, zo zal er ook een Spectator Context draaien, hier in kan je zo kijken wel processen in de VPS worden gedraaid. Zoals je kan lezen de Kernel en het interne data structuur zijn gemodificeerd om Virtualization te ondersteunen. Linux-VServer maakt ook gebruik van de vorm Chroot om de Root Directory to isoleren van elke VPS. Chroot creeert een nieuwe Root Directory, dan wordt er een Chroot-Barrier uitgevoerd zodat de VPS in de Root Directory blijft, dit zorgt er voor dat elke Virtual Machine zijn eigen Root en User list heeft. Linux-VServer biedt ondersteuning met Linux Kernel 2.4 en 2.6 en functioneerde onder verschillende platformen zoals de x86, x86-64, SPARC, MIPS, ARM en PowerPC. OpenVZ (Operating System-Level Virtualization) OpenVZ is ook een Operating System-Level Virtualization oplossing, net zoals Linux-VServer maar OpenVZ heeft wat interessante verschillen tegen over Linux-VServer. OpenVZ is virtualization-aware Kernel day ondersteuning biedt aan geïsoleerde User-Spaces, VPS met een set gebruikers programma’s voor management. Het creëren van een VPS gaat makkelijk via de Command-Line. Alhier een kleine voorbeeld ervan. $ vzctl create 42 --ostemplate fedora-core-4 Creating VPS private area VPS private area was created $ vzctl start 42 Starting VPS ... VPS is mounted Willem-Geert Nijboer | 11 3 juni 2009 [VIRTUALISATIE] Zo is het ook mogelijk om de lijst van VPS op te roepen door in de Command-Line vzlist in te typen. Deze commando komt er veel overheen met het ps commando wat vaak wordt gebruikt. OpenVZ kan processen plannen dit is erg handig want OpenVZ heeft een level twee CPU planner. De eerste planning kijkt welke VPS de processor krijgt, nadat dat klaar is zal de 2e planner het process uitkiezen en uitvoeren. OpenVZ heeft ook Beancounters, een Beancounter bestaat uit een aantal parameters die de bronnen voor een VPS bepalen. Dit geeft toch een level van controle over de VPS want zo wordt er bepaald hoeveel geheugen de VPS mag hebben en wat uiteraard beschikbaar is. OpenVZ heeft ook nog een unieke functie zo kunnen er Checkpoints worden aangemaakt en kan het worden geemigreerd naar een andere server. Onder Checkpoint wordt verstaan dat de VPS op pauze kan wordne gezet en kan worden overgeplaatst en dan weer worden gerunned vanaf de nieuwe server. OpenVZ biedt ondersteuning aan de volgende platformen x86, x86-64 en PowerPC. Linux KVM Het meeste nieuwe nieuws is KVM dat uit het Linux kamp is gekomen. Het werkt pas vanaf Linux Kernel 2.6.20. KVM is ook een Full-Virtualization oplossing dat uniek is want het maakt van de Linux Kernel een Hypervisor die gebruikt maakt van een Kernel Module. Deze Module geeft toegang dat Guest Operating Systems te draaien in de User-Space van de Host Linux Kernel. De KVM Module in de Kernel stelt de gevirtualiseerde Hardware bloot in de map /dev/kvm en dan het apparaat naam. De Guest Operating-System heeft toegang tot the KVM Module door het gebruik te maken van een gemodificeerde QEMU Process voor Hardware emulatie. De KVM Module introduceert een uitvoerings mode in de Kernel. Waar Vanilla Kernels ondersteuning biedt voor Kernel Mode en user Mode, KVM introduceert een Guest Mode. De Guest Mode wordt Willem-Geert Nijboer | 12 3 juni 2009 [VIRTUALISATIE] gebruikt om alle niet I/O codes uit te voeren, Normal User Mode geeft dan wel weer ondersteuning aan I/O voor de Guest Operating System. De introductie van KVM is echt een meilpaal voor Linux want dit presenteert de eerste virtualisatie technology dat in de Linux Kernel zit. Het is ook pas vanaf de Linux kernel 2.6.20 te installeren, als Kernel Module wordt 2.6.19 gebruikt. Als KVM wordt gedraaid op hardware dat virtualisatie ondersteund dan kan het gemakkelijk Linux 32 en 64 Bits draaien en als laatste Windows 32 Bits. Hypervisor HyperVisor wordt ook genoemd als Virtual Machine Monitor zorgt ervoor dat je meerdere Operating Systems kan draaien op 1 machine. Zo zijn er een aantal verschillende HyperVisors. Type 1 Hypervisor Deze type Hypervisor wordt ook Bare Metal of Native genoemd. Dit houdt in dat de Hypervisor direct op het Hardware draait zonder een Operating System er tussen draait. Willem-Geert Nijboer | 13 3 juni 2009 [VIRTUALISATIE] Type 2 Hypervisor Deze type Hypervisor draait op de Operating System en is dus softwarematig. Dit houdt ook in dat de Hypervisor laag een software laag is. Processor Het gebruik van KVM is er vereist dat de processor de instructie set Intel-VT of AMD-V ondersteunt. Dit is van belang, bevat de processor deze set niet dan zal het echter ook niet goed functioneren. Problemen die erbij komen is dat de Virtual Machine niet geheel geisolleerd is, en niet op Bare Metal zal draaien. Intel-VT Intel VT is een instructie set voor Intel Processoren, Intel VT staat ook bekend als Vanderpool. Deze technology lijkt blijken als of er meerdere Processoren in het systeem zitten. Dit is echter uiteraard niet waar, maar het voordeel is hieruit dat per Kern een Operating System kan draaien. Intel Virtualization Technology, virtualisatie is uiteraard niets nieuws zo kunnen we ook gewoon VMware draaien op elke pc. Maar om op een Single Proccessor meerdere Operating Systems te draaien is niet handig. Dankzij deze technology lijkt het als of er meerdere Processoren aanwezig zijn. Willem-Geert Nijboer | 14 3 juni 2009 [VIRTUALISATIE] Dit ziet er erg naar uit dat gewoon weg het zelfde is als Multitasking of zelfs HyperThreading, maar hier is echter degelijk wel verschil. Multitasking zorgt er eigenlijk voor dat er op 1 Operating System en een aantal programma’s parallel draaien. Met virtualisatie is het mogelijk om meerdere Operating Systems te draaien en uiteraard per Operating System dat zijn eigen programma’s draait. Elke Vituele Operating System draait dan op een Virtual Processor. HyperThreading simuleert dat er 2 Processoren zijn terwijl er eigenlijk maar 1 fysieke Processor aanwezig is. Bij HyperThreading komt er dan ook nog SMP bij (Symmetric Multi Processing) voor de Performance te balancen. Zo is het ook mogelijk dat je Processoren tegen komt die HyperThreading en Virtualization Technology ondersteunen. Waarom dit erin zit is puur voor meer Performance betere stabiliteit dit is de enige reden waarom een Processor dit ondersteund. Willem-Geert Nijboer | 15 3 juni 2009 [VIRTUALISATIE] De werking ervan is best wel apart en uiteraard voor een betere Performance doen mensen het graag. Virtualization Technology heeft in zich een extra instructie set zoals al hierboven was beschreven in Virtualization Technology een instructie set, maar de instructie set die verborgen zit is Virtual Machine Extension of ook kort genoemd VMX. Dankzij VMX zijn er extra instructies bij gekomen, VMPTRLD, VMPTRST, VMCLEAR, VMREAD, VMWRITE, VMCALL, VMLAUNCH, VMRESUME, VMXOFF en VMXON. Er zijn 2 modus om onder de virtualisatie te draaien hebben we Root en Non-Root. Meestal de virtualisatie software of wat ook de Virtual machine Monitor wordt genoemd draait onder Root. Terwijl de Operating Systems dat wordt gevirtualiseerd draaien onder Non-Root. Om in 1 van deze modus te komen moet de Software kunnen beschikken om de instructie set aan te kunnen spreken dit gebeurt met VMXON. Nu volgt er nog een lijst met de type Processoren van Intel die Virtualizaiton Techonolgy ondersteunen. Merk lijn Pentium 4 Pentium Extreme Edition Pentium D Core 2 Duo E Core 2 Duo E Core 2 Quad Q Core 2 Quad Q Core 2 Extreme X Core 2 Extreme QX Core 2 Extreme QX Xeon series Intel Atom Z Intel Core i7 Willem-Geert Nijboer | Type 662 & 672 955 & 965 920 & 960 63/64/632/642/654/655/675/68500 82/83/84/85/8600 6600 & 6700 93/9400S/945/955/9550S/9650 X6800 6700/6800/6850 9650/9770/9775 3000/5000/7000 520/530/540/550/515 920/940/950/965/975 Kern Prescott 2M Presler Presler Conroe Wolfdale Kentsfield Yorkfield Conroe_XE Kentsfield_XE Yorkfield_XE Conroe/Dempsey/Paxville MP Silverthorne Bloomfield 16 3 juni 2009 [VIRTUALISATIE] AMD-V De tegenhanger van Intel heeft uiteraard ook zo zijn dingen in petto. Zo heeft AMD de technologie ontwikkelt die AMD-V heet (Advanced Micro Devies VirtualizationTechonolgy) uiteraard beweert AMD dat hun Processoren beter zijn dan die van Intel. AMD vertelt zo ook dat hun Processor beschikt over een Virtualisatie laag, en dat dan daar boven op de Guest Operating System draait. AMD biedt dan ook dat de Virtualisatie direct contact heeft met de Architectuur van de Processor. Hierdoor heeft de Processor sneller contact met elkaar, geheugen en de I/O Hub. Dit resulteert dan in betere Performance en stabiliteit dankzij dat de Processoren van AMD 64 Bits standaard zijn is er complete ondersteuning voor applicaties die 32 Bits zijn. Willem-Geert Nijboer | 17 3 juni 2009 [VIRTUALISATIE] Uiteraard waar het tegenwoordig allemaal nog om draait is energie besparing, de AMD Processoren hebben ook nog de PowerNow! Erin zitten dit zorgt ervoor dat de Processor niet de hele nacht onnodig stroom staat te gebruiken. Helaas valt er weinig technische informatie te vinden over AMD-V maar het zal voornamlijke ongetwijfeld de zelfde verhaal zijn als die van Intel Merklijk Athlon 64 Athlon 64 LE Athlon 64 Athlon 64 Athlon 64 Athlon 64 X2 Athlon 64 X2 AMD Athlon 64X2 Athlon 64 Athlon 64 Quad AMD Opteron AMD Opteron AMD Opteron Quad AMD Opteron Quad AMD Opteron Quad AMD Opteron Quad AMD Opteron Quad AMD Opteron Quad Willem-Geert Nijboer | Type 30/32/35/35F3/38/38F3/4000 16/162/1640 3500+ 35+/38+/LE01640B/LE1640/LE1660 20/26/3100+ 38/40/42/44/46/48/50/50F52/52/54/56/60/6400 36/38/38/40/42/44/46/46/48/50/5200+ 36/40/42/44/46/48/50/52/54/56/58/6000 FX-62 FX70/FX72/FX74 1200 Series 2200 Series 1352/1354/1356 2300 Series 2300 Series 8300 Series 8300 Series 2400 Series Kern Orleans Orleans Orleans Lima Lima Windsor Windsor Brisbane Windsor Windsor Santa Ana Santa Rosa Budapest Barcelona Shanghai BarcelonaA Shangai Istanbul 18 3 juni 2009 [VIRTUALISATIE] Ubuntu KVM installatie KVM kan ook worden geïnstalleerd op een Open Source producten. Dit is uiteraard goedkoper en makkelijker voor de mensen die het thuis willen proberen. Zoals in dit document valt te lezen zijn er een aantal eisen voor het gebruik van KVM. Zo moet de Processor minimaal ondersteuning bieden aan Intel-VT of AMD-V. Controle Processor Hardware Virtualisatie Als eerst gaan wij kijken of de Processor hier ondersteuning aanbiedt dit doen wij door de volgende commando uittevoeren in de Terminal van Ubuntu. egrep '(vmx|svm)' --color=always /proc/cpuinfo Wordt er niks getoond, dan houdt dit in dat de Processor geen ondersteuning biedt aan Intel-VT of AMD-V. Weetje toch echt zeker dat het systeem wel ondersteuning ervoor biedt, moet er echter even gekeken worden in de Bios. Wordt er wel wat getoond, dan is er ondersteuning voor deze technologie. Controle Processor 64 Bits ondersteuning Wordt er meer geheugen gebruikt dan 3Gb dan is het verstandig om de 64 Bits versie van de Operating System te installeren. Dit geval maken we gebruik van de 64 Bits editie van Ubuntu , om te controleren of de Processor ook 64 Bits ondersteuning heeft tikken we de volgende commando in de Terminal. grep ' lm ' /proc/cpuinfo Wordt er niks getoond dan heeft de Processor geen ondersteuning voor 64 Bits, dit is niet erg want KVM valt ook te installeren onder 32 Bits. Het enige nadeel van 32 Bits gebruik is de kans op weinig geheugen erg groot. Willem-Geert Nijboer | 19 3 juni 2009 [VIRTUALISATIE] Controle Kernel Nu gaan we controleren welke Kernel we draaien, dit doen we door de volgende commando in de Terminal in te typen. uname -m Nu wordt er getoond welke Kernel is geïnstalleerd is het de x86_64 dan draait het systeem een 64 Bits versie. Komt er echter i386, i486, i 586 of i 686 dan draait er een 32 Bits Kernel. KVM installatie Nu gaan we KVM installeren en VMbuilder dit is een Tool waardoor je dus de Virtual Machines kan maken. aptitude install ubuntu-virt-server python-vm-builder Daarna moeten we nog een ons zelf toevoegen dit doen we door de volgende code in te voeren. adduser `id -un` libvirtd Nu moeten we ons eerst afmelden en dan weer aanmelden om ons tot de Group toe te voegen. Nu gaan we controleren of KVM is geïnstalleerd. Dit doe je door de volgende code in te typen. virsh -c qemu:///system list Daarna zal je iets moeten zien wat hier op lijkt. root@server1:~# virsh -c qemu:///system list Connecting to uri: qemu:///system Id Name State ---------------------------------root@server1:~# Krijg je echter niets dan is KVM niet geïnstalleerd. Willem-Geert Nijboer | 20 3 juni 2009 [VIRTUALISATIE] Netwerk bridge creëren Nu gaan we een Netwerk Bridge maken zodat de Virtual Machines naar buiten kunnen communiceren. Dit doen we door het pakket Bridge-utils te installeren we voeren de volgende Commando in. aptitude install bridge-utils Nadat het installeren klaar is gaan we de configuratie bestand editen in /etc/network/interfaces. Dit doen we door de volgende Commando te doen. vi /etc/network/interfaces Het configuratie bestand zal er zo uit zien. # This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # The primary network interface auto eth0 iface eth0 inet static address 192.168.0.100 netmask 255.255.255.0 network 192.168.0.0 broadcast 192.168.0.255 gateway 192.168.0.1 Dit moeten we wijzigen naar het volgende. # This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # The primary network interface auto eth0 iface eth0 inet manual auto br0 iface br0 inet static address 192.168.0.100 network 192.168.0.0 netmask 255.255.255.0 broadcast 192.168.0.255 gateway 192.168.0.1 Willem-Geert Nijboer | 21 3 juni 2009 [VIRTUALISATIE] bridge_ports eth0 bridge_fd 9 bridge_hello 2 bridge_maxage 12 bridge_stp off Zorg ervoor dat de gegevens wel kloppen en sla het op. We moeten nu de netwerk service herstarten anders functioneert het niet, we voeren de volgende Commando in. /etc/init.d/networking restart Vervolgens om te controleren, voeren we de commando ifconfig uit. root@server1:~# ifconfig br0 Link encap:Ethernet HWaddr 00:1e:90:f3:f0:02 inet addr:192.168.0.100 Bcast:192.168.0.255 Mask:255.255.255.0 inet6 addr: fe80::21e:90ff:fef3:f002/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:13 errors:0 dropped:0 overruns:0 frame:0 TX packets:22 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:816 (816.0 B) TX bytes:2228 (2.2 KB) eth0 Link encap:Ethernet HWaddr 00:1e:90:f3:f0:02 inet6 addr: fe80::21e:90ff:fef3:f002/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:24824 errors:0 dropped:0 overruns:0 frame:0 TX packets:14734 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:35463147 (35.4 MB) TX bytes:1301112 (1.3 MB) Interrupt:251 Base address:0xa000 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) virbr0 Link encap:Ethernet HWaddr ae:74:45:cf:4f:d2 inet addr:192.168.122.1 Bcast:192.168.122.255 Mask:255.255.255. 0 inet6 addr: fe80::ac74:45ff:fecf:4fd2/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:6 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 Willem-Geert Nijboer | 22 3 juni 2009 [VIRTUALISATIE] RX bytes:0 (0.0 B) TX bytes:468 (468.0 B) root@server1:~# Zo zou het er nu uitmoeten zien en er is nu een bridge gemaakt. Maken van een VM Nu dat we net alles hebben ingesteld kunnen we nu onze eerste Virtual Machine maken. Zal de Virtual Machine echter toch heel erg worden belast, dan wordt er aangeraden om gebruik te maken van LVM. We gaan eerst een aantal mappen maken die gewoon simpel vm1, vm2, vm3 heten. Het probleem is dat alle Virtual Machines niet in 1 map kunnen. We voeren dus even deze Comando uit zodat de map wordt gemaakt en de Libvirt template wordt overgezet. mkdir -p ~/vm1/mytemplates/libvirt cp /etc/vmbuilder/libvirt/* ~/vm1/mytemplates/libvirt/ Nu moeten we nog de Virtual machine partitioneren. We maken eerst een text bestand die vmbuilder.partition heet deze plaatsten we in de map /vm1/. Vervolgens openen we het bestand en maken we de volgende regels erin aan. root 8000 swap 4000 --/var 20000 Dit geeft aan dat de de Root schijf uit 8Gb betaat de Swap uit 4Gb en dat Var uit 20Gb bestaat. Uiteraard kun je dit aanpassen naar eigen wensen. We gaan nu een script maken die noemen we Boot.sh deze zal moeten worden opgestart wanneer een Virtual Machine voor het eerst wordt opgestart. We gaan ervoor zorgen dat er een SSH Server op de Virtual Machine gaat draaien. Hierdoor heeft het zijn eigen unieke sleutel, als Default staat er Administrator als username dit kan je vervangen. Het volgende moet in de script staan. Willem-Geert Nijboer | 23 3 juni 2009 [VIRTUALISATIE] # This script will run the first time the virtual machine boots # It is ran as root. # Expire the user account passwd -e administrator # Install openssh-server apt-get update apt-get install -qqy --force-yes openssh-server Gezien dat elke VM pakketen moet downloaden van het internet is het uiterst handig om even een Proxy Server te installerne. We voeren de volgende commando in aptitude install apt-proxy Nu openen we de configuratie bestand vi /etc/apt-proxy/apt-proxy-v2.conf We vervangen dan de het HTTP adres naar een adres wat dicht bij je in de buurt is. [...] [ubuntu] ;; Ubuntu archive backends = http://nl.archive.ubuntu.com/ubuntu min_refresh_delay = 15m [...] Nadat dit is gedaan gaan we de Proxy herstarten dit doen we door de volgende Commando in te voeren. /etc/init.d/apt-proxy restart Nu dat de Proxy is geinstalleerd gaan we nu kijken wat we allemaal kunnen met VMbuilder. We tikken de volgende commando in. vmbuilder kvm ubuntu --help Zo kunnen we zien voor nog meer opties. Nu gaan we onze eerste Virtual Machine maken, we gaan naar VM1. cd ~/vm1/ Willem-Geert Nijboer | 24 3 juni 2009 [VIRTUALISATIE] Nu gaan we dan VMbuilder opstarten en dat doen we als volgt. vmbuilder kvm ubuntu --suite=intrepid --flavour=virtual --arch=amd64 -mirror=http://192.168.0.100:9999/ubuntu -o --libvirt=qemu:///system --tmpfs=- --ip=192.168.0.101 -part=vmbuilder.partition --templates=mytemplates --user=administrator --name=Administrator -pass=howtoforge --addpkg=vim-nox --addpkg=unattended-upgrades --addpkg=acpid -firstboot=boot.sh --mem=256 --hostname=vm1 --bridge=br0 Dit zijn erg lange codes gelukkig op deze website kan je doormiddel van selecteren de code klaar maken. Klik hier Nadat het bouw process klaar is kan je een configuratie bestand vinden in /etc/libvirt/qemu en dan zal er een VM1.xml aanwezig moeten zijn. Dus we gaan eerst even kijken of hij aan is gemaakt in die map. ls -l /etc/libvirt/qemu/ Al ser dus wel 1 is aangemaakt dan zal het er zo uitzien. root@server1:~/vm1# ls -l /etc/libvirt/qemu/ total 8 drwxr-xr-x 3 root root 4096 2009-05-07 12:50 networks -rw------- 1 root root 1030 2009-05-07 14:28 vm1.xml root@server1:~/vm1# Uiteraard voor controle waar de Images van de Virtual Machines staan. ls -l ~/vm1/ubuntu-kvm/ root@server1:~/vm1# ls -l ~/vm1/ubuntu-kvm/ total 389608 -rw-r--r-- 1 root root 235438080 2009-05-07 14:27 disk0.qcow2 -rw-r--r-- 1 root root 163119104 2009-05-07 14:28 disk1.qcow2 root@server1:~/vm1# Willem-Geert Nijboer | 25 3 juni 2009 [VIRTUALISATIE] Beheren van een VM Virtual Machines worden beheerd met Virsh dit staat voor Virtual Shell, om te connecten naar een Virtual Shell draaien we de volgende commando. virsh --connect qemu:///system Als het goed is zal je dan ongeveer het soort gelijke op het scherm krijgen. root@server1:~/vm2# virsh --connect qemu:///system Connecting to uri: qemu:///system Welcome to virsh, the virtualization interactive terminal. Type: 'help' for help with commands 'quit' to quit virsh # Uiteraard gaan we eerst kijken welke Commandos er zijn in Virsh. We typen de help commando in. virsh # help Commands: help print help attach-device attach device from an XML file attach-disk attach disk device attach-interface attach network interface autostart autostart a domain capabilities capabilities connect (re)connect to hypervisor console connect to the guest console create create a domain from an XML file start start a (previously defined) inactive domain destroy destroy a domain detach-device detach device from an XML file detach-disk detach disk device detach-interface detach network interface define define (but don't start) a domain from an XML file domid convert a domain name or UUID to domain id domuuid convert a domain name or id to domain UUID dominfo domain information domname convert a domain id or UUID to domain name Willem-Geert Nijboer | 26 3 juni 2009 [VIRTUALISATIE] domstate domain state domblkstat get device block stats for a domain domifstat get network interface stats for a domain dumpxml domain information in XML edit edit XML configuration for a domain find-storage-pool-sources discover potential storage pool sources find-storage-pool-sources-as find potential storage pool sources freecell NUMA free memory hostname print the hypervisor hostname list list domains migrate migrate domain to another host net-autostart autostart a network net-create create a network from an XML file net-define define (but don't start) a network from an XML file net-destroy destroy a network net-dumpxml network information in XML net-edit edit XML configuration for a network net-list list networks net-name convert a network UUID to network name net-start start a (previously defined) inactive network net-undefine undefine an inactive network net-uuid convert a network name to network UUID nodeinfo node information nodedev-list enumerate devices on this host nodedev-dumpxml node device details in XML nodedev-dettach dettach node device its device driver nodedev-reattach reattach node device its device driver nodedev-reset reset node device pool-autostart autostart a pool pool-build build a pool pool-create create a pool from an XML file pool-create-as create a pool from a set of args pool-define define (but don't start) a pool from an XML file pool-define-as define a pool from a set of args pool-destroy destroy a pool pool-delete delete a pool pool-dumpxml pool information in XML pool-edit edit XML configuration for a storage pool pool-info storage pool information pool-list list pools pool-name convert a pool UUID to pool name pool-refresh refresh a pool pool-start start a (previously defined) inactive pool pool-undefine undefine an inactive pool pool-uuid convert a pool name to pool UUID Willem-Geert Nijboer | 27 3 juni 2009 [VIRTUALISATIE] quit quit this interactive terminal reboot reboot a domain restore restore a domain from a saved state in a file resume resume a domain save save a domain state to a file schedinfo show/set scheduler parameters dump dump the core of a domain to a file for analysis shutdown gracefully shutdown a domain setmem change memory allocation setmaxmem change maximum memory limit setvcpus change number of virtual CPUs suspend suspend a domain ttyconsole tty console undefine undefine an inactive domain uri print the hypervisor canonical URI vol-create create a vol from an XML file vol-create-as create a volume from a set of args vol-delete delete a vol vol-dumpxml vol information in XML vol-info storage vol information vol-list list vols vol-path convert a vol UUID to vol path vol-name convert a vol UUID to vol name vol-key convert a vol UUID to vol key vcpuinfo domain vcpu information vcpupin control domain vcpu affinity version show version vncdisplay vnc display virsh # We voeren nu de Commando list uit dit zal dan de draaiende virtuele machines laten zien. list –all shows all VMs, running and inactive: virsh # list --all Id Name State ---------------------------------- vm1 shut off - vm2 shut off virsh # Willem-Geert Nijboer | 28 3 juni 2009 [VIRTUALISATIE] Voordat we als eerst de Virtual Machine opstarten moet je eerst zijn .xml bestand aanwijzen die zich bevindt in /etc/libvirt/qemu/. Dit doe je met de Define Commando. define /etc/libvirt/qemu/vm1.xml Onthoud wel dat elke keer als er iets wordt gewijzigd in de vm1.xml dan moet je hem elke keer de Define commando uitvoeren. Nu dat dit is gedaan gaan we de Virtual Machine starten. We typen nu de commando in om hem te starten. start vm1 Na een paar momenten dan zou je via een SSH client moeten kunnen connecten. Meld je aan met de Default Username en wachtwoord en uiteraard na 1e keer aanmelden moet je die direct wijzigen. We gaan nu kijken of hij ook echt draait. We typen de Comando list in. virsh # list Id Name State ---------------------------------3 vm1 running virsh # Zo zijn er nog een aantal Commando’s die uiteraard wel handig zijn om te weten. Commando Start vm1 Shutdown vm1 Destroy vm1 Suspend vm1 Resume vm1 quit Willem-Geert Nijboer | Omschrijving Start Virtual Machine Sluit Virtual Machine af Virtual Machine wordt uigezet Pauzeert vm1 Vm1 draait weer verder Sluit de Virtual Shell af 29 3 juni 2009 [VIRTUALISATIE] KVM Verwijderen Uiteraard is er ook een mogelijkheid om KVM te verwijderen, dit doe je door de volgende stappen te volgen. We tikken in de volgende commando’s in. $ sudo apt-get purge kvm Dit zal de KVM Module verwijderen, het kan nog wel zijn dat er configuratie bestanden overblijven in /etc/. Nadat dit is verwijderd gaan we de laatste Commando uitvoeren voor het verwijderen. $ sudo dpkg -P kvm Nu is KVM compleet verwijderd en kan niet meer worden gebruikt. Willem-Geert Nijboer | 30 3 juni 2009 [VIRTUALISATIE] Netwerkkaart Bridgen Zodra KVM is geïnstalleerd is het handig om de netwerkkaart te bridgen. Zo kan de Virtuele Machine wel verbinding maken met de buiten wereld. We beginnen met het installeren van de Bridge tools. We voeren deze Commando in. sudo apt-get install bridge-utils Nu gaan we wat dingen aanpassen hier voor moeten we eerst onze netwerk service stoppen dit doen we door de volgende Commando in te typen. sudo invoke-rc.d networking stop Nu gaan we een Bridge Interface toevoegen, dit doen we door de configuratie bestand te wijzigen in /etc/network/interfaces We gaan nu dus de configuratie bestand aanpassen met de volgende gegevens. Dit zijn de wijzegingen voor een Static IP. auto lo iface lo inet loopback auto eth0 iface eth0 inet manual auto br0 iface br0 inet static address 192.168.0.10 network 192.168.0.0 netmask 255.255.255.0 broadcast 192.168.0.255 gateway 192.168.0.1 bridge_ports eth0 bridge_stp off bridge_fd 0 bridge_maxwait 0 Als er toch gebruik wordt gemaakt van een DHCP Server moeten de regels gewijzigd worden naar het volgende. auto lo iface lo inet loopback auto eth0 iface eth0 inet manual auto br0 Willem-Geert Nijboer | 31 3 juni 2009 [VIRTUALISATIE] iface br0 inet dhcp bridge_ports eth0 bridge_stp off bridge_fd 0 bridge_maxwait 0 Dit zal de Virtual Bridge Interface (br0) maken. Natuurlijk moeten we ook weten of het werkt, we gaan eerst de netwerk service herstarten. sudo /etc/init.d/networking restart Configureer Ubuntu-VM-Builder voor Bridge Guests De configuratie bestand van van Ubuntu-VM-Builder bestaat uit een .XML bestand hierin kunnen we de configuratie aanpassen. Het bestand is te vinden in /usr/share/ubuntu-vm-builder/templates/libvirt.tmpl. We open het bestand en vervangen de regels naar. <interface type='bridge'> <mac address='%MAC%'/> <source bridge='br0'/> </interface> Overzetten van bestaande VMs Als er al eerder VMs zijn gemaakt en deze moeten ook connectie maken via een Bridge is dit vrij makkelijk aan te passen. Dit doe je in /etc/libvirt/qemu/ en dan zal er onwaarschijnlijk het bestand er ongeveer zo uit zien. <interface type='network'> <mac address='00:11:22:33:44:55'/> <source network='default'/> </interface> Hier moeten we de volgende dingen in veranderen. <interface type='bridge'> <mac address='00:11:22:33:44:55'/> <source bridge='br0'/> </interface> Onthoud wel dat de eerste octet van het Mac adres gelijk is aan alle machines. Wordt dit echter veranderd dan zullen er problemen optreden voor netwerk connectie. Willem-Geert Nijboer | 32 3 juni 2009 [VIRTUALISATIE] Het enige wat je nu nog moet doen is de VM herstarten en klaar. DNS en DHCP voor Guests Libvirt maakt gebruik van DNSmasq om de IP adressen uit te delen aan de Virtual Machines die geconfigureerd zijn om DHCP te gebruiken. Als de Host machine een IP adres heeft van 192.168.1.100 moet dit adres ook worden toegevoegd aan in de lijst van Libvirt, zo kan de Host dan als DNS functioneren voor de Virtual Machines. Gelukkig is DNSmasq slim genoeg om niet naar Libvirt te kijken maar naar /etc/resolv.conf van het omzetten van niet Libvirt adressen. Zo zal de configuratie bestand er nu ongeveer uitzien in /etc/resolv.conf. search example.com nameserver 10.0.0.1 Dit zal veranderd moeten worden naar het volgende. search example.com nameserver 192.168.122.1 nameserver 10.0.0. Nu gaan we het even testen, wat als er een virtuele machine aanwezig was die de naam test64 had dit is uiteraard wel met gebruik van een Ubuntu Virtual Machine. $ host test64 test64 has address <IP address given by dnsmasq> Nu gaan we nog even een SSH test uitvoeren zodat het wel functioneerd. $ ssh test64 Als het goed is moet het nu hebben gewerkt. Willem-Geert Nijboer | 33 3 juni 2009 [VIRTUALISATIE] Maken van een Virtual Machine De beste tool om te gebruiken onder Ubuntu is Ubuntu-VM-builder. Dit gaan we als eerst installeren, we voeren in de Command-Line de volgende commando. sudo apt-get install ubuntu-vm-builder Nu gaan we een virtual machine maken,we voeren de volgende Commando in. sudo ubuntu-vm-builder kvm hardy De Commando die net is ingevoerd zorgt ervoor dat er een Virtual Machine wordt gemaakt voor Ubuntu Hardy. Uiteraard is het mogelijk om extra codes toe te voegen maar al dat getype is erg lang gelukkig heb ik hier een link die alles makkelijker maakt. Klik hier Willem-Geert Nijboer | 34 3 juni 2009 [VIRTUALISATIE] Ubuntu Virtual Machine Builder Advanced Wat is Ubuntu VMbuilder De VMbuilder is een Script dat automatisch de processen uitvoert om het maken van een Virtual Machine. De JeOS CD is hier niet bij nodig en de Hypervisors die Ubuntu VMbuilder ondersteunt zijn KVM, Xen en VMware. VMBuilder is als eerst geïntroduceerd als een Shell Script in Ubuntu 8.04, de VMbuilder is eigenlijk egonnen als ene Hack voor Developers om hun nieuwe geschreven code te testen in eenVirtual Machine zonder dat ze elke keer te hoeven herstarten. Nadat Administrators de Script door hadden gingen ze het verbeteren voor andere doel einden, vervolgens heeft de auteur van de Script het overnieuw geschreven in Python met de volgende Design doelen. Develop zodat het kan worden gebruikt in de distributie Gebruik van een Plug-In zodat het makkelijk is om contact te maken met andere Open Source Virtualisatie technieken. Makkelijke manier via Web Interface als een alternatief dan het Command-Line Installatie Ubuntu-VMbuilder We beginnen met het installeren van python-vm-builder, dit pakket hebben we nodig. sudo apt-get install python-vm-builder Nu wordt de VMbuilder geïnstalleerd. Een VM defineren Het defineren van een Virtual Machine is in Ubuntus VMbuilder vrij simpel. De VMbuilder Command-Line heeft 2 hoofd parameters die je kan gebruiken. 1e parameter : de virtualisatie technologie (Hypervisor) Willem-Geert Nijboer | 35 3 juni 2009 2e parameter [VIRTUALISATIE] : de gekozen distributie (distro) De commando zal er dan ongeveer zo uitzien. vmbuilder <hypervisor> <distro> --help We gaan nu een stukje van de Command-Line laten zien zodat er een indruk is hoe het werkt. sudo vmbuilder kvm ubuntu --suite intrepid --flavour virtual --arch i386 o --libvirt qemu:///system - Zo wordt de Command-Line dus gedaan, nu een kleine uitleg waarom bepaalde Commandos er tussen zaten. 1. 2. 3. 4. 5. - -suite - -flavour - -arch i386 -o - -libvirt : defineert de Ubuntu versie. : specificeert de Virtual Kernel. : betekent een 32Bit machine. : vertelt VMbuilder dat de ouwe versie moet worden overschreven. : vertelt de Virtual Omgeving dat er een nieuwe VM bij komt. Nu hebben we wel een VM aangemaakt maar kun je er niet mee communiceren met het netwerk. Door dit wel te kunnen doen moet je tijdens het aanmaken van een VM, hieronder een korte uitleg over wat de Commando’s doen. 1. 2. 3. 4. 5. 6. - -ip ADRES - -mask VALUE - -net VALUE - -bcast VALUE - -gw ADRES - -dns ADRES : hier vullen het IP adres in van de machine. : hier vullen we het Subnet masker in. : : hier vullen we het Broadcast nr in. : hier vullen we het Gateway adres in. : hier vullen we de DNS Server in. Een voorbeeld van de regel hoe hij zal moeten worden geschreven. sudo vmbuilder kvm ubuntu --suite intrepid --flavour virtual --arch i386 -o --libvirt qemu:///system --ip 192.168.0.100 Nu moeten we nog de Libvirt template veranderen naar Bridging. Dit is natuurlijk wat handiger want nu kunnen de VMs nergens naar toe. We maken eerst een map aan die Mytemplates heet daarna kopieeren we Libvirt naar net gemaakte map. Willem-Geert Nijboer | 36 3 juni 2009 [VIRTUALISATIE] Voor het aanpassen van de Libvirt bestand voeren we de volgende Commando’s uit. mkdir -p mytemplates/libvirt cp /etc/vmbuilder/libvirt/* mytemplates/libvirt/ Nadat dit is geklaard kunnen we in onze gecreëerde map het gaan toevoegen of we doen het bij de originele bestand dit is echter de keuze aan u. Wij hebben gekozen om de bestand in Mytemplates te gaan editen. We gaan naar de map mytemplatles/libvirt daarna zoeken we naar het bestand libvirtxml.tmpl. Hier een klein overzicht van wat er in het bestand staat. <interface type='network'> <source network='default'/> </interface> Nu moet alle gewijzigd worden naar het volgende . <interface type='bridge'> <source bridge='br0'/> </interface> Om ervoor te zorgen dat een VM de template pakt moeten we wel tijdens het aanmaken van de regel wel de volgende code toevoegen. --templates mytemplates Wordt dit echter niet ingevoerd dan zal er ook niet naar de script worden gekeken. Overigens wordt er tijdens het creëren van een VM wel gekeken naar /etc/vmbuilder/. Partitionering Tijdens het partitioneren van een Virtual Machine is het natuurlijk handig dat je zelf de grote ervan mag bepalen en dat alles los van elkaar staat. Dit kun je gelukkig ook met VMbuilder doen. Hiervoor is de - -part commando. --part PATH Allows to specify a partition table in partfile each line of partfile should specify (root first): mountpoint size where size is in megabytes. You can have up to 4 virtual disks, a new disk starts on a line with '---'. ie : root 1000 /opt 1000 Willem-Geert Nijboer | 37 3 juni 2009 [VIRTUALISATIE] swap 256 --/var 2000 /log 1500 In onze geval zoeken we naar een tekst bestandje die vmbuilder.partition heet en dan gaan we vervolgens de volgende regels vervangen. root 8000 swap 4000 --/var 20000 De kans kan zijn dat de Virtual Machine Image groter is dan dat er is aangegeven. Nu dat als het goed is alle codes zijn ingevoerd zal de Command-Line er ongeveer nu zo uit zien. sudo vmbuilder kvm ubuntu --suite intrepid --flavour virtual --arch i386 -o --libvirt qemu:///system --ip 192.168.0.100 --part vmbuilder.partition -templates mytemplates Users en wachtwoorden Zoals altijd met Linux moeten we ook eerst een standaard Gebruiker worden aanmaakt met wachtwoord. Dit is uiteraard uiterst verstanding om te noteren in de documentatie. Hieronder de commando’s met beschrijving. 1. - -user NAME 2. - -name FULLNAME 3. - -pass PASSWORD : vul hier de naam van de gebruiker in. : vul hier de volle naam in. : vul hier de wachtwoord in. De Command-Line zal er dan zo uit komen te zien. sudo vmbuilder kvm ubuntu --suite intrepid --flavour virtual --arch i386 -o --libvirt qemu:///system --ip 192.168.0.100 --part vmbuilder.partition -user user --name user --pass default Willem-Geert Nijboer | 38 3 juni 2009 [VIRTUALISATIE] Installeren van extra pakketen We gaan nu extra pakketen installeren zodat we de Server kunnen benaderen via een Web Interface. Dit doen we met het pakket LimeSurvey, daarom moet ook de andere programmas worden geïnstalleerd. We moeten we de volgende pakketen installeren. 1. 2. 3. 4. 5. Apache 2 PHP MySQL OpenSSH Server LimeSurvey Uiteraard wordt dit ook weer gedaan met de Willem-Geert Nijboer | 39