ZFS-gids: Installeer en optimaliseer het ZFS-bestandssysteem op ZimaBoard

Eva Wong is de Technisch Schrijver en en vaste knutselaar bij ZimaSpace. Een levenslange geek met een passie voor homelabs en open-source software, zij is gespecialiseerd in het vertalen van complexe technische concepten naar toegankelijke, praktische handleidingen. Eva gelooft dat zelf-hosting leuk moet zijn, niet intimiderend. Met haar tutorials stelt ze de community in staat om hardware-setup te ontrafelen, van het bouwen van hun eerste NAS tot het beheersen van Docker-containers.

Groeten ZimaBoard-liefhebbers! Vandaag zijn we verheugd om je een uitgebreide tutorial te brengen van ons toegewijde communitylid Tyrehl. Tyrehl begeleidt je niet alleen deskundig door het installatieproces van ZFS op ZimaBoard, maar geeft ook een holistisch overzicht van de ZimaBoard zelf.

Van community-inzichten tot gedetailleerde installatie-instructies, het artikel van Tyrehl is jouw complete bron om het volledige potentieel van zowel ZFS als ZimaBoard te benutten. Onze oprechte dank gaat uit naar Tyrehl voor deze waardevolle bijdrage, die de kloof overbrugt tussen communitybetrokkenheid en technische kennis. Laten we samen deze reis beginnen en je ZimaBoard-ervaring naar een hoger niveau tillen. Veel plezier met ontdekken!

Introductie

Single-board computers (SBC’s) zijn erg populair in home-lab scenario’s en hebben de afgelopen jaren ook terrein gewonnen in professionele omgevingen en de industrie. Tegenwoordig is er een groot ecosysteem rondom edge computing en systemen met een klein formaat.

Goede rekenkracht is gemakkelijk te krijgen, met verschillende SBC’s die 4 cores en voldoende RAM bieden voor diverse toepassingen. Waar ze meestal tekortschieten, is op het gebied van opslag. SD-kaarten en flashopslag in het algemeen zijn meestal traag en gevoelig voor uitval bij schrijfintensieve scenario’s. Schijven die via USB zijn aangesloten bieden niet dezelfde betrouwbaarheid, en het kiezen van een goede USB-naar-SATA-connector is ook niet triviaal.

De ZimaBoard heeft een troef achter de hand. Twee SATA-poorten, de dubbele 100/1000 Ethernet en diverse PCIe-uitbreidingsopties maken het een zeer flexibel systeem.

Waar liggen de grenzen van wat een SBC realistisch kan bereiken, en waarom is opslag altijd zo’n probleem? Waar ligt het gouden midden tussen een compacte machine die geen enkele taak bijzonder goed beheerst, en een kabelwarboelmonster met 6 SATA-schijven die een externe ATX-voeding nodig heeft?

Dit artikel heeft als doel de sterke punten van de ZimaBoard te verkennen en hoe deze benut kunnen worden om er goed gebruik van te maken. Zonder te eindigen met een onpraktische en gekke opstelling.

Motivatie

Zoals eerder vermeld, is veel rekenkracht gemakkelijk te implementeren en te gebruiken. Geheugen is ook goedkoop, dus opslag wordt al snel de beperkende factor. Iedereen die met infrastructuur te maken heeft gehad, is zich hiervan waarschijnlijk bewust. Kijk maar eens naar de k8s-netwerkopslagopties, de verschillende platforms die beweren S3-compatibele API’s naar je cluster te brengen, en hoe vervelend ze zijn om te implementeren en goed te beheren.

De ZimaBoard, met zijn uitstekende I/O-mogelijkheden, is een uitstekende kandidaat voor een NAS met een klein formaat of een algemene server met veerkrachtige lokale opslag. En hier ligt de uitdaging – hoe bieden we fouttolerante opslag in een klein formaat, op een platform dat “gewoon werkt” en operationeel eenvoudig is.

