# Linux Systeembeheer/Servervirtualisatie

Virtualisatie is een algemene term in ict die staat voor het op de ene of de andere manier abstraheren van hardwarebronnen. Servervirtualisatie in het bijzonder laat toe dat meerdere besturingssystemen tegelijkertijd op één computer kunnen draaien. Het grote voordeel van servervirtualisatie is dat de verschillende besturingssystemen van elkaar afgeschermd zijn. Daardoor kan bijvoorbeeld onderzoek naar computervirussen gedaan worden, zonder dat de computer (de 'host') wordt geïnfecteerd. Er kunnen ook kosten bespaard worden, door meerdere besturingssystemen (met bijvoorbeeld elk een webserver) te laten werken op één computer. Doordat de gevirtualiseerde servers, 'guests', van elkaar afgeschermd zijn is het gemakkelijker te beheren en ook dat levert een kostenbesparing op. Door meerdere gast-besturingssystemen te laten werken op één computer, heeft die computer extra geheugen nodig en een snellere processor. In de praktijk blijkt echter dat het goedkoper is om één duurdere computer (vaak een server) te gebruiken met virtualisatie, dan meerdere goedkopere computers zonder virtualisatie. In dit hoofdstuk bespreken we vooral het virtualiseren van een server.

## Leerdoelen

* De soorten servervirtualisatie kennen en kunnen situeren:
** de karakteristieken van de verschillende soorten virtualisatie kennen, meer bepaald: OS-level virtualisation, paravirtualisation, full virtualisation, emulation
* Bekende virtualisatietools kunnen classificeren
** VMWare Server, Workstation en Fusion, Xen, OpenVZ, VirtualBox, Hyper-V, Parallels, Containers, Virtual PC
* De voor- en nadelen van bepaalde virtualisatietypes en -producten kunnen evalueren
** Een geschikte keuze kunnen maken uit verschillende virtualisatieproducten, afhankelijk van het hostplatform en de toepassing
* VMWare Server en Sun VirtualBox kunnen installeren onder Linux
** een guest-OS kunnen installeren onder VMWare Server
** de netwerkopties voor guest-OSs kennen en begrijpen (private/NAT/bridged)
* In VirtualBox tijdens runtime verschillende netwerken aanspreken In VMWare Server kan je terwijl een virtuele machine draait het type netwerkverbinding (bridged, NAT, host-only) wijzigen. In VirtualBox moet je daarvoor eerst de VM afsluiten en achteraf opnieuw opstarten. Om deze beperking in VirtualBox t.o.v. VMWare te omzeilen kan je het volgende doen:
* Configureer eerst al je netwerkadapters (bv. 1 gekoppeld aan de NAT, 1 aan een VirtualBox Host adapter en 1 bridged met uw WLAN kaart) bij de instellingen van het guest OS
* Je kan dan tijdens de uitvoering van de virtualisatie de netwerkkaarten apart in- of uitschakelen met de GUI (bovenaan in de menu van het uitvoervenster)

## Soorten servervirtualisatie

