BBG Zuinige fileserver (Dec '13/Jan '14)

Door mux op zondag 29 december 2013 16:31 - Reacties (39)
Categorie: Best Buy Guides (BBGs), Views: 16.928

Het is weer hoog tijd voor een nieuwe BBG. De vorige BBG is inmiddels obsolete; zowel het Ivy Bridge-platform als enkele andere onderdelen in de vorige build zijn slecht verkrijgbaar of worden inmiddels in prijs/prestatie overschaduwd door moderne varianten.

Maar deze BBG is niet puur een refresh van de vorige. Dit keer richten we ons op een heuse fileserver: geen kleine NAS met 1 of 2TB opslag, maar groeipotentiaal tot tientallen terabytes. Want ondanks streaming diensten en betrouwbare, snelle internetverbindingen zijn er nog steeds een hoop mensen die veel plezier hebben aan hun 10TB+ rigs, getuige de vele topics hierover. En behalve het opslaan van software, films en muziek zijn er ook nog steeds een hoop mensen die hun foto/videografiewerk en andere grote hoeveelheden unieke data moeten opslaan. Zaken waarvoor zowel cloudstorage als kleine NAS-apparaten niet geschikt zijn.

Veel centrale storage en vooral veel harde schijven is een risico voor je data. Hoe meer harde schijven en daadwerkelijk daarop geschreven data je hebt, des te meer kans op foutjes tijdens het schrijven. En des te meer kans dat een schijf kapot gaat. Veel mensen roepen nu 'RAID!'... Nee, er zijn tegenwoordig betere methoden. In deze BBG richten we ons 7op ZFS als oplossing van een deel van deze problemen.
Waarom ZFS?
TL;DR:

Voordelen
  • Copy on write
  • Checksums
  • Kan omgaan met bit rot
  • verder alle voordelen van parity-achtige constructies in RAID
Nadelen
  • Draait niet onder Windows
  • Redelijk wat geheugen nodig, bij voorkeur ECC
ZFS is op dit moment het enige echt goed geschikte bestandssysteem voor grote data arrays. Waarom? Reden één: Copy on Write. Heel simpel gezegd schrijft ZFS eerst de nieuwe data op een leeg stuk van je harde schijven, en verzet daarna een pointer van de oude naar de nieuwe data. Dit zorgt er voor dat je schijven (mits er genoeg lege ruimte is) altijd op volle snelheid kunnen schrijven omdat ze lekker sequentieel kunnen schrijven. Ook is het veiliger voor je data, want je oude data word nooit zomaar overschreven. Mocht er dus halverwege iets fout gaan, heb je altijd de oude versie nog.

Tweede reden: Checksums. Zie dit als een ingebouwde hash-functionaliteit in het bestandssysteem zelf. ZFS houdt voor elk stukje data een checksum bij van 256 bytes (SHA256) waardoor het kan zien of er iets mis is met de data. Het leuke van ZFS is, dat dit continu gecontroleerd wordt. Bij iedere leesbewerking wordt geverifieerd of de data nog hetzelfde was als toen het voor het eerst geschreven werd. Zodra dit niet klopt zal ZFS alarm slaan, of als je genoeg redundantie hebt (Mirrors, RAIDZ1/2/3) de data repareren! Huh? Hoe kan dat dan? Nou heel simpel. ZFS leest de data van een schijf en ziet dat die data niet klopt. Mocht er nog een schijf zijn die de data ook bevat, en waarvan de checksum wel klopt, dan gaat ZFS de data kopieren van de goede versie, naar de kapotte versie op disk! Mooi toch!

Nog een belangrijke reden om ZFS te gebruiken: Bit rot. Wat is Bit rot? De naam zegt het al een beetje, bitjes die omvallen (omdat de magnetische domeinen op de harde schijven langzaam minder sterk worden). Is dit dan zo’n groot probleem? Ja, tegenwoordig wel. Harde schijven worden zo groot dat er een grote kans is dat in de levensduur van een schijf (terwijl hij in je bezit is) er zo’n bitje omvalt. Wat heeft ZFS hier mee te maken? Nou simpel, door het checksum mechanisme kan ZFS deze omgevallen bitjes zien! Waar normale bestandssystemen en RAID-engines de data gewoon corrupt aan je OS/Applicatie presenteren, gaat ZFS proberen de data te herstellen, of als dit niet kan, de file waar deze bitrot in zit verwijderen. Dit om te voorkomen dat de applicatie corrupte data aangeleverd krijgt.