Aan de hardwarekant beperken we ons tot het gebruik van slechts twee 2,5 inch schijven die worden gevoed en aangesloten via de SATA-connectoren aan de achterkant van de ZimaBoard. Dit zorgt voor een zeer compacte oplossing zonder de noodzaak van een externe voeding en uitbreidingskaarten.

Minder is meer

Veel opslag inzetten is goed, maar fouttolerante opslag is nog beter. Daarvoor hebben we een geavanceerder bestandssysteem nodig dat opslagredundantie biedt.

ZFS biedt software-RAID-mogelijkheden die die van de meeste hardware-RAID-controllers overtreffen. Het is een werkelijk uitstekend bestandssysteem met vele andere opmerkelijke functies zoals incrementele snapshots, synchronisatie tussen externe systemen en opslagpools, en encryptie.

De focus ligt vandaag puur op het redundant laten draaien van de schijven. Normaal wordt ZFS gebruikt om een RAIDZ-array te beheren. Maar omdat we ons beperken tot twee schijven, blijft er maar één relevante optie over – de ZFS mirror pool. Dit halveert effectief de opslagcapaciteit, maar biedt tegelijkertijd betere redundantie en de mogelijkheid om een enkele schijfuitval te weerstaan. Niet ideaal, maar het zal moeten.

Hardware

Schijven

Over het algemeen raadt de ZimaBoard-gemeenschap gebruikers aan om 2,5 inch schijven te gebruiken. Hun belangrijkste voordeel is dat ze geen 12V-rail nodig hebben om te functioneren. Er zijn meldingen van succesvolle tests met 3,5 inch schijven, dus jouw ervaring kan verschillen. In mijn geval koos ik voor twee 1TB SSD’s. Je kunt ook HDD’s kiezen als je meer capaciteit nodig hebt.

Aansluitingen en 3D-geprinte accessoires

De officiële Y-Splitter wordt sterk aanbevolen voor het aansluiten en voeden van de twee schijven. Er zijn omwegen, zoals het gebruik van USB-naar-SATA stroomadapters. Dit ziet er niet mooi uit, maar het werkt wel. Om alles bij elkaar te houden werkt een 3D-geprinte dubbele HDD-standaard uitstekend. Het eindresultaat is een zeer draagbare en laagprofieloplossing.

Links zijn aan het einde van het artikel toegevoegd. Ik vond deze versie erg compact en praktisch vanwege de kleine omvang. Er bestaan ook diverse 3D-geprinte platen voor rackmontage, als je daar ruimte voor hebt.

ZFS installeren

De ZimaBoard wordt standaard geleverd met Debian. Dit is ook mijn persoonlijke aanbeveling voor een solide distributie die niet in de weg zit of je verrast. Voor andere distributies raadpleeg je de respectievelijke documentatie en ZFS-installatie-instructies.

Voordat je begint, zorg ervoor dat je bij kunt werken naar de nieuwste LTS-release. Maak een back-up van je gegevens zodat het makkelijk is om alles af te breken en opnieuw te beginnen. Documenteer elke stap, zodat het oplossen van problemen eenvoudiger wordt. Bekijk de script commando voor een handige manier om dit te doen.

Gedetailleerde instructies en geavanceerde gebruiksscenario’s zijn gedocumenteerd op https://wiki.debian.org/ZFS dit is de aanbevolen primaire bron voor het opzetten van ZFS.

Vereisten

Zorg ervoor dat HTTPS-repositories toegankelijk zijn:

1 apt install -y lsb-release apt-transport-https

Voeg de Backports-repository toe voor jouw release door /etc/apt/sources.list te bewerken of voeg een nieuw bronnenbestand toe onder ‘/etc/apt/sources.list.d/’:

1 #bepaal codenaam of vervang handmatig hieronder:
2 codenaam=$(lsb_release -cs)
3 #voeg backports-repository toe aan sources list:
4 echo “deb http://deb.debian.org/debian $codename-backports main contrib non-free”|sudo tee /etc/apt/sources.list.d/debian_backports.list && sudo apt update

