Ubuntu: de perfecte server – Scanner script



In het artikel Ubuntu: de perfecte server – Scanner heb ik beschreven hoe een scanner op een server kan worden gebruikt om een of meerdere documenten te scannen en direct door te sturen naar een e-mailadres. Het artikel eindigt met “Natuurlijk wordt het allemaal veel gemakkelijker als bovenstaande (scannen, converteren naar PDF en emailen) met behulp van een script wordt uitgevoerd.”. Lees verder

Ubuntu: de perfecte server – Launchpad PPA’s toevoegen en verwijderen



Soms wil je de allerlaatste versie van een programma in je perfecte server hebben. Maar als deze niet in de standaard Ubuntu repository zit, hoe kan je deze dan gemakkelijk in een server toevoegen? Als er voor dit programma een PPA (Personal Package Archive) is kan dit door deze PPA aan de softwarebronnen toe te voegen. Vóór Ubuntu 9.10 (Karmic Koala) moest je dit handmatig doen door deze in /etc/apt/sources.list op te nemen en daarna de GPG sleutel handmatig toe te voegen. Bij de introductie van Ubuntu 9.10 is dit echter gewijzigd, zodat je dit nu met een enkel commando kan uitvoeren.
Lees verder

Ubuntu: de perfecte server – Scanner


(Laatst bijgewerkt op 05 februari 2012; zie onderaan artikel voor meer informatie)
Het artikel Ubuntu: de perfecte server – VirtualBox printserver bespreekt hoe een printerserver te installeren in een virtuele server. Dit is handig, want dan kan iedereen op het netwerk de printer gebruiken. Maar wat te doen met een scanner? Het liefst wil je de scanner naast je hebben staan als je meerdere pagina’s moet scannen. Je wilt niet continue tussen je computer en de scanner heen en weer lopen. Zeker als deze op een server is aangesloten en deze geen automatische feeder heeft. Wat je wilt is de scanner bedienen bij de server en wel zo dat iedereen dat kan doen. Dat kan met SANE (Scanner Access Now Easy).

Lees verder

Ubuntu Server: het aankoppelen van een externe hardeschijf



Vaak is het handig om even een externe hardeschijf aan de Ubuntu Server te koppelen. Al is het alleen al om bestanden naar deze hardeschijf te kopiëren. Toch kan dit wel eens tegenvallen, omdat je niet weet aan welk apparaat (device) deze schijf is gekoppeld in Ubuntu. Dit artikel bespreekt hoe je op eenvoudige wijze het bestandssysteem van de externe hardeschijf kan koppelen.
Lees verder

Ubuntu: de perfecte server – Virtuele machine en NFSv4 datapartitie


Let op: dit artikel bespreekt NFSv4 dat, in tegenstelling tot de oude versie 3, een pseudobestandssysteem gebruikt. Dit een echt bestandssysteem dat geïdentificeerd wordt met de optie fsid=0 tijdens de export.

In het artikel Ubuntu: de perfecte server – minimale server installeren hebben we een data-partitie (/data) aangemaakt. Deze partitie kan gebruikt worden als opslagruimte voor je eigen bestanden (documenten, foto’s, muziek, films, enz),  kan gekoppeld worden in een VirtualBox virtuele machine en zelfs gedeeld worden tussen virtuele machines. Daarnaast heeft zo een data-partitie nog een ander voordeel voor een virtuele machine. Deze kan namelijk vervangen worden, zonder eerst de data veilig te stellen.

Lees verder

Ubuntu: de perfecte server – VirtualBox versies bijwerken


(Laatst bijgewerkt op 01 december 2011; zie onderaan artikel voor meer informatie)
Regelmatig komen er nieuwe versies van Oracle’s VirtualBox uit. VirtualBox 4.0.8, 4.0.10 en 4.0.12 zijn zogenaamde update versies. VirtualBox 3.2, 4.0 en 4.1 zijn upgrade versies. Updates komen vanzelf te voorschijn als je de server wilt bijwerken. Upgrades echter niet. Of er een upgrade beschikbaar is kan je zien met het commando:
Lees verder

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.

Lees verder

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.
Lees verder