Heeft ZFS dan ook nadelen? Ja, helaas wel. Voor velen is een van de grootste nadelen: Het draait niet onder Windows. De enige betrouwbare platforms waar het op kan draaien, zijn Solaris en BSD. Er is ook een Linux-installatie, en hoewel die al zeker goed op weg is, zeggen we toch in deze BBG: nog even niet. Het werkt wel, maar het is op het moment nog een proces voor gevorderden.

Een ander groot nadeel van ZFS is: Het kost veel geheugen. Waarom? ZFS werkt met een transactioneel systeem. Denk aan een database waar de verschillende veranderingen in een tabel in 1 transaction group geaggregreerd kunnen worden. ZFS doet iets soortgelijks met de IO richting je pool (reads en writes). Hierdoor heeft ZFS genoeg geheugen nodig om al deze wijzigingen in het geheugen op te slaan, te sorteren, en checksums over te berekenen, alvorens het naar disk geschreven word. Bovendien kan ZFS data van te voren al ophalen, omdat het denkt dat je deze data nodig hebt (prefetching), deze functie werkt pas als je meer dan 4GB geheugen hebt. ZFS komt voor kleine arrays eigenlijk pas tot zijn recht met 8GB geheugen, en voor echt grote arrays met grote data verbindingen (Fibre Channel, Infiniband, 10Gbit Ethernet, Port Trunks) heb je eigenlijk 16GB geheugen of meer nodig. Het moge duidelijk zijn dat ZFS dus heel zwaar leunt op het geheugen, en mede omdat er een hoop user data in staat is het aan te raden om dan ook ECC (error correcting) geheugen te gebruiken.

Waarom dan toch ZFS? Omdat er geen enkel ander bestandssysteem is, wat het niveau van volwassenheid heeft bereikt zoals ZFS dat heeft (ik kijk even met een scheef ook naar BTRFS en ReFS). Een derde belangrijke reden om voor ZFS te kiezen is dat de grootte van harde schijven tegenwoordig zo hard groeit, dat we steeds meer last krijgen van de slechte uBER specificaties van de schijven. Mocht je dit technische verhaal willen begrijpen, verwijzen we je graag door naar Het grote ZFS topic, daar staat het een en ander duidelijk uitgelegd.
Alleen ZFS is niet genoeg, je hebt nog steeds backups nodig
ZFS en als deel hiervan ECC beschermt je tegen incidentele schrijf/leesproblemen van je data, maar niet tegen blikseminslag of overstroming. Of user error. De enige bescherming daartegen is een backup, en wel ééntje die offsite (niet in hetzelfde huis, heel ergens anders) en onafhankelijk is. Hier hebben we wel een beetje een probleem, want 12TB data 'eventjes' backuppen naar een offsite locatie is niet bepaald makkelijk.

Allereerst is het nuttig om prioriteiten te stellen: welke data kan ik missen en welke is absoluut onvervangbaar? Stel dat je je storage alleen gebruikt voor gedownloade films en series, dan kan het best zijn dat je maar enkele honderden gigabytes aan belangrijke data overhoudt. Dat kan dan gemakkelijk naar bijvoorbeeld een cloud-backupdienst zoals Crashplan worden gegooid. Heb je meer data, dan kun je ditzelfde programma of bijvoorbeeld iets als BTSync gebruiken om een backup aan te leggen bij een vriend of familie. Zorg er ook voor dat je externe backups encrypt voordat je ze wegstuurt. Crashplan heeft ingebouwde mogelijkheden om dit te doen, voor BTSync raad ik (op aanraden van Dadona) Boxcryptor Classic aan. Overigens is Boxcryptor een onafhankelijk programma; je kunt het ook gebruiken om data voor Crashplan of elke andere cloud/backupdienst te versleutelen.