Let op: in deze paragraaf staan veel fouten en irrelevante zaken. Gebruik bij studeren hier de slides (NETWLIN-1011-introduction) Bertvanvreckem 15 jan 2011 16:26 (CET)
* Emulation: Bij emulation wordt software binnen een besturingssysteem geladen in de vorm van een programma. Dit programma simuleert een complete machine zodat het mogelijk is om een extra guest-OS te starten. Dit besturingssysteem zal dan virtueel draaien op een ander hardware platform (bv: Bochs PearPC, PowerPC , Virtual PC ,Hercules emulator). Emulatie kennen we ook van game consoles zoals bijvoorbeeld gameboy emulators. Bij emulatie worden allerlei technieken gebruikt om de instructies aan de virtuele hardware te vertalen naar de werkelijke hardware van het host OS.
* Native Virtualization: Native virualization gebruikt hetzelfde principe als emulatie. Er wordt gebruik gemaakt van software om zo een volledige machine te simuleren. Het verschil met emulatie is dat bij Native Virtualization het gast-systeem dezelfde soort hardware wordt gebruikt als het host systeem. Een 32-bit systeem zal dus enkel virtuele machines kunnen draaien die geschikt zijn voor dit systeem. Bij Native Virtualization wordt de hardware op de host beter benut omdat de software de beschikbaar gestelde resources verdeelt onder de guests.
* Full Virtualization: Bij Full Virtualization worden meerdere guests naast elkaar geplaatst. Dit gebeurt door tussen de hardware en de virtuele machines een extra, softwarematige, laag te plaatsen die de aanvragen aan de hardware regelt. Hierdoor kunnen de hardware resources efficiënter benut worden dan bij gewone emulatie.
* Operating system-level Virtualization: Operating System-Level Virtualization lijkt op Full Virtualization maar de guest moet hetzelfde besturingssysteem hebben als het host systeem.
* Hardware enabled Virtualization: Hardware Enabled Virtualization lijkt op Full Virtualization maar hier wordt de tussenliggende software in de hardware verdeeld. Het voordeel hiervan is dat de virtualisatie nog dieper in het systeem is geïntegreerd zodat het verdelen van de hardware resources minder systeemcapaciteit kost.
* Partial Virtualization: Bij partial virtualization worden voor veel maar niet voor alle hardware componenten meerdere virtuele componenten gecreëerd. Deze componenten zorgen ervoor dat het mogelijk is om apparaten te delen. Het is niet mogelijk om meer dan één besturingssysteem te delen. Vaak wordt dit niet gezien als virtualisatie en het komt veelvuldig voor in besturingssystemen als Windows en Linux maar ook op grote mainframe systemen.
* Paravirtualization: Bij Paravirtualization wordt de hardware aangeboden aan de virtuele machine door middel van speciale API’s die alleen kunnen worden gebruikt door deze aan te passen aan het guest OS. Op deze manier kan er gekozen worden welke hardware er door de virtuele machines wordt gedeeld en welke hardware voor één specifieke guest aanwezig is.
* Cross-platform Virtualization: Bij deze vorm van virtualisatie wordt een applicatie die gecompileerd is voor een bepaald OS op een ander OS gedraaid, zonder dat daarvoor een emulatie van het andere OS hoeft plaats te vinden. Tevens moet de source code en/of binaire bestanden niet worden aangepast.
* Application Virtualization: Bij application virtualization draaien de applicaties lokaal op een desktop, gebruikmakend van lokale systeem resources. Dit zonder dat de applicatie op de machine is geïnstalleerd, binnen een aangepaste VM. Het is enigszins te vergelijken met een terminal gebaseerde toepassing, met het grote verschil dat bij terminal services de applicaties op een server draaien en bij application virtualization de applicaties lokaal draaien.
* Resource Virtualization: Dit is eigenlijk de verzamelnaam voor alle types virtualization die we vandaag de dag kennen. Onder resource virtualization wordt ook het virtualiseren van opslag en netwerkelementen bedoeld. Enkele voorbeelden hiervan zijn SAN en NAS systemen, VLANs , VPNs, etc. Ook clusteroplossingen als partitioneringen en encapsulatie vallen onder resource virtualization.

## Netwerkopties voor guest-OSs(private/NAT/bridged)

