Hopp til innhald

Fagstoff

Filsystem, pools og VDevs i TrueNAS

NAS (Network Attached Storage) leverer fillagringstenester til einingar i lokale nettverk. Mengda data og behovet for redundans gjer at NAS-serverar som oftast har fleire lagringseiningar som arbeider saman. Oppsett av filsystem og pools av fleire lagringseiningar er derfor naudsynt.
Korridor med serverskap på begge sider. I skapa er lagringseiningar stabla i tette rader. Nedst i korridoren er ein skjerm og ei kontrollflate for systemet. Foto.
Opne bilete i eit nytt vindauge

Filsystem for kvar lagringseining

For at operativsystem skal kunne lese frå og skrive data til tilkopla lagringseiningar (som harddisk, SSD og minnepinne), må operativsystemet vite korleis dataa er strukturerte på lagringseininga. Reglane for dette kallar vi eit filsystem, og dette ligg lagra på eit fast område på kvar enkelt lagringseining.

Vi har ulike filsystem for ulike bruksområde og operativsystem. Nokre filsystem er støtta på tvers av ulike operativsystem, og lagringseiningar med desse filsystema kan dermed brukast. Andre er avgrensa til bestemde operativsystem, og lagringseiningar med desse filsystema kan berre brukast frå dei støtta operativsystema.

OpenZFS

TrueNAS bruker filsystemet OpenZFS, som ofte blir forkorta til ZFS. Dette er eit ope kjeldekode-filsystem med røter tilbake til operativsystemet Oracle Solaris, og det blir i dag brukt av mange Unix-liknande operativsystem.

ZFS er meir enn berre eit filsystem, det inkluderer òg handtering av logiske volum (Volume manager). Dette gjer at ZFS i tillegg til å styre enkeltdiskar kan styre grupper av diskar som arbeider saman, altså VDevs, som står for "Virtual Devices". ZFS kan fordele arbeid mellom fleire VDevs i eit pool. Dette gir moglegheit for avansert funksjonalitet som er nyttig for bruk i NAS-serverar.

Oppbygging av ZFS si volumhandtering

I større lagringssystem må fleire fysiske lagringseiningar, som harddiskar og SSD-ar, arbeide saman for å få nok lagringsplass, låg forseinking og høg overføringshastigheit. ZFS si volumhandtering kan hjelpe mykje med dette.

Nedst i ZFS har vi lagringseiningane. Vanlegvis er dette harddiskar med spinnande plater der dataa blir lagra magnetisk.

Fleire harddiskar kan setjast til å arbeide saman i eit VDev. VDev-et handterer redundans gjennom spegling av diskar eller RAID-Z på ein liknande måte som RAID (meir om RAID-Z lenger ned på sida). Diskane som er med i eit VDev, må ha den same mengde lagringsplass og bør òg vere like raske.

Fleire VDevs kan så setjast saman i eit pool. Pools handterer fordeling av arbeid mellom VDevs og støttar òg bruk av eigne diskar (som oftast SSD-ar) for å auke skrivehastigheit til lagringssystemet eller raskare og lågare forseinking ved lesejobbar.

Eit system kan ha fleire pools, men desse fungerer sjølvstendig frå kvarandre. I dømet under kan du sjå ein modell av dette. I dømet er det tolv harddiskar (seks av dei er på 8 TB og resten er på 4 TB). Det er dermed naudsynt å setje opp to VDevs. Kvart VDev blir konfigurert separat når det gjeld grad av redundans, altså når det gjeld kva RAID-Z-variant som blir brukt.

Modell som viser tre boksar med overskrifta "ZFS pool". Seks harddiskar er saman i ein boks merkt "VDev0", seks andre harddiskar av ein annan storleik er i ein boks merkt "VDev1". Det er ein tredje boks merkt "Støtte-VDev". Denne har cache- og log-SSD-ar i seg. Illustrasjon.
Opne bilete i eit nytt vindauge

ZFS RAID-Z

ZFS har sin eigen variant av RAID (Redundant Array of Independent Disks) som heiter RAID-Z. RAID-Z blir brukt ved oppsett av VDevs. Behovet vil avgjere kva RAID-Z-variant som blir vald for kvart pool.

ZFS RAID-Z

Næraste RAID-variant

Skildring

RAID-Z0 eller stripe

RAID 0

Striping inneber at halvparten av dataa blir lagd på ein disk, og at den andre halvparten blir lagd på ein annan disk. Det er ingen redundans i tilfelle feil.

Mirror

RAID 1

Spegling inneber at det blir laga komplette kopiar av dataa på to eller fleire diskar. Så lenge ein disk i speglinga består, er dataa tilgjengelege.

RAID-Z1 eller RAID-Z

RAID 5

Denne varianten toler tap av ein disk utan tap av dataa, lagringsplass tilsvarande ein disk går med til å skape redundans.

RAID-Z2

RAID 6

Denne varianten toler tap av to diskar utan tap av dataa, lagringsplass tilsvarande to diskar går med til å skape redundans.

RAID-Z3

RAID 7

Denne varianten toler tap av tre diskar utan tap av dataa, lagringsplass tilsvarande tre diskar går med til å skape redundans.

Støtte-VDevs

For lagring av store mengder data er det billegast å bruke tradisjonelle trege harddiskar (med spinnande plater) for den varige datalagringa. ZFS-pools kan utvidast med støtte-VDevs, som oftast SSD-ar, for raskare skrive- eller lesehastigheit.

  • Cache-SSD-ar gir auka lesehastigheit frå NAS. Dette blir gjort ved at SSD-ar beheld kopiar av dei mest brukte filene og leverer desse direkte utan at harddiskane må spinne opp eller finne fram til riktig fysisk plassering på diskplata for å finne filene.

  • Log-SSD-ar gir auka skrivehastigheit til NAS. Dette blir gjort ved at SSD fungerer som mellomstasjon for innkommande data. Ved oppsett av log er det vanleg å bruke to SSD-ar som er sette opp med spegling. Dette sikrar redundans i tilfelle den eine SSD-en har ein defekt eller blir øydelagd.

Relatert innhald

CC BY-SASkrive av Tron Bårdgård.
Sist fagleg oppdatert 05.07.2021

Læringsressursar

Oppsett av TrueNAS 12