ZFS

Wat is RAID-Z?

Wat is RAID-Z?
Bestandssystemen zijn ouder dan UNIX zelf. En sinds we begonnen met het digitaliseren van ons leven op tapes, disks en SSD's, is er één grote bedreiging geweest. Dat is een hardwarefout. Gegevens die op schijven zijn opgeslagen, zijn vaak duurder dan de schijven zelf en deze gegevens hebben alle redundantie nodig die we kunnen verzamelen.

RAID-Z is een van de beste tools die ervoor zorgt dat uw gegevens zo foutloos mogelijk blijven, zelfs op de goedkoopste verzameling schijven. Het is een onderdeel van OpenZFS. Je kunt de basisprincipes van OpenZFS in dit korte artikel begrijpen als je er nog nooit van hebt gehoord. Het is een open source, enterprise-grade bestandssysteem beschikbaar op Linux, FreeBSD, Mac OS X, SmartOS, Illumos en andere grote besturingssystemen.

Maar eerst... wat is RAID?

RAID staat voor Redundant Array of Independent (Inexpensive) Disks. Dit verwijst naar de industriebrede praktijk om gegevens niet alleen op één schijf maar op meerdere schijven op te slaan, zodat zelfs wanneer er een schijfstoring is, de gegevens kunnen worden gereconstrueerd vanaf andere schijven. De manier waarop gegevens over schijven worden verspreid, verschilt voor verschillende soorten redundanties, daarom worden ze RAID 0, RAID 1, enz. genoemd. We gaan ze hier niet behandelen. We zouden ons concentreren op een RAIDZ die specifiek is voor OpenZFS.

RAID (en ook RAID-Z) is niet hetzelfde als het schrijven van kopieën van gegevens naar een back-upschijf. Wanneer u twee of meer schijven in RAID hebt ingesteld, worden de gegevens er tegelijkertijd naar geschreven en zijn alle schijven actief en online. Dit is de reden waarom RAID anders is dan back-ups en, nog belangrijker, waarom RAID is geen vervanging voor back-ups. Als je hele server uitvalt, kunnen alle online schijven bij de server passen, maar back-ups zullen je dag redden. Evenzo, als er een enkele schijf uitvalt en er is geen back-up gemaakt van iets, omdat u het niet elke dag kunt doen, dan kan RAID u helpen die informatie terug te halen.

Er worden periodiek back-ups gemaakt van relevante gegevens en RAID is een realtime redundantie. Er zijn verschillende manieren waarop gegevens worden opgeslagen in traditionele RAID-systemen, maar daar gaan we hier niet op in. Hier zouden we diep in RAIDZ duiken, wat een van de coolste functies van OpenZFS is.

Een laatste ding voordat we beginnen, traditionele RAID moedigt soms het gebruik van speciale hardware-apparaten aan om de RAID te doen. Hierdoor zijn het besturingssysteem en het bestandssysteem niet op de hoogte van de RAID-mechanismen die aanwezig zijn. Maar vaak ondervindt de RAID-kaart (de speciale hardware) zelf een storing, waardoor uw hele schijfarray in wezen onbruikbaar wordt.

Om dit te voorkomen, je moet altijd proberen OpenZFS te gebruiken zonder hardware RAID-controller.

RAID-Z1, RAID-Z2, RAID-Z3

ZFS combineert de taken van volumebeheer en bestandssystemen. Dit betekent dat u de apparaatknooppunten voor uw schijven kunt specificeren terwijl u een nieuwe pool maakt en ZFS ze zal combineren in één logische pool en dan kunt u datasets maken voor verschillende toepassingen zoals /home, /usr, enz. bovenop dat volume.

Voor het instellen van RAID-Z zijn minimaal 3 of meer schijven nodig. Je kunt niet minder dan drie schijven gebruiken. De opslagprovider kan iets anders zijn, ook netwerkgekoppelde opslag, virtueel blokapparaat, enz., maar laten we als eenvoudig voorbeeld bij drie schijven van gelijke grootte blijven.

De drie schijven kunnen worden gecombineerd tot een virtueel apparaat (vdev). Dit is de bouwsteen van een zpool. Als je begint met slechts 3 schijven, heb je 1 vdev in je zpool. U kunt 2 vdev's hebben met 6 schijven enzovoort.