ZFS-pakketten

Installeer tenslotte, volgens de Debian-documentatie, de nieuwste Linux-headers en de relevante ZFS-pakketten:

1 sudo apt install linux-headers-amd64;sudo apt install -t $codename-backports zfsutils-linux zfs-dkms

“Oh nee – er is iets misgegaan”

Mislukte ZFS-installaties zijn meestal te herleiden tot een oude of verkeerde kernel, of ontbrekende headers. Het is het beste om alle ZFS-gerelateerde pakketten te verwijderen, de geïnstalleerde headers te controleren en de installatiedocumentatie opnieuw te lezen.

1 sudo dpkg -l | egrep ‘linux-image|linux-headers’

Een pool en een bestandssysteem aanmaken

Lijst schijven op basis van ID’s:

1 ls -l /dev/disk/by-id/
2 ls -l /dev/disk/by-id/
3 lrwxrwxrwx 1 root root 9 22 dec 15:29 ata-KINGSTON_SA400S37960G_50026B73818333D1 -> ../../sdb
lrwxrwxrwx 1 root root 9 22 dec 15:29 ata-KINGSTON_SA400S37960G_50026B73818333DB -> ../../sda
4 lrwxrwxrwx 1

En maak een pool aan door de stabiele apparaat-ID’s op te geven, bijvoorbeeld:

1 zpool create $mirror_pool_name mirror ata-KINGSTON_SA400S37960G_50026B73818333D1 ata-KINGSTON_SA400S37960G_50026B73818333DB

Maak een versleuteld bestandssysteem aan:

1 zfs create \
2 -o encryption=on \ # verwijderen indien niet nodig
3 -o keyformat=passphrase -o casesensitivity=mixed \
4 -o acltype=posixacl -o xattr=sa -o dnodesize=auto $mirror_pool_name/$dataset_name

Praktijkvoorbeelden en prestaties

ZimaBoard heeft geen problemen met het draaien van ZFS en biedt voldoende prestaties, waarbij alleen encryptie het CPU-gebruik merkbaar verhoogt. Transcoderen en streamen (bijvoorbeeld met Jellyfin) is ook geen probleem. Het is belangrijk op te merken dat het lezen of schrijven van zeer grote bestanden naar een versleuteld bestandssysteem de CPU zwaar belast. Dit kan invloed hebben op andere taken die op het systeem draaien.

SMB/NFS

Tijdens algemene tests duurde het schrijven van een enkel 12GB-bestand naar de ZFS-mirrorpool ongeveer 5 minuten, waarbij de schijf-I/O de bottleneck was. Het lezen van de ZFS-pool ging veel sneller en nam minder dan de helft van de tijd in beslag. Effectief was de 1Gbps-netwerkverbinding volledig benut. Beide tests werden uitgevoerd naar/van een niet-versleuteld bestandssysteem:

De volgende test toont de grote impact van encryptie op de CPU. Hetzelfde 12GB-bestand werd gelezen van het niet-versleutelde ZFS-bestandssysteem en geschreven naar een versleuteld bestandssysteem. De prestaties zijn nog steeds uitstekend, maar het CPU-gebruik schoot omhoog en bleef gedurende het hele proces erg hoog.

Bronnen en referenties

Conclusie

Vragen of behoefte aan verdere uitleg over een onderdeel van de tutorial? Tyrehl staat klaar om te helpen! Word lid van onze Discord-community om direct contact te maken met Tyrehl en mee te doen aan boeiende discussies. Je nieuwsgierigheid hoeft niet te stoppen bij de tutorial – Tyrehl helpt je graag verder op je ZFS-reis. Word lid van onze Discord-server: [ zimaboard.com/discord]

Zima Campagnecentrum

Meer om te lezen

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.