ZFS -konsepter og tutorial

ZFS -konsepter og tutorial

ZFS: konsepter og opplæring

På din søken etter dataintegritet ved bruk av OpenZFS er uunngåelig. Det ville faktisk være ganske uheldig hvis du bruker noe annet enn ZFS for å lagre verdifulle data. Imidlertid er mange mennesker motvillige til å prøve det. Årsaken til at et filsystem. Ingenting kan være lenger fra sannheten. Å bruke ZFS er like enkelt som det blir. Med en håndfull terminologier, og enda færre kommandoer, er du klar til å bruke ZFS hvor som helst - fra bedriften til ditt hjem/kontor NAS.

I ordene til skaperne av ZFS: “Vi ønsker å gjøre lagring av lagring til systemet ditt så enkelt som å legge til nye RAM -pinner.”

Vi vil se senere på hvordan det blir gjort. Jeg vil bruke FreeBSD 11.1 For å utføre testene nedenfor, er kommandoene og den underliggende arkitekturen like for alle Linux -distribusjonene som støtter OpenZFS.

Hele ZFS -stabelen kan legges ut i følgende lag:

  • Lagringsleverandører - Spinnende disker eller SSD -er
  • VDEVS - Gruppering av lagringsleverandører i forskjellige RAID -konfigurasjoner
  • Zpools - Aggregering av VDEV -er i et enkelt lagringsbassenger
  • Z -Filesystems - Datasett med kule funksjoner som komprimering og reservasjon.

Zpool Create

Til å begynne med kan vi begynne med et oppsett av hvor vi har seks 20 GB -disker Ada [1-6]

$ ls -al /dev /ada?

De Ada0 er der operativsystemet er installert. Resten vil bli brukt til denne demonstrasjonen.

Navnene på diskene dine kan variere avhengig av hvilken type grensesnitt som brukes. Typiske eksempler inkluderer: DA0, ADA0, ACD0 og CD. Ser inn/Devvil gi deg en ide om hva som er tilgjengelig.

EN Zpool er opprettet av Zpool Create kommando:

$ zpool create our firstzpool ada1 ada2 ada3
# Og kjør deretter følgende kommando:
$ zpool status

Vi vil se en fin utgang som gir oss detaljert informasjon om bassenget:

Dette er den enkleste zpoolen uten redundans eller feiltoleranse ... hver disk er sin egen VDEV.

Imidlertid vil du fremdeles få all ZFS -godhet som kontrollsum for hver datablokk som blir lagret, slik at du i det minste kan oppdage om dataene du lagret blir ødelagt.

Filsystems, a.k.Et datasett, kan nå opprettes på toppen av dette bassenget på følgende måte:

$ zfs opprette ourfirstzpool/datasett1

Bruk nå det kjente df -h Kommando eller løp:

$ ZFS -liste

For å se egenskapene til det nyopprettede filsystemet ditt:

Legg merke til hvordan hele plassen som tilbys av de tre diskene (VDEV -ene) er tilgjengelig for filsystemet. Dette vil være sant for alle filsystemene du oppretter på bassenget med mindre vi spesifiserer noe annet.

Hvis du vil legge til en ny disk (VDEV), Ada4, Du kan gjøre det ved å løpe:

$ zpool legg til ourfirstzpool ada4

Nå, hvis du ser tilstanden til filsystemet ditt

Den tilgjengelige størrelsen har nå vokst uten noe ekstra problemer med å vokse partisjonen eller sikkerhetskopiere og gjenopprette dataene på filsystemet.


Virtuelle enheter - VDEVS

VDEV -er er byggesteinene til en zpool, mesteparten av redundans og ytelse avhenger av måten diskene dine er gruppert i disse, såkalte VDEV -er . La oss se på noen av de viktigste typene VDEV -er:

1. Raid 0 eller striper

Hver disk fungerer som sin egen VDEV. Ingen dataredundans, og dataene spredte seg over alle diskene. Også kjent som striping. En enkelt disks fiasko vil bety at hele zpoolen blir gjort ubrukelig. Brukbar lagring er lik summen av alle tilgjengelige lagringsenheter.

