Richie Müller
Achtergrond

Doe-het-zelf NAS: Mijn Unraid-opstelling voor maximaal overzicht en prestaties

Richie Müller
24/7/2025
Vertaling: machinaal vertaald
Foto's: David Lee

Mijn Unraid server is geïnstalleerd. Maar voordat Docker containers of apps geïnstalleerd kunnen worden, heeft mijn NAS structuur nodig. In dit gedeelte leg ik uit hoe ik de cachepools opsplits, de array start en de gegevensopslag goed organiseer. En waarom strategie ook nodig is.

In het vorige artikel heb ik het Unraid besturingssysteem geïnstalleerd op een USB-stick die permanent vastzit in mijn NAS.

Nu is het tijd om te fine-tunen. Want «TomBombadil», zoals mijn Unraid server heet, moet dienen als een toekomstig onderzoekslaboratorium. In dit artikel kun je lezen welke overwegingen en gedachten hierbij een rol hebben gespeeld. Je zult hier geen stap-voor-stap instructies vinden. Er staan er al meer dan genoeg op YouTube.

Ik log voor de eerste keer in en kom terecht in de Unraid gebruikersinterface. Om later problemen te voorkomen, heb ik er een gewoonte van gemaakt om hier hetzelfde te doen: Het eerste wat ik doe is het besturingssysteem bijwerken naar de laatste versie en de juiste tijdzone instellen.

Twee cachepools: Scheid wat verschillende taken heeft

Voordat ik shares aanmaak, neem ik even de tijd. De gegevensstructuur bepaalt namelijk niet alleen de overzichtelijkheid, maar ook de prestaties en betrouwbaarheid van het systeem. Mijn beslissing heeft ook invloed op redundantie en de onderhoudbaarheid van de server op de lange termijn.

Ik heb in totaal vier solid state drives (SSD) geïnstalleerd: Twee van elk twee terabytes (TB) en twee van elk 500 gigabytes (GB). In eerste instantie was ik geneigd om ze allemaal in één cachepool te gooien. Maar met SSD's van verschillende grootte geef ik al snel onnodige capaciteit weg met RAID 1 (netwerk van harde schijven met failover) - in het ergste geval meer dan de helft van de ruimte.

Want RAID 1 spiegelt de gegevens altijd paarsgewijs tussen twee schijven. Het gebruikt alleen zoveel capaciteit als beschikbaar is op beide betrokken SSD's. Als een van de schijven kleiner is, wordt de overtollige opslagruimte van de grotere SSD genegeerd.

Het moederbord heeft in totaal drie slots voor NvmE SSD's.
Het moederbord heeft in totaal drie slots voor NvmE SSD's.

Ik vertrouw daarom op twee afzonderlijke pools met SSD's van dezelfde grootte, elk in BTRFS RAID 1. Ik gebruik B-Tree File System (BTRFS) omdat dit de beste optie is voor redundante SSD-pools in Unraid, met foutdetectie en flexibel beheer:

  • SSD-cachepool 1 (cache): 2 × 2 TB NvmE SSD's in RAID 1: Dit is ideaal voor het cachen van gegevens van Docker-containers, AppData, virtuele machines - met andere woorden, alles wat constant actief is en snelle toegang vereist.
  • SSD cache pool 2 (cache_fast): 2 × 500 GB SATA SSD's in RAID 1: Voor tijdelijke gegevens zoals downloads, «heaters» gegevens zoals inboxen van Paperless ngx of back-up klemborden.

ZFS of BTRFS? De vraag naar het juiste bestandssysteem

Bestandssystemen zoals ZFS of BTRFS regelen hoe gegevens worden opgeslagen, georganiseerd en geback-upt op een schijf. Ze vervullen een vergelijkbare rol als FAT32 of NTFS onder Windows. Ze bieden echter extra functies zoals checksums, snapshots en native RAID ondersteuning. Deze zijn vooral relevant voor servers en NAS systemen.

Ik heb bewust gekozen tegen ZFS (oorspronkelijk Zettabyte File System), ook al doet het technisch veel dingen goed. En tegen ext4 (vierde uitgebreide bestandssysteem), omdat het geen uitgebreide functies biedt. Ik wil flexibel blijven met cachepools. Een ZFS pool is niet zo eenvoudig uit te breiden. Als het bijvoorbeeld is opgezet als een mirror (RAID 1), kan ik later niet zomaar een enkele SSD toevoegen.

In plaats daarvan zou ik weer twee SSD's van dezelfde grootte moeten installeren. Met RAID-Z, een RAID-variant die alleen beschikbaar is voor ZFS, zijn de dingen nog meer rigide: de oorspronkelijke structuur ligt vast. Meer opslagruimte is alleen beschikbaar als ik meerdere nieuwe harde schijven tegelijk installeer.

De geïnstalleerde SSD's zijn voorzien van koelelementen.
De geïnstalleerde SSD's zijn voorzien van koelelementen.