Onder het tabblad netwerk bij de instellingen van een virtuele machine kun je verschillende soorten netwerkopties instellen.
Soorten netwerkopties:
* Network Address Translation (NAT):
Bij NAT wordt er een intern netwerk gesimuleerd. Het guest systeem heeft de toegang tot het internet via het hostsysteem. Omgekeerd is dit niet het geval. Het guest systeem is onzichtbaar voor het host systeem. Er zijn dus enkele beperkingen aan NAT verbonden die het mogelijk maken dat sommige diensten vanuit het hostsysteem of het internet mogelijk niet werken.
Beperkingen:
a. ICMP protocol : Sommige veelgebruikte netwerk debugging tools werken met het ICMP protocol. Tools zoals ping en tracerouting werken wel, maar van anderen is de werking niet altijd verzekerd.
b. Ontvangen van UDP broadcasts is niet verzekerd.
c. Sommige protocollen worden niet ondersteund (vb : GRE).
Besluit NAT is voldoende om op het web te surfen, files te downloaden en emails te bekijken, maar kan eventuele problemen veroorzaken indien men andere diensten wil aanspreken.
* Bridged networking:
Bij bridged networking is de virtuele machine een deel van het lokale netwerk. Het maakt fysiek deel uit van dat netwerk. Het is net zoals de virtuele machine een aparte host is binnen dit netwerk. Die host krijgt dan ook een apart IP-adres van de lokale DHCP-server.
* private networking:
(nog aan te vullen)

## Installeer VirtualBox 3.2.10 op Fedora 14/13, CentOS 5.5, Red Hat (RHEL) 5.5/6

1.Installeer RHEL repo bestanden:
2.Installeer de nodige dependency packages:
3.Voeg KERN_DIR variable toe:
4.Installeer de laatste versie van virtualbox:

## Installeer vmware server on centos 5

1. Download VMware server:
2. Installeer de VMware server:
3.Installeer benodigde bestanden / bibliotheken:
4.Installeer xinetd
5.Configureer de VMware server

## Bekende virtualisatie tools