Stel dat u een bestand van 1 GB heeft dat u in deze pool wilt opslaan. RAID-Z splitst het op in twee gelijke delen van 512 MB en voert vervolgens een wiskundige bewerking tussen hen uit die een derde deel van 512 MB genereert (de zogenaamde pariteitsblok). De drie brokken worden dan geschreven in drie afzonderlijke vdevs. Dus het bestand neemt uiteindelijk 1.5 GB aan ruimte in totaal.

Het voordeel is echter dat, als een van de schijven faalt, bijvoorbeeld het eerste stuk verloren is gegaan, het tweede stuk en het pariteitsblok kunnen worden gebruikt, de eerste opnieuw maken. Evenzo, als het tweede stuk verloren gaat, kunnen de eerste en derde worden gebruikt om de tweede opnieuw te maken.

Uw bestanden nemen 50% meer ruimte in beslag dan nodig is, maar u bent bestand tegen het falen van één schijf per vdev. Dit is RAID-Z1.

Maar een ZFS-pool kan groeien en uiteindelijk heb je meer ruimte nodig. Nou, je kunt niet meer schijven rechtstreeks aan een vdev toevoegen (die functie wordt voorgesteld en zou op dit moment heel goed in ontwikkeling kunnen zijn). U kunt echter een vdev . toevoegen. Dit betekent dat u schijven in sets van drie kunt toevoegen en elke nieuwe set kunt behandelen als een enkele logische vdev.

U kunt nu een enkele schijffout tolereren in deze nieuwe vdev en een enkele schijffout in de oudere. Maar als er meer dan één schijf uitvalt binnen een enkele vdev, kan dat niet worden hersteld. Je hele zwembad wordt onbruikbaar gemaakt, zelfs de gezondere vdevs.

Dit is echt een te vereenvoudigd model. Bestanden worden nooit precies in tweeën gesplitst, maar gegevens worden behandeld als blokken met een vaste lengte. Bovendien kunt u meer dan 3 schijven gebruiken (maar 3 is het minimum) per vdev en RAID-Z1 zal ervoor zorgen dat elk uniek gegevensblok zo wordt geschreven dat het kan herstellen van een storing van een enkele schijf in per vdev. Gelukkig hoef je je geen zorgen te maken over deze interne details. Dat is de verantwoordelijkheid van ZFS. Zodra de pool is ingesteld, worden de gegevens er automatisch op de meest optimale manier over verspreid.

De fouttolerantie is nog steeds beperkt tot één schijffout per vdev. Om verder te gaan, moeten we naar RAID-Z2 . gaan. RAID-Z2 werkt op een vergelijkbare manier, maar het creëert twee pariteitsblokken en twee datablokken uit één stuk informatie. Hierdoor is het bestand tegen maximaal 2 schijfstoringen per vdev. Ook moet een vdev minimaal 4 schijven hebben als het een RAID-Z2-opstelling gaat implementeren.

Evenzo vereist RAID-Z3 ten minste 5 schijven per vdev en is bestand tegen het falen van 3 ervan. RAID-Z3 is lang niet zo ruimtebesparend als RAID-Z2, wat qua ruimte niet zo efficiënt is als RAID-Z1.

Conclusie

Bij RAID-Z zien we een afweging tussen de bruikbare ruimte die wordt geboden door afzonderlijke schijven en de betrouwbaarheid die het verzamelen van dergelijke schijven kan bieden. Met een groter aantal schijven neemt ook de kans toe dat meerdere schijven tegelijkertijd defect raken.

De beste manier om dit tegen te gaan, is door een effectieve RAID-Z-strategie te gebruiken die zowel betrouwbaarheid als de beste waar voor uw geld biedt. Laat het ons weten als je deze tutorial nuttig vond of als je vragen hebt met betrekking tot RAID-Z!

OSD-overlay tonen in Linux-apps en -games op volledig scherm
Het spelen van games op volledig scherm of het gebruik van apps in de modus volledig scherm zonder afleiding kan u afsnijden van relevante systeeminfo...
Top 5 Game Capture-kaarten
We hebben allemaal gezien en genoten van streaming gameplays op YouTube. PewDiePie, Jakesepticye en Markiplier zijn slechts enkele van de beste gamers...
Hoe een spel op Linux te ontwikkelen
Tien jaar geleden zouden niet veel Linux-gebruikers voorspellen dat hun favoriete besturingssysteem ooit een populair spelplatform voor commerciële vi...