Zelfs met SSD's van verschillende grootte is ZFS omvangrijk: het gebruikt slechts zoveel geheugen als waar de kleinste harde schijf ruimte voor heeft. De rest blijft ongebruikt. Dit is verspild potentieel, vooral met cachepools.

BTRFS is veel relaxter: Ik kan SSD's gemakkelijker vervangen of toevoegen. Dit is ook mogelijk met verschillende capaciteitsgroottes. Het grote pluspunt: de redundantie blijft behouden en ik heb nog steeds een goed overzicht. Unraid wordt standaard geleverd met BTRFS, geen plugin, geen extra moeite. Precies de juiste keuze voor mijn setup, die in de loop van de tijd zal evolueren.

De duidelijke scheiding brengt structuur en orde, maar ook veiligheid en voorkomt knelpunten met gelijktijdige toegang. Bovendien kan ik gemakkelijk extra aandelen integreren in de bestaande structuur als dat nodig is.

De array: 4 × 6 TB en 2 × pariteit = 24 TB netto en rustig slapen

Ik verdeel mijn zes harde schijven van 6 TB op de klassieke manier: twee harde schijven als pariteit (redundante gegevensschijf), vier als gegevensschijven. Dit geeft me een netto opslagcapaciteit van 24 TB. Ik ben ook beschermd tegen het uitvallen van maximaal twee schijven. Alle vier dataschijven draaien met eXtents File System (XFS). Dit is standaard in Unraid. Dit bestandssysteem is stabiel, beproefd en bijzonder efficiënt voor grote bestanden zoals media of back-ups.

Unraid volgt zijn eigen concept: in tegenstelling tot RAID of het klassieke «Just a Bunch of Disks» (JBOD), blijft elke gegevensschijf afzonderlijk leesbaar. Het geheel wordt beveiligd door een pariteitsprocedure. Dit kan het falen van maximaal twee schijven opvangen. Ik kan ook back-ups opslaan op een externe harde schijf.

Ik heb zes NAS harde schijven aangeschaft voor de array.
Ik heb zes NAS harde schijven aangeschaft voor de array.

Delen met structuur

Ik wil vanaf het begin weten waar iets zich bevindt - en vooral waarom. Daarom hebben mijn belangrijkste directories duidelijke regels:

