Hva er Raid-Z?

Hva er Raid-Z?
Filsystemer er eldre enn UNIX selv. Og helt siden vi begynte å digitalisere livene våre på bånd, har disker og ssd. Det er av maskinvarefeil. Data lagret på disker er ofte dyrere enn selve diskene, og disse dataene trenger all redundans vi kan mønstre.

Raid-Z er et av de fineste verktøyene som vil sikre at dataene dine lever så feil som mulig på selv den billigste samlingen av disker. Det er en del av OpenZFS. Du kan forstå det grunnleggende om OpenZF -er i denne korte artikkelen hvis du ikke har hørt om den før. Det er en åpen kildekode, enterprise -karakterfilsystem tilgjengelig på Linux, FreeBSD, Mac OS X, Smartos, Illumos og andre store OSS.

Men først ... hva er raid?

Raid står for overflødig rekke uavhengige (billige) disker. Dette refererer til bransjens bred praksis med å lagre data ikke bare på en disk, men på tvers av flere disker, slik at selv når det er en diskfeil, kan dataene rekonstrueres fra andre disker. Måten data er spredt over disker på er forskjellig for forskjellige typer oppsigelser i samsvar med dette heter Raid 0, RAID 1, etc. Vi kommer ikke til å takle dem her. Vi vil fokusere på en RAIDZ som er spesifikk for OpenZFS.

RAID (og også RAID-Z) er ikke det samme som å skrive kopier av data til en sikkerhetskopi-disk. Når du har to eller flere disker som er satt opp i RAID, skrives dataene til dem samtidig, og alle diskene er aktive og online. Dette er grunnen til at Raid er forskjellig fra sikkerhetskopiering og enda viktigere hvorfor Raid er ikke en erstatning for sikkerhetskopiering. Hvis hele serveren din brenner ut, kan alle online disker gå med serveren, men sikkerhetskopier vil spare dagen din. Tilsvarende, hvis det er en enkelt diskfeil og noe ikke ble sikkerhetskopiert, fordi du ikke kan gjøre det hver dag, kan Raid hjelpe deg med å hente denne informasjonen.

Sikkerhetskopiering blir med jevne mellomrom tatt kopier av relevant data og raid er en sanntidsredundans. Det er flere måter data lagres i tradisjonelle RAID -systemer, men vi vil ikke gå inn på dem her. Her ville vi dykke dypt ned i Raidz, som er en av de kuleste funksjonene i OpenZFs.

En siste ting før vi kommer i gang, oppfordrer tradisjonelt raid noen ganger til å bruke dedikerte maskinvareenheter til å gjøre raidet. Dette etterlater operativsystemet og filsystemet uvitende om RAID -mekanismene som er på plass. Men ofte møter RAID -kortet (den dedikerte maskinvaren) seg selv en feil som etterlater hele diskarrayen i det vesentlige ubrukelig.

For å unngå dette, Du må alltid prøve å bruke OpenZFs uten maskinvareangrep.

RAID-Z1, RAID-Z2, RAID-Z3

ZFS kombinerer oppgavene til volumbehandler og filsystemer. Dette betyr at du kan spesifisere enhetsnodene for diskene dine mens du oppretter et nytt basseng og ZFS vil kombinere dem til ett logisk basseng, og så kan du lage datasett for forskjellige bruksområder som /hjem, /usr osv. På toppen av det volumet.

Å sette opp Raid-Z ville kreve minst 3 eller flere disker. Du kan ikke bruke mindre enn tre disker. Lagringsleverandøren kan være noe annet for nettverkstilkoblet lagring, virtuell blokkeringsenhet osv., Men la oss holde oss til tre disker med like store størrelser som et enkelt eksempel.

De tre diskene kan kombineres til en virtuell enhet (VDEV). Dette er byggesteinen til en zpool. Hvis du begynner med bare 3 disker, har du 1 VDEV i ZPOOL. Du kan ha 2 VDEV -er med 6 disker og så videre.

Anta at du har en 1 GB -fil som du vil lagre på dette bassenget. Raid-Z deler den i to like biter på 512 MB og utfører deretter en matematisk operasjon mellom dem som genererer en tredje del av 512 MB (kalt Paritetsblokk). De tre biter blir deretter skrevet inn i tre separate VDEV -er. Så filen ender opp med å ta 1.5 GB plass totalt.

Fordelen er imidlertid at hvis en av disken mislykkes, sier den første delen er tapt, så kan den andre delen og paritetsblokken brukes til å gjenskape den første. Tilsvarende, hvis den andre delen går tapt, kan den første og tredje brukes til å gjenskape den andre.

Filene dine bruker 50% mer plass enn nødvendig, men du tåler feilen på en disk per VDEV. Dette er RAID-Z1.

Men et ZFS -basseng kan vokse, og etter hvert vil du trenge mer plass. Vel, du kan ikke legge til flere disker direkte til en VDEV (den funksjonen foreslås og kan godt være under utvikling akkurat nå). Imidlertid kan du legge til en VDEV. Dette betyr at du kan legge til disker i sett med tre og behandle hvert nytt sett som en enkelt logisk VDEV.

Du tåler nå en enkelt diskfeil i denne nye VDEV og en enkelt diskfeil i den eldre. Men hvis mer enn en disk mislykkes innenfor en enkelt VDEV, er det ikke gjenopprettbar. Hele bassenget ditt blir gjort ubrukelig til og med de sunnere VDEV -ene.

Dette er en virkelig overforenklet modell. Filer blir aldri delt nøyaktig i halvdeler, men data blir behandlet som blokker med faste lengder. Dessuten kan du bruke mer enn 3 disker (men 3 er minimum) per VDEV og RAID-Z1 vil sikre at hver unike datablokk blir skrevet slik at den kan komme seg etter feil på en enkelt disk i per VDEV. Heldigvis trenger du ikke å bekymre deg for disse interne detaljene. Det er ZFS 'ansvar. Når bassenget er satt opp, er data automatisk spredt over dem på den mest optimale måten.

Feiltoleransen er fremdeles begrenset til en diskfeil per VDEV. For å gå utover det må vi gå til Raid-Z2. RAID-Z2 fungerer på en lignende måte, men det skaper to paritetsblokker og to datablokker fra et enkelt informasjonsstykke. Dette gjør at den tåler opptil 2 diskfeil per VDEV. Også en VDEV må ha minst 4 disker hvis det kommer til å implementere et RAID-Z2-oppsett.

Tilsvarende krever RAID-Z3 minst 5 disker per VDEV og tåler svikt i 3 av dem. RAID-Z3 er ikke på langt nær så romeffektiv som RAID-Z2 som ikke er så effektiv når det gjelder rom som RAID-Z1.

Konklusjon

Med Raid-Z ser vi en avveining mellom den brukbare plassen som tilbys av individuelle disker og påliteligheten som samlingen av slike disker kan tilby. Med større antall disker øker sannsynligheten for at flere disker svikter samtidig også.

Den beste måten å motvirke det på er å bruke en effektiv RAID-Z-strategi som tilbyr pålitelighet så vel som det beste smellet for pengene dine. Gi oss beskjed hvis du fant denne opplæringen nyttig, eller hvis du har spørsmål om Raid-Z!