Den første zpoolen som vi opprettet i forrige seksjon er en raid 0 eller stripete lagringsarray.

2. Raid 1 eller speil

Data speiles mellom ndisker. Den faktiske kapasiteten til VDEV er begrenset av den rå kapasiteten til den minste disken i den n-Diskarray. Data speiles mellom n disker, dette betyr at du tåler svikt i n-1 disker.

For å lage en speilet matrise, bruk søkeordspeilet:

$ zpool lage tank speil ada1 ada2 ada3

Dataene skrevet til tank Zpool vil bli speilet mellom disse tre diskene, og den faktiske tilgjengelige lagringen er lik størrelsen på den minste disken, som i dette tilfellet er omtrent 20 GB.

I fremtiden kan det være lurt å legge til flere disker i dette bassenget, og det er to mulige ting du kan gjøre. For eksempel zpool tank Har tre disker som speiler data som en enkelt VDEV-speil-0:

Det kan være lurt å legge til ekstra disk, si Ada4, å speile de samme dataene. Dette kan gjøres ved å kjøre kommandoen:

$ zpool vedlegg Tank ADA1 ADA4

Dette vil legge til en ekstra disk til VDEV som allerede har disken ADA1 I den, men ikke øke tilgjengelig lagring.

Tilsvarende kan du løsne stasjoner fra et speil ved å løpe:

$ zpool løsne tank ada4

På den annen side kan det være lurt å legge til en ekstra VDEV for å øke kapasiteten til Zpool. Som kan gjøres ved hjelp av ZPOOL -add -kommandoen:

$ zpool legg til tank speil ada4 ada5 ada6


Ovennevnte konfigurasjon vil tillate data å bli stripet over VDEVS Mirror-0 og Mirror-1. Du kan miste 2 disker per VDEV, i dette tilfellet, og dataene dine vil fortsatt være intakte. Total brukbar plass øker til 40 GB.

3. RAID-Z1, RAID-Z2 og RAID-Z3

Hvis en VDEV er av Type RAID-Z1, må den bruke minst 3 disker og VDEV tåler bortgangen til en bare av disse diskene. RAID-Z-konfigurasjoner tillater ikke å feste disker direkte på en VDEV. Men du kan legge til flere VDEV -er ved hjelp av Zpool Legg til, slik at bassengets kapasitet kan fortsette å øke.

RAID-Z2 vil kreve minst 4 disker per VDEV og tåler opptil 2 diskfeil, og hvis den tredje disken mislykkes før de to diskene blir erstattet, går dine verdifulle data tapt. Det samme følger for RAID-Z3, som krever minst 5 disker per VDEV, med opptil 3 disker av feiltoleranse før utvinning blir håpløs.

La oss lage et Raid-Z1-basseng og vokse det:

$ zpool lage tank raidz1 ada1 ada2 ada3

Bassenget bruker tre 20 GB -disker som gjør 40 GB av det tilgjengelig for brukeren.

Å legge til en annen VDEV vil kreve 3 ekstra disker:

$ zpool add Tank RAIDZ1 ADA4 ADA5 ADA6


De totale brukbare dataene er nå 80 GB, og du kan miste opptil 2 disker (en fra hver VDEV) og fremdeles ha et håp om utvinning.

Konklusjon

Nå vet du nok om ZFS til å importere alle dataene dine til det med tillit. Herfra kan du slå opp forskjellige andre funksjoner som ZFS gir som å bruke høyhastighets NVME-er for å lese og skrive hurtigbuffer, ved å bruke innebygd komprimering for datasettene dine, og i stedet for å bli overveldet av alle tilgjengelige alternativer bare se etter hva du trenger for din Spesiell bruk-sak.

I mellomtiden er det noen flere nyttige tips angående valg av maskinvare du bør følge:

  1. Bruk aldri maskinvare RAID-CONTROLLER med ZFS.
  2. Feilkorrigering av RAM (ECC) anbefales, men ikke obligatorisk
  3. Data deduplication -funksjonen bruker mye minne, bruk komprimering i stedet.
  4. Data redundans er ikke et alternativ for sikkerhetskopi. Har flere sikkerhetskopier, lagre de sikkerhetskopiene ved hjelp av ZFS!