Ubuntu: de perfecte server – VirtualBox installeren

(Laatst bijgewerkt op 10 juli 2011; zie onderaan artikel voor meer informatie)
In het artikel ‘Ubuntu: de perfecte server – Minimale server installeren‘ heb ik beschreven hoe je een minimale server moet installeren. Dit artikel beschrijft hoe je in deze minimale server een  of meerdere virtuele server machines kan installeren. Dit doen we met behulp van Oracle’s Virtualbox. De minimale server is de gastheer en de virtuele server machine de gast. Deze virtuele machines, geïnstalleerd zoals hieronder beschreven, werken perfect in de minimale server.

Elke virtuele machine heeft de volgende functies:

  • Maakt gebruik van het fysieke netwerk.
    Dit doen we door gebruik te maken van de industriestandaard virtio netwerkdriver, die standaard in de kernel van Ubuntu zit.
  • Optimaal geheugenbeheer.
    Het beheren van het geheugen doet VirtualBox met behulp van een aantal specifieke functies:

    • Nested Paging: dit zorgt er voor dat een aantal geheugenbeheeractiviteiten door de hardware wordt uitgevoerd in plaats van door VirtualBox. Dit hoeft de hypervisor niet meer te regelen en deze virtualisatieslag kan dus overgeslagen worden. Dit geeft een enorm performancevoordeel.
    • Ballooning, wat wil zeggen dat het toegewezen geheugen aan een virtuele machine gewijzigd kan worden terwijl deze actief is. Dit werkt door het geheugen van een virtuele machine te verkleinen en dit vrijgekomen geheugen te alloceren aan een andere virtuele machine. VirtualBox beheert dit automatisch en het vrijgekomen geheugen wordt niet teruggegeven aan de gastheer, maar blijft alleen beschikbaar voor VirtualBox.
    • Page Fusion voorkomt geheugen duplicatie tussen een of meerdere virtuele machines met exact hetzelfde besturingssysteem (incl. de patches).
      Dit functioneert alleen op een 64-bit besturingssysteem.

    Voor zowel Ballooning als Page Fusion moet de VirtualBox Guest Additions geïnstalleerd zijn.

  • USB gebruik.
  • Optimaal IO door virtuele machine.
    VirtualBox, draaiende in de gastheer, opent zijn image-bestand als elk normaal programma. Bij het open van het bestand wordt deze door het besturingssysteem van de gastheer gecached. Het voordeel is performance. Er zijn echter ook een aantal nadelen:

    • Het image-bestand van een virtuele machine kan behoorlijk groot worden en kan daardoor veel geheugenruimte in beslag nemen. Geheugen wat je graag ter beschikking hebt voor de server.
    • Als de gastheer uitgesteld schrijven hanteert (disk write caching), dan veronderstelt VirtualBox dat na een schrijfactie deze actie ook daadwerkelijk is uitgevoerd, ook al is dit niet zo. Dit kan verlies van data veroorzaken bij een crash of het plotseling uitvallen van de computer. Linux (en dus ook Ubuntu) maakt standaard gebruik van dit feature en schrijft elke 30 seconden de cache terug naar schijf. Deze terugschrijfactie wordt ook bij het uitzetten van Linux uitgevoerd. Ook Windows kent een dergelijk disk write caching.
    • Zowel de gastheer als de gast hebben hun eigen caching en wordt de data tweemaal gecached, terwijl eenmaal voldoende is.

    Het is dus aan te bevelen om de optie ‘Gebruik gastheer I/O cache’ uit te vinken. Het schrijven wordt dan uitgevoerd door VirtualBox in een eigen buffer op de gastheer en het lezen wordt uitgevoerd door de gast. SCSI, SATA en SAS controllers ondersteunen dit asynchroon lezen en schrijven. Let op: IDE ontbreekt hier en wordt dus niet ondersteund voor asynchroon lezen en schrijven.

Verder lezen

Ubuntu: de perfecte server – minimale server installeren


Als je een machine wilt inrichten met allemaal virtuele servers dan zit je vaak met dilemma’s, zoals welke server moet ik nemen, hoe richt ik de virtuele servers in, werkt deze ook draadloos, welke partities moet ik aanmaken, waar moet ik rekening mee houden, enz. Dit artikel probeert hier een antwoord op te geven. Niet in de vorm van het beschrijven van de verschillende vormen, maar door het daadwerkelijk inrichten van een server.

We gaan het volgende installeren en configureren:

  • Een minimale headless server, waar we virtuele servers op kunnen gaan installeren. We nemen hiervoor, hoe kan het ook anders, de Ubuntu Server. We gaan geen virtuele server inrichten, maar een minimale server. Licht genoeg om virtuele machines te kunnen hosten. Deze server wordt daarom ook de gastheer genoemd. In de gastheer kunnen we dan de virtuele machines maken met VirtualBox. VirtualBox is een zogenaamde “hosted” hypervisor, wat wil zeggen dat deze een host nodig heeft om te functioneren. De virtuele machines zijn de gasten.
    P.S. Naast hosted hypervisors bestaan er ook bare-metal hypervisors die rechtstreeks op de hardware draaien.
    Headless betekent dat we geen scherm, toetsenbord en muis nodig hebben (behalve bij de installatie).
  • De server aansluiten op het wireless netwerk. Een draadloze computer met meerdere virtuele machines die vanaf de buitenwereld bereikbaar moeten zijn werkt, volgens mijn weten, alleen met VirtualBox. Reden hiervoor is de meeste draadloze netwerkkaarten netwerk bridging niet aankunnen, omdat deze spoofing van het IP-adres (zich uitgeven als een ander IP-adres) niet toestaan. Zover ik weet kunnen alleen kaarten met de prism chipset dit. Bij VirtualBox heeft de gastheer (bij ons de Ubuntu Server) altijd de internet verbinding en maakt een VirtualBox module het mogelijk deze verbinding te gebruiken voor andere virtuele machines. Dat kan zelf direct door gebruik te maken van de industriestandaard virtio netwerkdriver in de gast (de VirtualBox virtuele machine).
    Natuurlijk kan en werkt bedraad ook.
  • Een gemeenschappelijke data-partitie.
  • OpenSSH voor beveiligde toegang tot de host server.

Natuurlijk zijn er andere manieren om een server in te richten, maar dit is een manier om zowel een minimale server met hosted hypervisors en een draadloos netwerk in te richten.
Verder lezen

Ubuntu en VirtualBox – Installatie van VirtualBox

(Laatst bijgewerkt op 02 oktober 2011; zie onderaan artikel voor meer informatie)
Oracle’s VirtualBox (voorheen Sun Microsystems’s VirtualBox) is virtualisatie software om besturingssystemen te draaien binnen een ander besturingssysteem. Bij besturingssystemen moet je denken aan servers en desktops, zoals Microsoft Windows, Ubuntu, Suse, Fedora, Unix, Solaris, enz. We creëren dan zogenaamde virtuele machines (ook wel gast genoemd) binnen een fysieke machine (ook wel gastheer genoemd). VirtualBox breidt de mogelijkheden van je computer uit door het simultaan draaien van meerdere besturingssystemen via een virtuele machines. Dit betekent ook dat je desktops en servers naast elkaar kan draaien. VirtualBox is een cross-platform virtualisatieapplicatie, wat op Intel en AMD gebaseerde computers geïnstalleerd kan worden. VirtualBox is beschikbaar voor Windows, Mac, Linux en Solaris.

Met de vierde versie van VirtualBox heeft Oracle een wijziging gemaakt die het installeren van VirtualBox vereenvoudigd. VirtualBox bestaat nu uit een aantal componenten:
Verder lezen