ZFS-guide: Installera och optimera ZFS-filsystemet på ZimaBoard

Eva Wong är Teknisk skribent och den boende fixaren på ZimaSpace. En livslång nörd med en passion för hemma-labb och öppen källkod, hon specialiserar sig på att översätta komplexa tekniska koncept till tillgängliga, praktiska guider. Eva tror att självhosting ska vara roligt, inte skrämmande. Genom sina handledningar ger hon gemenskapen verktyg att avmystifiera hårdvaruinstallationer, från att bygga sin första NAS till att bemästra Docker-containrar.

Hälsningar ZimaBoard-entusiaster! Idag är vi glada att kunna erbjuda en omfattande handledning av vår engagerade communitymedlem Tyrehl. Tyrehl guidar dig inte bara skickligt genom installationsprocessen av ZFS på ZimaBoard, utan ger också en helhetsöversikt av ZimaBoard själv.

Från insikter i communityn till detaljerade installationsinstruktioner är Tyrehl’s artikel din kompletta resurs för att låsa upp hela potentialen i både ZFS och ZimaBoard. Våra varmaste tack går till Tyrehl för detta berikande bidrag som bygger broar mellan communityengagemang och teknisk kunskap. Låt oss tillsammans ge oss ut på denna resa och höja din ZimaBoard-upplevelse. Trevlig utforskning!

Introduktion

Single-board-datorer (SBC) är mycket populära i hemmaservermiljöer, och under de senaste åren har de även gjort framsteg i professionella miljöer och industrin. Numera finns ett stort ekosystem centrerat kring edge computing och små formfaktorsystem.

Anständig beräkningskraft är lätt att få, med olika SBC:er som erbjuder 4 kärnor och gott om RAM för olika applikationer. Där de vanligtvis brister är på lagringsfronten. SD-kort och flashlagring i allmänhet är oftast långsamma och känsliga för fel vid skrivintensiva scenarier. Diskar anslutna via USB erbjuder inte samma tillförlitlighet, och att välja en bra USB-till-SATA-adapter är inte heller trivialt.

ZimaBoard har ett ess i rockärmen. Två SATA-portar, dubbla 100/1000 Ethernet och olika PCIe-förlängningsalternativ gör det till ett mycket flexibelt system.

Var går gränserna för vad en SBC realistiskt kan åstadkomma, och varför är lagring alltid ett sådant problem? Var finns den gyllene medelvägen mellan en kompakt maskin som inte behärskar någon uppgift särskilt väl, och ett kabeltrasselmonster med 6 SATA-diskar som kräver en extern ATX-nätaggregat?

Denna artikel syftar till att utforska ZimaBoards styrkor och hur de kan utnyttjas för att göra god nytta. Utan att sluta med en fånig och opraktisk lösning.

Motivation

Som nämnts tidigare är mycket beräkningskraft lätt att distribuera och använda. Minne är också billigt, så lagring blir snabbt den begränsande faktorn. Alla som har hanterat infrastruktur är nog medvetna om detta. Ta bara en titt på k8s nätverkslagringsalternativ, de olika plattformarna som påstår sig erbjuda S3-kompatibla API:er till din kluster, och hur irriterande de är att distribuera och driva korrekt.

ZimaBoard, med sina utmärkta I/O-möjligheter, är en utmärkt kandidat för en NAS i litet format eller en allmän server med tålig lokal lagring. Och här ligger utmaningen – hur kan vi erbjuda felfri lagring i ett litet format, på en plattform som "bara fungerar" och är operativt tråkig.

På hårdvarusidan begränsar vi oss till att köra med bara två 2,5-tums diskar från ström- och SATA-kontakterna på baksidan av ZimaBoard. Detta ger en mycket kompakt lösning utan behov av extern strömförsörjning och expansionskort.

Mindre är mer

Att distribuera mycket lagring är bra, men att ha felfri lagring är ännu bättre. För det behöver vi ett mer avancerat filsystem som erbjuder lagringsredundans.

ZFS erbjuder mjukvaru-RAID-funktioner som överträffar de flesta hårdvaru-RAID-kontroller. Det är ett verkligt utmärkt filsystem med många andra anmärkningsvärda funktioner som inkrementella snapshots, synkronisering mellan fjärrsystem och lagringspooler samt kryptering.

Fokus idag är helt på att köra diskarna redundant. Normalt används ZFS för att hantera en RAIDZ-array. Men eftersom vi begränsat oss till två diskar finns bara ett relevant alternativ – ZFS spegelpool. Detta halverar effektivt lagringskapaciteten, men ger samtidigt bättre redundans och möjligheten att klara av ett enda diskfel. Inte idealiskt, men det får duga.

Hårdvara

Diskar

