Bouw je eigen NAS-server: Hardware kiezen voor FreeNAS
- December 22, 2017
- 0
In het eerste deel van dit tweeluik zijn we ingegaan op de mogelijkheden van FreeNAS en dan met name op ZFS. Met die kennis in het achterhoofd gaan we nu op zoek naar de ideale hardwarecomponenten om onze eigen FreeNAS-server te bouwen. Dat is nog niet zo eenvoudig als je zou denken!
Tot enkele jaren geleden had FreeNAS geen krachtige hardware nodig. Compacte systemen op basis van bijvoorbeeld een Via C3- of AMD Geode-processor met 256MB of 512MB RAM volstonden ruimschoots voor de meeste toepassingen. Een doorvoersnelheid tot 100Mbit/seconde was voor de meeste mensen voldoende. Niemand stelde vragen bij de betrouwbaarheid van software RAID-1 of RAID-5. Intussen is er echter veel veranderd! De meeste thuisnetwerken zijn al een tijdje overgeschakeld op Gigabit Ethernet en bovendien vereisen de geavanceerde mogelijkheden van ZFS een krachtige multicore CPU en voldoende RAM. De absolute minimumvereisten om FreeNAS te draaien zijn dan ook niet mals: een 64-bit multicore CPU met 8GB RAM. Wil je echt probleemloos aan de slag gaan, dan mag je het geheugen zelfs verdubbelen en kiezen voor ECC RAM (waarover later meer). Niet meteen specificaties, die je terugvindt in een goedkoop en compact embedded systeem! Een modern FreeNAS-systeem lijkt qua hardware dan ook meer op een server dan op een desktop of een embedded systeem. Gelukkig zijn servercomponenten tegenwoordig niet meer zo duur. Voor ongeveer €500 (zonder schijven) stel je al een behoorlijk stevig FreeNAS-systeem samen. Dat lijkt misschien duur, maar vergeet niet dat een high-end NAS gemakkelijk nóg meer kost!
Schijven
Je eigen systeem bouwen begint bij de keuze van het aantal schijven. Die bepaalt immers wat voor behuizing en moederbord je nodig hebt. Denk dus eerst erg goed na hoeveel schijfruimte je wenst en hoeveel schijven je daarvoor wilt gebruiken. Houd daarbij rekening met volgende zaken:
•Type vdev: voor een mirror heb je minstens twee identieke schijven nodig (of een veelvoud daarvan voor grotere capaciteiten) en voor een RAID-Z1/2/3 minstens 3, 4 of 5 schijven.
•Schijfformaat: 3.5″ schijven zijn goedkoper dan 2.5” schijven, maar nemen meer plaats in en zijn minder zuinig en iets luidruchtiger. In 3.5″ formaat krijg je tot 10TB op één schijf, terwijl je in het 2.5″ formaat slechts 4TB kwijt kunt.
2.5″ schijven zijn vooral interessant voor compacte en zuinige systemen met weinig opslagruimte. Let wel op dat 2.5″-schijven met hoge capaciteit vaak een afwijkende hoogte hebben, bijvoorbeeld 15 mm in plaats van 7 mm. Controleer dus goed of die 2.5″-schijven nog in jouw behuizing passen! Voor FreeNAS-systemen met maximaal 5 tot 6TB aan opslagruimte raden we aan om 2.5″ schijven te kiezen, tenzij je de meerprijs in vergelijking met 3.5″ schijven onoverkomelijk vindt. Vanaf 10TB wordt het prijsverschil tussen 2.5″ en 3.5″ al redelijk groot. Voor 4x4TB in RAID-Z1 (netto capaciteit 12TB) betaal je ongeveer €540 in 3.5″ en €840 in 2.5″. Voor datzelfde geld krijg je in 3.5″ 4x6TB, oftewel 18TB netto. Bij capaciteiten boven de 20TB begint de maximale schijfgrootte ook een rol te spelen. In 2.5″ heb je minstens zes schijven nodig voor 20TB netto (6x4TB in RAID-Z1), terwijl in 3.5″ de helft volstaat (3x10TB, al is 4x8TB een veel goedkopere optie). Voor hoge capaciteiten kom je dus automatisch bij 3.5″ schijven uit, afhankelijk van de hoeveelheid SATA-aansluitingen op je moederbord én de beschikbare ruimte in de behuizing.
Vdev configuraties
In eerste instantie kies je voor een mirror of RAID-Z1/2/3 om jouw data te beschermen. Daarbij maak je steeds een afweging tussen het aantal schijven, dat defect mag gaan en de resulterende netto opslagcapaciteit. De vdev-configuratie heeft echter ook zijn invloed op de prestaties. Stel dat één schijf een lees- en schrijfsnelheid van 125MB/seconde heeft. Een mirror vdev schrijft alle data weg naar de twee onderliggende schijven, dus de schrijfsnelheid blijft beperkt tot 125MB/s. De leessnelheid daarentegen verdubbelt tot 250MB/s, aangezien ZFS data inleest van de twee schijven tegelijk. Een mirror met drie schijven heeft zelfs een leessnelheid van 375MB/seconde, al gebruik je dan maar 33% van beschikbare capaciteit. Een RAID-Z1 met drie schijven resulteert dan weer in een lees- en schrijfsnelheid van 250MB/s. Voor elk datablok gebruikt ZFS immers twee schijven tegelijkertijd voor lees- én schrijfacties, terwijl de derde dient voor de pariteitsbits. Hoe groter het aantal schijven, hoe groter het aantal configuratiemogelijkheden. Zes schijven kan je bijvoorbeeld opdelen in:
•3 mirrors met elk 2 schijven: 50% bruikbare capaciteit, kan tot 3 schijven verliezen (tenzij twee schijven in dezelfde mirror defect zijn), 750MB/s leessnelheid en 375MB/s schrijfsnelheid
•2 mirrors met elk 3 schijven: 33% bruikbare capaciteit, kan tot 4 schijven verliezen (tenzij drie schijven in dezelfde mirror), 750MB/s leessnelheid en 250MB/s schrijfsnelheid
•RAID-Z1: 83% bruikbare capaciteit, kan 1 schijf verliezen, 625MB/s lees- en schrijfsnelheid
•RAID-Z2: 66% bruikbare capaciteit, kan 2 schijven verliezen, 500MB/s lees- en schrijfsnelheid
•RAID-Z3: 50% bruikbare capaciteit, kan 3 schijven verliezen, 375MB/s lees- en schrijfsnelheid. Het verschil met de eerste configuratie is dat het in een RAID-Z3 niet uitmaakt welke schijven stukgaan.
In de praktijk
Hoewel de schrijfsnelheden van de verschillende RAID-Z-configuraties hoger liggen dan bij de mirror-configuraties, zijn die laatste in de praktijk vaak sneller, vooral bij simultaan gebruik door meerdere systemen. In elk geval blijft jouw netwerk de beperkende factor: over Gigabit Ethernet haal je maximaal een doorvoersnelheid van ongeveer 115MB/s. Vergeet ook niet dat het aantal schijven binnen één vdev vastligt. Een RAID-Z1 met vijf schijven kun je nadien niet meer uitbreiden. Om de pool te vergroten, moet je dus een extra vdev toevoegen (bij voorkeur met dezelfde configuratie, dus vijf schijven) of de individuele schijven in het vdev één voor één vervangen door grotere exemplaren. De eerste optie is wellicht gemakkelijker, mits jouw systeem dat nog toelaat natuurlijk. Kort samengevat raden we volgende vdev-configuraties aan:
•Een mirror met twee schijven is de veiligste optie, als de prijs geen obstakel vormt en je de gewenste capaciteit kunt installeren in jouw behuizing (je hebt meer schijven nodig voor dezelfde netto capaciteit). Voor extra capaciteit voeg je extra mirror vdevs toe.
•Is een mirror te duur of biedt die te weinig capaciteit? Gebruik dan RAID-Z1 voor 3 tot 5 schijven, RAID-Z2 voor 6 tot 8 schijven en RAID-Z3 voor 9 tot 12 schijven.
•Voorzie ruimte voor toekomstige uitbreiding. Het heeft geen zin om je server meteen vol schijven te steken als je die extra ruimte de komende jaren toch niet nodig hebt. Dan kun je beter wachten tot de prijzen weer wat gedaald zijn en krijg je meer opslagruimte voor hetzelfde geld. Biedt je systeem ruimte voor 8 schijven? Configureer dan nu een RAID-Z1 met 4 schijven en voeg later een tweede RAID-Z1 vdev toe met grotere schijven.
Als opstartschijf kun je het best een aparte SSD of USB-stick van 16 of 32GB gebruiken. De SanDisk Cruzer Fit is een populaire keuze onder FreeNAS-gebruikers. Dit is een erg compacte USB-stick, die nauwelijks uit de USB-poort steekt. Plaats er twee en schakel mirroring in voor de bootdisk: zo kom je niet in de problemen als de stick onverwacht stukgaat. Een SSD is sneller en betrouwbaarder, maar kost meer en neemt SATA-poort(en) in, die je niet meer voor dataschijven kunt gebruiken.
Behuizing
Met de keuze voor een bepaald aantal schijven beperk je meteen ook het aantal geschikte behuizingen. Die vind je in alle soorten en afmetingen, variërend van ultraplat met plaats voor slechts twee 2.5″ schijven tot gigantische torens met plaats voor 16 3.5″ schijven. Elk type behuizing is specifiek ontworpen voor een bepaald type moederbord. Gangbare formaten zijn (van klein naar groot) Mini-ITX, Micro-ATX en ATX. Kleinere moederborden passen over het algemeen ook in grotere behuizingen, al is het een beetje zonde van de lege plaats in de behuizing. Idealiter koop je een zo compact mogelijke behuizing, die nét plaats biedt aan jouw moederbord en het maximale aantal schijven dat je ooit wilt installeren. Heb je genoeg ruimte voor jouw FreeNAS-server en wil je meer dan tien 3.5″ schijven plaatsen? Dan is een klassieke torenbehuizing de beste optie. Ook in kubusvormige behuizingen, zoals de Fractal Design Node 304 of 804 kun je vaak nog zes tot twaalf schijven plaatsen. Dergelijke behuizingen nemen wel vrij veel plaats in beslag en zijn vaak ook niet erg efficiënt ingedeeld.
Mag het allemaal wat compacter, bekijk dan eens de Mini-ITX serverbehuizingen. Qua prijs/kwaliteit is bijvoorbeeld SuperMicro een prima merk, dat erg geliefd is onder FreeNAS-gebruikers. SuperMicro’s SuperChassis 505-203B biedt met zijn afmetingen van 43x25x4.3cm bijvoorbeeld plaats aan vier 2.5″ schijven. Door de beperkte diepte van 25 cm neemt die behuizing nauwelijks meer plaats in dan een semi-professionele switch of router. Ze is dus prima geschikt om in een compact netwerkrack in te bouwen. SuperMicro maakt trouwens ook grotere serverbehuizingen, bijvoorbeeld van 43x63x9cm met plaats voor 16 schijven. Dat is echter niet zo’n handig formaat om thuis te installeren, tenzij in echt serverrack. Een bijkomend voordeel van serverbehuizingen is dat je de harde schijven meestal kunt vervangen zonder de behuizing te openen (hot swap). Dit is wel weer een duurdere optie, aangezien je elke schijf eerst in een adapter moet monteren. Let bij het bestellen van een SuperMicro-behuizing wel goed op dat je geen accessoires vergeet. Door de talloze configuratiemogelijkheden zijn onderdelen, zoals ventilators en montagemateriaal voor harde schijven niet altijd inbegrepen!
Moederbord
Het moederbord is de belangrijkste component van je FreeNAS-server. In tegenstelling tot bij desktopsystemen moet je érg goed opletten, dat het gekozen bord wel alle gewenste mogelijkheden ondersteunt. Eerst en vooral kies je een formaat dat geschikt is voor jouw behuizing: meestal zal dat Mini-ITX of Micro-ATX zijn. Controleer vervolgens of het moederbord voldoende SATA-aansluitingen bevat om al jouw (huidige en toekomstige) schijven aan te sluiten. Vooral in het Mini-ITX-formaat vind je weinig borden met meer dan 6 SATA-aansluitingen. Het maakt niet uit of de aansluitingen van het SATA2- of SATA3-type zijn: je hebt al SSD’s en een 10 Gigabit netwerk nodig om het verschil te merken. In principe kun je een desktop moederbord gebruiken voor jouw FreeNAS-server, maar dat raden we niet aan. Je kunt beter kiezen voor een server moederbord. Die zijn uiteraard iets duurder, maar bieden wel verschillende voordelen:
•Componenten van betere kwaliteit met langere levensduur (niet onbelangrijk voor een systeem dat misschien tien jaar lang non-stop moet draaien!)
•Ondersteuning voor ECC RAM (waarover later meer)
•Aanwezigheid van een baseboard management controller of BMC. Dit is als het ware een tweede systeem in de server om de server te beheren. Via een webinterface schakel je de server in of uit en neem je het beeldscherm over. Zo hoef je geen beeldscherm, toetsenbord en muis aan je server te koppelen om bijvoorbeeld een installatie uit te voeren of om netwerkproblemen op te lossen.
Populaire merken voor FreeNAS-installaties thuis zijn SuperMicro en ASRock Rack. Controleer wel eerst de Hardware Recommendations Guide van FreeNAS op http://bit.ly/2eBPfTg, voordat je een moederbord koopt. Niet alle moederborden blijken immers even goed te werken in FreeNAS! Een prima keuze voor systemen tot zes schijven is bijvoorbeeld het A1SAi-2550F-bord van SuperMicro. Dit bevat een onboard quad-core Intel Atom-processor van 2.4Ghz en biedt voor nog geen €300 alle hierboven vermelde voordelen. Heb je meer schijven nodig, dan kun je beter kijken naar een Micro-ATX-moederbord met een losse processor.
Processor en geheugen
De keuze voor een processor wordt bepaald door de CPU socket op jouw moederbord. Twee zaken zijn erg belangrijk voor FreeNAS: ondersteuning voor ECC-geheugen en de AES-NI-instructieset. ECC-geheugen is veel betrouwbaarder dan normaal geheugen, omdat het bitfouten detecteert én corrigeert. Vooral voor ZFS is dat erg belangrijk. In het eerste artikel hebben we uitgelegd hoe ZFS datacorruptie detecteert door bij elke lees- en schrijfactie checksums te vergelijken. Treedt er echter datacorruptie op in het geheugen (en niet op de schijven), dan merkt ZFS daar niets van. De corrupte data komt alsnog terecht op jouw schijven, dat op termijn tot dataverlies kan leiden. ZFS’s databescherming werkt dus enkel foutloos op systemen met ECC-geheugen. Qua hoeveelheid geldt als vuistregel dat ZFS 1GB RAM nodig heeft per 1TB opslagruimte, met een minimum van 16GB. Voor de prijs hoef je het alvast niet te laten, want 16GB ECC-geheugen kost je tegenwoordig ongeveer €100.
De AES-NI-instructieset is vooral van belang als je schijfencryptie inschakelt in FreeNAS. Zonder AES-NI-ondersteuning heeft dit een merkbare invloed op de prestaties. Voor de rest stelt FreeNAS geen bijzonder hoge eisen aan de processor. Zelfs de eerder vermelde quad-core Atom-processor (Intel Atom C2550) volstaat voor een eenvoudige fileserver. Met die processor kan je ook on-the-fly één Full HD-videostream transcoderen naar een ander formaat. Dat is best handig als jouw mediaspeler weinig videoformaten ondersteunt. De octo-core variant van die processor (Atom C2750) doet zelfs drie Full HD-videostreams. Voor de meeste thuisgebruikers volstaan deze twee Atom-processoren dus prima. Wil je nog verschillende virtuele machines draaien op jouw FreeNAS-server, dan kun je het beste de C2750 combineren met 32GB RAM. Een overzicht van aanbevolen losse processoren vind je in de eerder vermelde Hardware Recommendations Guide. Je zult opmerken dat die uitsluitend Intel-processoren bevat. Dat is geen toeval, want FreeBSD bevat nu eenmaal betere drivers voor een Intel-platform dan voor een AMD-platform.
Netwerkkaart
Voor FreeNAS is er slechts één vereiste wat betreft de netwerkkaart(en): gebruik enkel modellen van Intel! Veel FreeNAS-gebruikers hebben al problemen gehad met Broadcom- en Realtek-kaarten, dus die kun je beter links laten liggen. Vind je de limiet van 115MB/s voor Gigabit Ethernet te laag, overweeg dan een moederbord met meerdere netwerkkaarten. Het A1SAi-2550F-moederbord heeft bijvoorbeeld vier Gigabit Ethernetaansluitingen. Via Link Aggregation combineer je die vier aansluitingen tot één 4 Gigabit-interface, tenminste als jouw switch het LACP-protocol ondersteunt. Onthoud wel dat de snelheid van elke client nog steeds beperkt is tot 1 Gigabit. Link aggregation is dus vooral nuttig als meerdere clients tegelijkertijd de maximale gigabit-bandbreedte willen gebruiken. Uiteraard moeten ook de schijven in jouw systeem die snelheid dan aankunnen!
Leuk project
Met de informatie uit dit artikel beschik je over voldoende kennis om de juiste onderdelen te kiezen voor jouw FreeNAS-server. Enerzijds moet je rekening houden met enkele serverspecifieke vereisten, zoals ECC-geheugen en een BMC. De keuze van het moederbord en de behuizing hangt dan weer grotendeels af van het aantal schijven en de beoogde opslagcapaciteit. Dat alles maakt het bouwen van je eigen FreeNAS-server een leuk en leerrijk project, ideaal voor op een donkere winteravond. Heb je na het lezen van deze artikelreeks je eigen FreeNAS-server gebouwd? Laat het ons weten op marcel@linuxmag.nl!