De cache-modi kunnen voor elke share afzonderlijk worden ingesteld. Met Unraid kun je precies instellen of en hoe de cache voor elke share wordt gebruikt. Je hebt vier opties om uit te kiezen:

  • alleen: De share bevindt zich uitsluitend op de cachepool (bijv. voor Docker of VM's).
  • prefer: De share wordt bij voorkeur opgeslagen op de cache, maar verhuist naar de array als er ruimtegebrek is.
  • ja: Nieuwe gegevens komen eerst op de cache terecht en worden later automatisch naar de array verplaatst.
  • nee: De cache wordt genegeerd - alle gegevens belanden direct in de array. De zogenaamde «Mover» zorgt er op de achtergrond voor dat gegevens worden verplaatst zoals gepland - in mijn geval gebeurt dit elke 6 uur.

Tijdelijke gegevens komen dus eerst op de SSD's terecht en worden later automatisch naar de array verplaatst. Container- of VM-gegevens blijven daarentegen permanent in de cachepools. Daar krijgen ze de prestaties die ze nodig hebben.

Geheugen zorgt voor een verdere prestatieboost: Unraid gebruikt automatisch vrij RAM als lees- en schrijfcache («Buffer Cache») om veelgebruikte gegevens nog sneller aan te bieden en de SSD's te ontlasten.

Ik heb RAM geïnstalleerd met foutcorrectie.
Ik heb RAM geïnstalleerd met foutcorrectie.

Er is in totaal 128 GB RAM geïnstalleerd in mijn zelfgebouwde NAS. In de Unraid-instellingen heb ik aangegeven dat maximaal 75 procent van het beschikbare geheugen mag worden gebruikt voor de caches. Dat is maximaal 96 GB RAM. Dit wordt gedaan via de vm.dirty_ratio instelling, die ik als volgt in de console heb aangepast:

sysctl -w vm.dirty_ratio=75

Dit laat genoeg buffer over voor Docker, VM's en andere processen. Tegelijkertijd profiteren data-intensieve diensten zoals Paperless NGX of Nextcloud merkbaar van kortere toegangstijden.

Als deze RAM-cache niet zou worden gebruikt, zouden alle lees- en schrijftoegang direct via de SSD's moeten worden verwerkt. Hoewel dit nog steeds snel genoeg is, is het op de lange termijn minder efficiënt en kan het leiden tot een hogere slijtage van de SSD's.

Unraid geeft automatisch de RAM cache vrij.

Unraid geeft het geheugen automatisch weer vrij zodra het actief nodig is voor andere processen. De cache gebruikt dus alleen het geheugen dat op dat moment niet voor andere doeleinden wordt gebruikt. Hier vind je een YouTube-video waarin de configuratie van «Buffer Cache» wordt uitgelegd:

De array starten - het moment van de waarheid

Nadat ik de gegevensstructuur heb gedefinieerd en de cachepools heb ingesteld, wijs ik de schijven toe in de Unraid webinterface: twee pariteitsschijven, vier gegevensschijven en de SSD's aan de respectievelijke cachepools. Unraid geeft dan een groen bolletje weer om aan te geven dat de status OK is.

Na het klikken op «Start» initialiseert Unraid de array, controleert de toewijzingen en bereidt het bestandssysteem voor. Op het eerste gezicht gebeurt er niet veel - behalve dat de status verandert en er een opmaakoptie verschijnt.

Ik selecteer XFS als bestandssysteem voor alle gegevensschijven en BTRFS voor de cachepools. Ik bevestig de formattering van de gegevensdragers - dan is het tijd om te wachten.

De berekening kost tijd.

De berekening kost tijd, vooral als er twee pariteitsschijven zijn ingesteld. Afhankelijk van de grootte van de harde schijven kan dit enkele uren tot dagen duren. Het systeem is gedurende deze tijd volledig operationeel, maar de prestaties zijn beperkt. Ik laat het proces de hele nacht doorlopen.

Tip: Als je nieuwsgierig bent, kun je de voortgang in realtime volgen in de webinterface. Unraid laat heel transparant zien wat er op dat moment gebeurt - inclusief snelheid en geschatte resterende tijd.

De pariteitscontrole kostte me meer dan 11 uur.
De pariteitscontrole kostte me meer dan 11 uur.
Bron: Screenshot: Richie Müller

De volgende ochtend was het zover: de array is klaar - en mijn NAS is officieel in gebruik genomen.

Twee SSD pools, een stabiele array en een bewust gekozen datastructuur - mijn zelfgebouwde NAS heeft nu niet alleen prestaties, maar ook een duidelijk plan.

Vergeet de back-up niet: USB-stick als centrale levensverzekering

Na de eerste succesvolle start van de array en de cachepools, deed ik iets dat gemakkelijk over het hoofd wordt gezien - maar dringend moet worden gedaan: Ik heb een eerste back-up van de USB-stick gemaakt.

Zoals je weet, slaat Unraid alle belangrijke configuraties op de USB-stick op, die ook het besturingssysteem bevat. Als dit uitvalt, is het systeem niet verloren, maar het herstellen kost tijd. Tijd? Niet echt. Dankzij de back-up kan de configuratie snel naar een nieuwe USB-stick worden gekopieerd.

Ik heb de back-up opgeslagen op mijn Synology. Ik kan ook mijn sleutelbestand downloaden in mijn Unraid gebruikersaccount als dat nodig is. Een volledige back-up is ook mogelijk met een speciale plugin. Ik vertel je in het volgende artikel welke.

Mijn zelfgebouwde server is nu niet alleen functioneel, maar ook klaar voor uitbreidingen. Docker, VMS, community apps en plugins staan al in de coulissen te wachten. Daarover gaat het volgende deel van de serie.

  • Achtergrond

    Doe-het-zelf NAS: Mijn Unraid-opstelling voor maximaal overzicht en prestaties

    van Richie Müller

  • Gids

    DIY NAS: Ik installeer Unraid op een USB-stick en raak geïrriteerd

    van Richie Müller

  • Achtergrond

    DIY NAS – Deel 4: de zoektocht naar de juiste hardware

    van Richie Müller

  • Achtergrond

    Doe-het-zelf NAS - Deel 3: Welk besturingssysteem wil ik?

    van Richie Müller

  • Achtergrond

    Eigen NAS-systeem - Deel 2: Community, ik heb jullie gehoord!

    van Richie Müller

  • Achtergrond

    Eigen NAS-systeem - Deel 1: Het moeilijke afscheid van Synology

    van Richie Müller

Omslagfoto: Richie Müller

59 mensen vinden dit artikel leuk


User Avatar
User Avatar

Journalist met meer dan 20 jaar ervaring, voornamelijk in de online journalistiek in verschillende functies. Mijn belangrijkste werkinstrument? Een laptop bij voorkeur met een internetverbinding. Ik ben zo dol op deze apparaten dat ik soms de neiging heb om laptops en pc's uit elkaar te halen, te repareren en op te knappen. Waarom doe ik dit? Omdat het leuk is! 

Deze artikelen kunnen je ook interesseren

  • Achtergrond

    DIY NAS – Deel 4: de zoektocht naar de juiste hardware

    van Richie Müller

  • Achtergrond

    Doe-het-zelf NAS - Deel 3: Welk besturingssysteem wil ik?

    van Richie Müller

  • Achtergrond

    Eigen NAS-systeem - Deel 1: Het moeilijke afscheid van Synology

    van Richie Müller

23 opmerkingen

Avatar
later