Hoe dan ook gaat een goede backupdienst je geld kosten; houd hier rekening mee bij de aanschaf van je fileserver. Het lijkt nu misschien een 'onnodige' uitgave die je liever in andere componenten of in je spaarrekening stopt, maar when the shit hits the fan wil je niet dat terabytes aan data vermijdbaar verloren gaan!

BBG Avoton-based fileserver

#ProductPrijsSubtotaal
1ASRock C2750D4I¤ 380,63¤ 380,63
6WD Green WD40EZRX, 4TB¤ 141,-¤ 846,-
1Fractal Design Define Mini¤ 74,90¤ 74,90
2Sharkoon SATA Kabel¤ 1,80¤ 3,60
1Silverstone SST-CP06 4x SATA¤ 8,17¤ 8,17
2Startech 3.5inch Hard Drive to 5.25inch Front Bay Bracket Adapter - zwart¤ 4,71¤ 9,42
1Kingston KVR1333D3E9SK2/16G¤ 152,50¤ 152,50
1Seasonic G-Serie 360Watt¤ 54,99¤ 54,99
1Crucial 2.5" M500 240GB¤ 113,49¤ 113,49
Bekijk collectie
Importeer producten
Totaal¤ 1.643,70


Dit systeem is het uitgangspunt van de BBG. Het hart van de machine is de ASRock C2750D4I. Dit is een moederbord met de nieuwste generatie Atom-octacore (8-core) voor servers. Het grootste verschil met andere Atom-bordjes, en de reden waarom je zoveel extra geld ervoor betaalt, is dat deze processor ECC geheugen ondersteunt. Ook heeft dit bordje twee Intel i210 gigabit ethernet-connecties en 12 (!!) SATA-poorten. Indien gewenst kun je het bordje dus ook gebruiken als router/gateway (je hebt dan nog wel een externe switch nodig om genoeg Ethernet-poorten te maken voor al je andere computers) en het aantal harde schijven kan tot in het absurde worden aangevuld.

Ondanks dat Atom de naam heeft niet al te snel te zijn hoef je je geen enkele zorgen te maken om de processorkracht van dit systeem. Er is more than enough to go around, zeker als je deze computer zoals samengesteld puur gebruikt als fileserver (zelfs inclusief de belasting van PAR-checks, SABnzbd, streaming torrents, non-realtime transcoding van video). Je kunt er ook probleemloos een router of lichte webserver naast virtualiseren als je wil. Misschien wil je in dat geval wel wat meer geheugen installeren. Wanneer je echt meerdere streams realtime wil transcoden of andere zeer zware taken wilt doen heb ik ook nog een Xeon E3-gebaseerd systeem verderop in de BBG.

