Hopp til innhold

Fagstoff

Filsystemer, pools og VDevs i TrueNAS

NAS (Network Attached Storage) leverer fillagringstjenester til enheter i lokale nettverk. Mengden data og behovet for redundans gjør at NAS-servere som oftest har flere lagringsenheter som arbeider sammen. Oppsett av filsystemer og pools av flere lagringsenheter er derfor nødvendig.
Korridor med serverskap på begge sider. I skapene er lagringsenheter stablet i tette rader. Nederst i korridoren er en skjerm og en kontrollflate for systemet. Foto.
Åpne bilde i et nytt vindu

Filsystem for hver lagringsenhet

For at operativsystemer skal kunne lese fra og skrive data til tilkoblede lagringsenheter (som harddisk, SSD og minnepinne), må operativsystemet vite hvordan dataene er strukturert på lagringsenheten. Reglene for dette kaller vi et filsystem, og dette ligger lagret på et fast område på hver enkelt lagringsenhet.

Vi har forskjellige filsystemer for forskjellige bruksområder og operativsystemer. Noen filsystemer er støttet på tvers av forskjellige operativsystemer, og lagringsenheter med disse filsystemene kan dermed brukes. Andre er begrenset til bestemte operativsystemer, og lagringsenheter med disse filsystemene kan kun brukes fra de støttede operativsystemene.

OpenZFS

TrueNAS bruker filsystemet OpenZFS, som ofte blir forkortet til ZFS. Dette er et åpent kildekode-filsystem med røtter tilbake til operativsystemet Oracle Solaris, og det brukes i dag av mange Unix-lignende operativsystemer.

ZFS er mer enn bare et filsystem, det inkluderer også håndtering av logiske volumer (Volume manager). Dette gjør at ZFS i tillegg til å styre enkeltdisker kan styre grupper av disker som arbeider sammen, altså VDevs, som står for "Virtual Devices". ZFS kan fordele arbeid mellom flere VDevs i et pool. Dette gir mulighet for avansert funksjonalitet som er nyttig for bruk i NAS-servere.

Oppbygging av ZFS sin volumhåndtering

I større lagringssystemer må flere fysiske lagringsenheter, som harddisker og SSD-er, arbeide sammen for å få nok lagringsplass, lav forsinkelse og høy overføringshastighet. ZFS sin volumhåndtering kan hjelpe mye med dette.

Nederst i ZFS har vi lagringsenhetene. Vanligvis er dette harddisker med spinnende plater der dataene lagres magnetisk.

Flere harddisker kan settes til å arbeide sammen i et VDev. VDev-et håndterer redundans gjennom speiling av disker eller RAID-Z på en lignende måte som RAID (mer om RAID-Z lenger ned på siden). Diskene som er med i et VDev, må ha samme mengde lagringsplass og bør også være like raske.

Flere VDevs kan så settes sammen i et pool. Pools håndterer fordeling av arbeid mellom VDevs og støtter også bruk av egne disker (som oftest SSD-er) for å øke skrivehastighet til lagringssystemet eller raskere og lavere forsinkelse ved lesejobber.

Et system kan ha flere pools, men disse fungerer selvstendig fra hverandre. I eksempelet under kan du se en modell av dette. I eksempelet er det tolv harddisker (seks av dem er på 8 TB og resten er på 4 TB). Det er dermed nødvendig å sette opp to VDevs. Hvert VDev konfigureres separat når det gjelder grad av redundans, altså når det gjelder hvilken RAID-Z-variant som blir brukt.

Modell som viser tre bokser med overskriften "ZFS pool". Seks harddisker er sammen i en boks merket "VDev0", seks andre harddisker av en annen størrelse er i en boks merket "VDev1". Det er en tredje boks merket "Støtte-VDev". Denne har cache- og log-SSD-er i seg. Illustrasjon.
Åpne bilde i et nytt vindu

ZFS RAID-Z

ZFS har sin egen variant av RAID (Redundant Array of Independent Disks) som heter RAID-Z. RAID-Z brukes ved oppsett av VDevs. Behovet vil avgjøre hvilken RAID-Z-variant som blir valgt for hvert pool.

ZFS RAID-Z

Nærmeste RAID-variant

Beskrivelse

RAID-Z0 eller stripe

RAID 0

Striping innebærer at halvparten av dataene blir lagt på en disk, og at den andre halvparten legges på en annen disk. Det er ingen redundans i tilfelle feil.

Mirror

RAID 1

Speiling innebærer at det lages komplette kopier av dataene på to eller flere disker. Så lenge en disk i speilingen består, er dataene tilgjengelige.

RAID-Z1 eller RAID-Z

RAID 5

Denne varianten tåler tap av en disk uten tap av dataene, lagringsplass tilsvarende en disk går med til å skape redundans.

RAID-Z2

RAID 6

Denne varianten tåler tap av to disker uten tap av dataene, lagringsplass tilsvarende to disker går med til å skape redundans.

RAID-Z3

RAID 7

Denne varianten tåler tap av tre disker uten tap av dataene, lagringsplass tilsvarende tre disker går med til å skape redundans.

Støtte-VDevs

For lagring av store mengder data er det billigst å bruke tradisjonelle trege harddisker (med spinnende plater) for den varige datalagringen. ZFS-pools kan utvides med støtte-VDevs, som oftest SSD-er, for raskere skrive- eller lesehastighet.

  • Cache-SSD-er gir økt lesehastighet fra NAS. Dette gjøres ved at SSD-er beholder kopier av de mest brukte filene og leverer disse direkte uten at harddiskene må spinne opp eller finne fram til riktig fysisk plassering på diskplaten for å finne filene.

  • Log-SSD-er gir økt skrivehastighet til NAS. Dette gjøres ved at SSD fungerer som mellomstasjon for innkommende data. Ved oppsett av log er det vanlig å bruke to SSD-er som er satt opp med speiling. Dette sikrer redundans i tilfelle den ene SSD-en har en defekt eller blir ødelagt.

Relatert innhold

CC BY-SASkrevet av Tron Bårdgård.
Sist faglig oppdatert 05.07.2021

Læringsressurser

Oppsett av TrueNAS 12