* VMWare Server: VMWare Server kan virtuele machines aanmaken, bewerken, verwijderen en ook gewoon afspelen zonder dat hij aangemaakt is op de PC zelf. Het gebruikt een client-server model, waardoor je op afstand gebruik kan maken van de virtuele machines, dit gaat wel ten koste van de grafische prestaties. Er is ook een mogelijkheid om virtuele machines die door andere bedrijven gemaakt zijn te draaien. Bijvoorbeeld kan VMWare Server ook virtuele machines draaien die gemaakt zijn door Microsoft Virtual PC. Ook niet te vergeten is dat VMWare Server gratis te proberen is, wil je echter de volledige versie dan moet je hier wel voor betalen.
* VMWare Workstation: VMWare Workstation heeft alle opties die VMWare Server heeft en daarbij biedt het ook de mogelijkheid om hardware te simuleren, wat in VMWare Server dus niet kan. Bijvoorbeeld, VMWare Workstation kan een ISO bestand mounten als een CD-ROM en een Virtual Machine Disk(VMDK) als een harde schijf. Wat ook nog speciaal is rond VMWare Workstation is dat het een netwerk adapter kan configureren (NAT) door de host machine in plaats van door bridging. VMWare Workstation laat ook toe om Live CD’s te testen zonder hen op de schijf te moeten zetten of door de computer te rebooten. Er kunnen ook gemakkelijk snapshots genomen worden van de virtuele machine onder VMWare Workstation. Ook kan de virtuele machine herstart worden aan de hand van zo’n snapshot. Dus je herstart de virtuele machine en die komt dan terecht in de staat waar dat je een snapshot genomen hebt van de virtuele machine. Ook niet te vergeten is dat VMWare Server gratis te proberen is, wil je echter de volledige versie dan moet je hier wel voor betalen.
* VMWare Fusion: VMWare Fusion is een virtualisatie tool dat gemaakt is voor het MAC besturingssysteem. Zo kan je gemakkelijk andere besturingssystemen draaien onder MAC zoals Microsoft Windows XP, Vista of 7. Het kan 32 bit besturingssystemen alsook 64 bit besturingssystemen draaien, dit hangt natuurlijk af welke soort processor je hebt. Alleen 32 bits processors kunnen 32 bit besturingssystemen draaien, hetzelfde voor 64 bit besturingssystemen. Hier kunnen ook snapshots genomen worden zoals in VMWare Workstation, zodat je gemakkelijk een soort van backup kan maken van je virtuele machine. Want je kan het gelijk wanneer terugzetten naar een snapshot dat je genomen hebt in het verleden. Ook niet te vergeten is dat VMWare Server gratis te proberen is, wil je echter de volledige versie dan moet je hier wel voor betalen.
* Xen: Xen wordt ontwikkeld door Xen Project van XenSource. Xen maakt gebruik van de virtualistatietechniek paravirtualisatie om hogere prestaties te bereiken. Intel heeft zijn bijdragen gedaan aan Xen door hun VT-extensies te ondersteunen. Ook AMD heeft dat gedaan voor hun AMD-V extensie. Xen draait vooral op Linux gebaseerde systemen of NetBSD als hoofdsysteem. De eerste commerciële implementatie van Xen die breed ondersteund wordt is in Novells Linuxdistributie SLED 10. Ook FreeBSD is beperkt ondersteund. Xen werkt ook op Microsoft besturingssystemen. Het is mogelijk om Windows als gassysteem te draaien in Xen dit komt deels door de ondersteuning van Intel en AMD. Het is echter wel niet mogelijk om Microsoft Windows als hoofdsysteem te gebruiken. Microsoft Windows Server 2008 kan wel als hoofdsysteem gebruikt worden, Windows Vista niet.
* OpenVZ: OpenVZ kan zoals de meeste virtualisatie software meerdere geïsoleerde besturingsystemen draaien, omdat ze geïsoleerd zijn noemen we ze containers zoals Virtual Private Servers (VPSs) of Virtual Environments (VEs). Het is gelijkaardig als FreeBSD Jails en Solaris Zones. Als we OpenVZ met virtualisatie software zoals VMWare en paravirtualisatie technologie zoals Xen dan is OpenVZ gelimiteerd omdat het vereist dat beide hoofd-en gastbesturingssysteem Linux zijn. Maar Linux kan wel in verschillende containers geplaatst worden, OpenVZ zal hier zeker geen probleem van maken. Vaak wordt OpenVZ niet als een echte virtualisatiesoftware gezien omdat het geen meerdere virtuele machines op hetzelfde moment kan laten draaien. Ook Xen en VMWare virtualiseren de volledige machine terwijl OpenVZ dat niet doet. Het gebruikt een enkele Linux Kernel waardoor het ook alleen Linux kan draaien. Maar daardoor is het wel snel en efficiënt. Het grote nadeel is natuurlijk dat het maar een enkele Linux kernel gebruikt. De voordelen zijn dat het geheugenbeheer veel beter is. Een ander voordeel is dat je een virtuele machine gewoon kan kopiëren door gewoon de files te kopiëren en een nieuwe configuratie file te maken.
* VirtualBox: VirtualBox is een van de bekendere virtualisatiesoftware dat er op de markt is. Het kan zoals elke andere virtualisatiesoftware meerdere virtuele machines draaien op hetzelfde moment. VirtualBox heeft 3 soorten, namelijk de VirtualBox Personal Use, de VirtualBox Evaluation License en natuurlijk de open source editie onder GPL-licentie. VirtualBox wordt onderhouden door Sun Microsystem. VirtualBox kan geïnstalleerd worden op gelijk welk besturingssysteem. Ook kan je in VirtualBox aan hardware emulatie doen. Het gebruikt Intel-V en AMD-V als hardware virtualisator maar gebruikt geen van beide als standaard. De harde schijven worden in een speciaal formaat geëmuleerd, namelijk in Virtual Disk Images, die niet compatibel zijn met de verschillende andere formaten die de andere virtualisatieprogramma’s gebruiken. Deze bestanden worden opgeslagen op het hostbesturingssysteem als een .vdi-bestand.
* Hyper-V: Hyper-V komt voor in 2 verschillende versies, ten eerste als een stand-alone product genaamd microsoft Hyper-V Server 2008 R2 en ten weede als Microsoft Server 2008 R2. De eerste, de stand-alone versie is gratis te gebruiken, het is een variant van de Windows Server 2008 Core dat de Hyper-V functionaliteit implementeerd. De gratis 64 bit versie is echter gelimiteerd, je kan alleen een Command Line Interface (CLI) gebruiken waar je dus op het gastbesturingssysteem of het hoofdbesturingssysteem alleen maar met Shell commands kan werken. Microsoft Windows Server 2008 heeft de Hyper-V sowieso al staan en kan direct gebruikt worden vanaf de Management Console. De configuratie van de Hyper-V kan gedaan worden door het gebruiken van de Remote Windows Desktop RDP, via een sessie. Sinds November 2009 ondersteund Hyper-V geen USB toebehoren meer. Maar dit kan wel omzeilt worden door de Microsoft Remote Desktop Client te gebruiken en zo een Remote Desktop Connection op te zetten. Zo kan ook geluid geactiveerd worden. DVD-Writer ondersteunen ze ook niet meer sinds October 2010, waarom ze dit niet meer ondersteunen is onduidelijk. Er zijn ook verschillende grafische problemen met het hostbesturingssysteem. Als je bijvoorbeeld de graphic drivers installeert voor een virtuele machine die Microsoft Windows Vista runt dan zal je een gigantische val zien in de grafische performance. Dit is echter alleen voor het hostbesturingssysteem, het gastbesturingssysteem heeft hier echter geen problemen mee. Microsoft raadt aan de default VGA drivers te gebruiken die met Windows Server 2008 worden geleverd.
* Virtual PC: Virtual PC is gemaakt door Microsoft. Het maakt mogelijk om andere besturingssystemen te draaien onder Windows zoals Linux & Unix. Virtual PC is origineel gemaakt door Connectrix, het werd uitgebracht in 1997, die versie was alleen beschikbaar voor MAC OS. Later werd het de ontwikkelaar Connectrix overgenomen door Microsoft. Sinds de overname is Virtual PC gratis te verkrijgen via de Microsoft website. Voor de laatste versie voor de MAC OS werd wel nog geld gevraagd dit was mede doordat hier een volledige licentie van Microsoft Windows XP Professional bijgevoegd werd. Microsoft ondersteunt enkel Windows versies maar het is ook mogelijk sommige Linux & Unix distributies te installeren. Zo kan je al hostbesturingsysteem Windows 7, Windows Vista, Windows XP, Windows Server 2003 & Windows Server 2008 gebruiken. Als gastbesturingssysteem kan je Windows Vista, Windows XP, Windows Server 2008, Windows 200, Windows 98 2nd Edition, Windows Server 2003 en verschillende versies van IBM OS/2 gebruiken. Oudere versies zoals Windows 95 en 98 werken ook meestal maar worden niet ondersteund.

## Bibliografie

* Algemeen
-http://nl.wikipedia.org/wiki/Virtualisatie -http://www.abraxax.com/html/server_virtualisatie.html
* Installatie vmware en virtualbox op linux systeem:
-http://www.if-not-true-then-false.com/2010/install-virtualbox-with-yum-on-fedora-centos-red-hat-rhel/ -http://wiki.centos.org/HowTos/Virtualization/VirtualBox -http://www.cyberciti.biz/tips/vmware-on-centos5-rhel5-64-bit-version.html
* Bekende virtualisatie tools kunnen classificiëren
-http://en.wikipedia.org/wiki/VMWare_Server -http://en.wikipedia.org/wiki/VMWare_Workstation -http://en.wikipedia.org/wiki/VMWare_Fusion -http://en.wikipedia.org/wiki/Xen -http://en.wikipedia.org/wiki/OpenVZ -http://en.wikipedia.org/wiki/VirtualBox -http://en.wikipedia.org/wiki/Hyper-V -http://en.wikipedia.org/wiki/VirtualPC