Maar laten we eerst eens de keuze voor alle componenten van het Avoton-systeem kort beschrijven:
  • Geheugen: ik heb hier gekozen voor twee UDIMMs van 8GB. Het is sterk aan te raden om dit artikel te lezen als je wil weten wat het verschil is tussen UDIMMs, RDIMMs, etc. 16GB is meer dan genoeg voor een licht tot gemiddeld gebruikt ZFS-filesysteem met tot ca. 20TB aan bruikbare opslagruimte. Indien je nog een keer graag een hele sloot aan VMs erbij wilt draaien heb je de optie om het geheugen uit te breiden tot maar liefst 64GB (4x16GB) - hoewel 16GB UDIMMs nog erg duur zijn op het moment.
  • Moederbord: Avoton is Intel's nieuwste Atom-lijn voor servers, en de ASRock C2750D4I is momenteel het eerste echt interessante moederbord met deze generatie processoren dat ook echt beschikbaar is. Het is vergeleken met de concurrentie (bijv. Supermicro A1SAI-2750f) goedkoper, waarschijnlijk zuiniger en beter voor een storage-gefocused systeem. Een goed alternatief is de ASRock C2550D4I: deze heeft exact dezelfde feature, maar een 4-core ipv 8-core processor. Gezien processorprestaties niet belangrijk zijn in deze context is dit een makkelijke manier om ruim 100 euro te verdienen. De reden dat hij niet standaard in de BBG staat is de beperkte verkrijgbaarheid op het moment van schrijven. In de loop van januari komt hier verbetering in.
  • Harde schijven: Voor de basisconfiguratie raad ik 6x4TB harde schijven in RAID-Z2 aan voor een totaal van 16TB bruikbare opslag. 6 of 10 schijven in RAID-Z2 zijn een optimaal getal voor ZFS. De WD40EZRX hebben met hun 3.3W idle-verbruik veruit de hoogste hoeveelheid opslagruimte per Watt en zijn dus de meest optimale keuze. WD30EZRX is een goed alternatief als je iets minder opslagruimte nodig hebt. Heb je echt 'weinig' opslagruimte nodig maar wil je nog steeds profiteren van ZFS met ECC, dan kun je overwegen om 3x3TB schijven in RAID-Z1 te zetten voor effectief 6TB opslag.
  • Kast. Hier heb ik gekozen voor een kast waar ik zelf ervaring mee heb en welke voldoende ruimte heeft voor de genoemde configuratie. De Fractal Design Mini is naar mijn mening een iets betere kwaliteit kast dan de reeds zeer goed presterende Fractal Define R2 en R3-kasten welke ik eerder al eens heb aangeraden. Hoopjes luchtfilters, plaatsen voor (bijgeleverde stille) fans en geluidsdemping zodat je de server op iedere plek kunt neerzetten die je wil zonder overlast te veroorzaken. Wil je een kleinere kast? De Lian Li PC-Q25B is de kleinste fileserver-kast te zijn waar alles uit deze BBG in past, en ondanks dat er nog geen reviews over uit zijn op de betere review-sites (bijv. SPCR) lijkt het uit gebruikerservaringen hoe dan ook een prima kast. Het merk boezemt op dit punt ook vertrouwen in. Wil je meer harde schijven kwijt? Dan zal de Fractal Design Define R4, eventueel met een aantal 5,25" naar 3,5" brackets, de voordeligste keuze zijn.
  • SSD. Een no-brainer in mijn ogen is de Crucial M500. Deze schijf kun je zowel als boot-schijf als - indien je denkt dit nodig te hebben - ZIL gebruiken (meer info hierover in het meermalen gelinkte ZFS topic). De M500 heeft power-safe caps, wat betekent dat de SSD geen data verliest of corrumpeert in het geval van een onverwachte stroomuitval. En daarnaast staat de M500 bekend als een betrouwbare, goede kwaliteit schijf met voor zover bekend geen serieuze problemen. En het is ook nog één van de goedkoopste schijven! Wat wil je nog meer. De prestatie- en stroomverbruikwinst door een SSD te gebruiken i.p.v. een harde schijf is mijns inziens de licht hogere prijs waard.
  • Voeding. Een systeem met veel harde schijven kan helaas niet (betrouwbaar) aan een PicoPSU worden gehangen, hoewel ik het wel erg graag had gewild. Dan maar the next best thing: een inmiddels zeer vaak aangeraden, solide, betrouwbare en efficiënte voeding van Seasonic. Even leek het er in de afgelopen weken op dat de voeding slechter en misschien zelfs onverkrijgbaar werd, maar de leveringsproblemen lijken zichzelf opgelost te hebben. Dit is één van de redenen voor het vertraagd uitkomen van deze BBG geweest. Phew, alles is toch nog goed gekomen!
  • Overige onderdelen: zoals altijd heb ik even een fit-test gedaan met alle onderdelen en met alleen de bovenstaande componenten ben je er niet. Als je 6 of meer schijven in de Fractal Design Mini wil zetten, moet je twee HDDs in de 5,25" bays hangen. Daarvoor zijn brackets nodig, de exemplaren in dit lijstje zijn de goedkoopste. Ook heeft de voeding niet voldoende SATA power-aansluitingen, dus vandaar dat kabeltje. Bij het moederbord worden 6 SATA-kabels bijgeleverd, dus als je dan ook nog een 2,5" SATA SSD erbij wil stoppen heb je niet voldoende SATA-kabels. Vanzelfsprekend zul je er nog meer moeten bijkopen als je bijvoorbeeld 10 schijven wilt installeren.
Dit systeem verbruikt zoals samengesteld ca. 40-45W idle onder FreeBSD. Je krijgt met dit systeem inclusief verzendkosten ca. 10GB/euro opslag en het verbruikt zo'n 2,6W/TB. Dit zijn nuttige getallen om te vergelijken met andere systemen.