Generellt rekommenderar ZimaBoard-communityn användare att hålla sig till 2,5-tums diskar. Deras största fördel är att de inte behöver en 12V-skena för att fungera. Det finns rapporter om lyckade tester med 3,5-tums diskar, så resultat kan variera. I mitt fall valde jag två 1TB SSD:er. Du kan också välja HDD:er om du behöver mer kapacitet.

Kontakter och 3D-utskrivna tillbehör

Den officiella Y-Splittern rekommenderas starkt för att koppla ihop och strömförsörja de två diskarna. Det finns lösningar som att använda USB-till-Sata strömadaptrar. Det ser fult ut, men det fungerar. För att hålla allt samlat fungerar ett 3D-utskrivet dubbelt HDD-stativ utmärkt. Slutresultatet blir ett mycket portabelt och lågprofils-paket.

Länkar finns i slutet av artikeln. Jag fann denna version mycket kompakt och praktisk tack vare den lilla storleken. Det finns också olika 3D-utskrivna plattor för rackmontering, om du har plats för det.

Installera ZFS

ZimaBoard levereras som standard med Debian. Detta är också min personliga rekommendation för en stabil distribution som inte ställer till problem eller överraskar dig. För andra distributioner, konsultera respektive dokumentation och ZFS-installationsinstruktioner.

Innan du börjar, kom ihåg att uppdatera till den senaste LTS-versionen om du kan. Säkerhetskopiera dina data så att det är enkelt att riva ner och börja om. Och dokumentera varje steg, så blir felsökningen enklare. Titta på skript kommando för ett smidigt sätt att göra detta.

Detaljerade instruktioner och avancerade användningsfall finns dokumenterade på https://wiki.debian.org/ZFS detta är den rekommenderade primära källan för att installera ZFS.

Förutsättningar

Se till att HTTPS-repositorier kan nås:

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

Lägg till Backports-repot för din version genom att redigera /etc/apt/sources.list eller lägg till en ny källfil under ‘/etc/apt/sources.list.d/’:

1 #bestäm kodnamn eller ersätt manuellt nedan:
2 kodnamn=$(lsb_release -cs)
3 #lägg till backports-repo i källistan:
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-paket

Slutligen, enligt Debians dokumentation, installera de senaste Linux-headers och relevanta ZFS-paket:

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

”Åh nej – något gick fel”

Misslyckande att installera ZFS kan oftast spåras till en gammal eller felaktig kärna, eller saknade headers. Det är bäst att rensa alla ZFS-relaterade paket, kontrollera installerade headers och läsa installationsdokumentationen igen.

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

Skapa en pool och ett filsystem

Lista diskar efter ID:

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

Och skapa en pool genom att specificera stabila enhets-ID:n, t.ex.:

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

Skapa ett krypterat filsystem:

1 zfs create \
2 -o encryption=on \ # ta bort om onödigt
3 -o keyformat=passphrase -o casesensitivity=mixed \
4 -o acltype=posixacl -o xattr=sa -o dnodesize=auto $mirror_pool_name/$dataset_name

Verkliga användningsscenarier och prestanda

ZimaBoard har inga problem med att köra ZFS och har gott om prestanda, där endast kryptering märkbart påverkar CPU-användningen. Transkodning och streaming (t.ex. med Jellyfin) är inte heller något problem. Det är värt att notera att läsning eller skrivning av mycket stora filer till ett krypterat filsystem kommer att belasta CPU:n kraftigt. Detta kan påverka andra arbetsbelastningar som körs på systemet.

SMB/NFS

Under allmän testning tog det cirka 5 minuter att skriva en enda 12GB-fil till ZFS-spegelpoolen, där disk-I/O var flaskhalsen. Läsning från ZFS-poolen gick mycket snabbare och tog mindre än hälften av tiden. Effektivt var 1Gbps-nätverksanslutningen helt maxad. Båda testerna gjordes till/från ett okrypterat filsystem:

Nästa test visar den stora påverkan kryptering har på CPU:n. Samma 12GB-fil lästes från det okrypterade ZFS-filsystemet och skrevs till ett krypterat. Prestandan är fortfarande utmärkt, men CPU-användningen steg kraftigt och förblev mycket hög under hela processen.

Resurser och referenser

Slutsats

Har du frågor eller behöver ytterligare förtydliganden om någon del av handledningen? Tyrehl finns här för att hjälpa till! Gå med i vår Discord-community för att komma i direkt kontakt med Tyrehl och delta i insiktsfulla diskussioner. Din nyfikenhet behöver inte sluta med handledningen – Tyrehl är redo att assistera dig på din ZFS-resa. Gå med i vår Discord-server: [ zimaboard.com/discord]

Zima Kampanjnav

Mer att läsa

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.