Intel Xeon E3-based fileserver

#ProductPrijsSubtotaal
1Intel Xeon E3-1220 V3 Boxed¤ 177,49¤ 177,49
1Supermicro X10SLL-F¤ 158,41¤ 158,41
5WD Green WD40EZRX, 4TB¤ 141,-¤ 705,-
1Fractal Design Define Mini¤ 74,90¤ 74,90
2Sharkoon SATA Kabel¤ 1,80¤ 3,60
1Silverstone SST-CP06 4x SATA¤ 8,17¤ 8,17
2Startech 3.5inch Hard Drive to 5.25inch Front Bay Bracket Adapter - zwart¤ 4,71¤ 9,42
1Kingston KVR1333D3E9SK2/16G¤ 152,50¤ 152,50
1Seasonic G-Serie 360Watt¤ 54,99¤ 54,99
1Crucial 2.5" M500 240GB¤ 113,49¤ 113,49
Bekijk collectie
Importeer producten
Totaal¤ 1.598,97


Let op: De X10SLL+ -F is nauwelijks duurder en heeft twee identieke Intel i210 Ethernet-poorten ipv twee verschillende. Belangrijker nog; bij de +-versie zijn beide NICs ondersteund onder ESXi, terwijl de i217 op de non-+ versie niet ondersteund is. Helaas staat dit moederbord niet in de pricewatch dus kan ik hem niet in de RML-lijst zetten.

Dit systeem gebruikt geen 'langzame' atom-processor, maar een aanzienlijk snellere Intel Xeon E3-1220v3 Haswell-generatie quadcore. Als belangrijkste voordeel boven het bovenstaande systeem - naast betere prestaties voor bijvoorbeeld realtime 1080p video transcoden - is dat deze processor ook VT-d ondersteunt. Dit systeem is daardoor zeer geschikt om als VMware ESXi-bak te dienen waarin vele virtuele machines worden gedraaid. Ook kost het - als we er even vanuit gaan dat het moederbord in de Avoton-configuratie doorgaans wordt vervangen door de goedkopere C2550D4I - maar enkele tientjes meer dan het Avoton-systeem.

Waarom is dit dan niet het primaire BBG-systeem? Het verbruikt meer, en het is eigenlijk niet zo nuttig voor een fileserver. Doordat het ruim 10W meer verbruikt aan het stopcontact is het ook nog eens een paar tientjes per jaar duurder om te draaien. Eigenlijk is dit systeem alleen nuttig voor iemand die eigenlijk meer een virtualisatie/algemene server wil bouwen dan alleen een fileserver. Echter, vanwege de prijs/prestatieverhouding wilde ik jullie deze configuratie niet onthouden!

Een kleine maar nuttige upgrade voor wanneer je dit systeem regelmatig zwaar wil belasten is een betere processorkoeling. Hiervoor raad ik graag de Cooler Master Hyper TX3 Evo of Scythe Katana 4 aan. Hierbij is de laatste keuze de stilste, maar iets duurder dan de TX3. Voor licht processorgebruik is de stock koeler echter prima.

Let op: het was me in eerste instantie ook ontschoten, maar dit systeem heeft slechts 6 SATA-aansluitingen. Het is dus niet mogelijk om zonder vervanging van het moederbord (duur!) of het toevoegen van een (extreem onzuinige, afrader!) RAID-kaart een 6-10 disk systeem hiermee te bouwen.

Dit systeem verbruikt ongeveer 50-60W idle afhankelijk van je OS-distributie, misschien zelfs nog iets meer als je veel VMs erop draait. Hiermee kom je op wederom ca. 10GB/euro en ruwweg 3,5W/TB.
Besturingssysteem
Deze systemen zijn allebei uitgekozen op het draaien van het ZFS-bestandssysteem. Ondanks dat ZFS een bestandssysteem en geen besturingssysteem is, is het zeker voor de mensen die hier nog niet eerder mee hebben gewerkt aan te raden om een specifieke FreeBSD-distributie genaamd ZFSGuru te installeren. Lees meer over de installatie en configuratie hiervan in Het grote ZFS topic.

Deze BBG is mede tot stand gekomen door de uitgebreide hulp van Dadona, HyperBart en FireDrunk, bedankt!