Hoe ZFS op Ubuntu te installeren en configureren?

0
209
Daniel Krason/Shutterstock

Het ZFS-bestandssysteem levert enorme capaciteiten, RAID-mirroring en anticorruptiemechanismen, direct uit de doos. Leer hoe u Ubuntu installeert met ZFS en hoe u een gespiegelde pool maakt.

Wat is ZFS?

ZFS is een geavanceerd bestandssysteem dat afkomstig van Sun Microsystems voor gebruik met hun Solaris-besturingssysteem. Na de overname van Sun door Oracle in 2009 is ZFS nu eigendom van Oracle Corporation.

Echter, in een typische daad van altruïsme, bracht Sun vanaf 2005 een open source-versie van ZFS uit. Het was onvermijdelijk dat dit werd geport naar Linux, waar het een grotere bekendheid kreeg. De open source-versie van ZFS—openZFS—wordt beheerd en onderhouden door het OpenZFS-project.

ZFS is een fouttolerant bestandssysteem met hoge capaciteit. ZFS stond oorspronkelijk voor Zettabyte File System. De ZFS-architectuur is gebaseerd op 128 bits in plaats van de meer gebruikelijke 64 bits van andere bestandssystemen. Het kunnen werken met grotere numerieke waarden is een van de factoren die ZFS in staat hebben gesteld om zettabytes aan opslag te verwerken. Om je een idee te geven van wat dat betekent: een zettabyte is een miljard terabyte.

Tegenwoordig ondersteunt ZFS bestandsopslag tot 256 zebibytes. Een zebibyte (270 bytes) is groter dan een zettabyte (1021 bytes), maar niet in een orde van grootte. ZFS is veel meer dan pure capaciteit, hoe verbijsterend dat ook is. ZFS functioneert als zijn eigen volumemanager en RAID-controller. Het heeft ingebouwde functies zoals true copy bij schrijven die uw gegevens beschermen tegen corruptie. Het combineert functies die zorgen voor pooling, klonen en kopiëren van bestandssystemen, en native RAID-achtige functionaliteit.

Advertentie

Ubuntu biedt al enkele jaren ZFS aan, maar altijd met waarschuwingen en voorbehouden. In Ubuntu 20.10 zijn de waarschuwingen verwijderd. Canonical ondersteunt officieel ZFS, maar alleen in volledige schijfconfiguraties. Om die ondersteuning te krijgen, moet je ZFS installeren terwijl je Ubuntu installeert. De ZFS-opties zijn nog steeds weggestopt, maar ze zijn er en niet langer alleen voor onverschrokken of dwazen.

Met Ubuntu 21.10 die in oktober 2021 wordt verwacht, is het een goed moment om te zien hoe het ZFS-aanbod in Ubuntu wordt volwassen.

GERELATEERD: ZFS installeren en gebruiken op Ubuntu (en waarom u dat zou willen)

De ZFS-opties vinden tijdens de installatie

Installeer tijdens de Ubuntu het “Installation Type” scherm kunt u ervoor kiezen om de schijf waarop u Ubuntu installeert te wissen of om iets anders te doen. Klik op de “Geavanceerde functies” knop.

De “Geavanceerde Functies” dialoogvenster verschijnt.

Selecteer de “Schijf wissen en gebruik ZFS” keuzerondje en klik op de “OK” knop.

Het “Installatietype” scherm toont de “ZFS Selected” om te laten zien dat je ervoor hebt gekozen om ZFS te gebruiken.

< p>Klik op de “Doorgaan” knop en voltooi de installatie zoals gewoonlijk.

Advertentie

Als je meerdere harde schijven op je computer hebt geïnstalleerd, kun je kiezen hoe je wilt dat ze door ZFS worden gebruikt. Ubuntu biedt een voorgestelde configuratie, maar u kunt dingen naar eigen wens aanpassen.

Maar wat als u enkele harde schijven toevoegt nadat u Ubuntu hebt geïnstalleerd? Hoe configureer je ZFS om de nieuwe opslag te gebruiken? Dat is waar we naar zullen kijken.

Extra harde schijven toevoegen

We hebben Ubuntu met ZFS geïnstalleerd op de enkele harde schijf van de testmachine die we hebben gebruikt om dit artikel te onderzoeken. We hebben nog twee harde schijven toegevoegd, waardoor de computer in totaal drie harde schijven heeft. Op één harde schijf was Ubuntu geïnstalleerd en de twee nieuwe schijven waren leeg, niet geformatteerd en ontkoppeld.

Het eerste dat we moeten doen, is vaststellen hoe Ubuntu verwijst naar de nieuwe harde schijven. De opdracht lsblk geeft een overzicht van alle blokapparaten die op uw computer zijn geïnstalleerd. We kunnen specifiek aangeven welke uitvoerkolommen we in de resultaten willen zien.

lsblk -o name,size,fstype,type,mountpoint

De -o (output) optie wordt gevolgd door de kolommen die we willen zien. We kozen voor:

  • naam: de naam die Ubuntu gebruikt om naar de harde schijf te verwijzen.
  • grootte: De grootte van de harde schijf. Als de harde schijf meer dan één partitie heeft, worden ze allemaal weergegeven en wordt de grootte van elke partitie weergegeven.
  • fstype: het bestandssysteem dat een van de harde schijf of partitie is .
  • type: of de regel verwijst naar een schijf, partitie, cd-rom-station of loopback-pseudoapparaat.
  • mountpoint< /strong>: Het koppelpunt van het bestandssysteem op de harde schijf of partitie.

Er zijn een aantal loopback-apparaten van squashfs, genummerd loop0 throughloop6. Elke keer dat u een snap-applicatie installeert, wordt een van deze pseudo-apparaten gemaakt. Het maakt deel uit van de inkapseling en sandboxing die zich om elke snap-applicatie wikkelt.

Advertentie

De eerste harde schijf wordt vermeld als /dev/sda. Het is een schijf van 32 GB met vijf partities erop, vermeld als /dev/sda1 tot en met /dev/sda5. Ze zijn op verschillende manieren geformatteerd. Dit is de schijf die in de computer zat toen we Ubuntu installeerden.

Onze twee nieuwe harde schijven worden vermeld als /dev/sdb en /dev/sdc. Het zijn ook 32 GB-schijven, maar ze zijn niet geformatteerd en ze zijn niet gemount.

Pools, RAID 0, RAID 1

Om de nieuwe harde rives te gebruiken, voegen we ze toe aan een pool. U kunt zoveel schijven aan een pool toevoegen als u wilt. Er zijn twee manieren om dit te doen. U kunt de pool zo configureren dat u alle opslagruimte van elke harde schijf in een RAID 0-configuratie kunt gebruiken, of u kunt ze zo configureren dat de pool alleen de hoeveelheid opslagruimte biedt van de kleinste harde schijf in de pool, in een RAID 1-configuratie.

Het voordeel van RAID 0 is ruimte. Maar de meest aanbevolen en zeer aanbevolen configuratie is RAID 1. RAID 1 spiegelt de gegevens op alle schijven in de pool. Dat betekent dat u een harde schijf defect kunt krijgen en dat het bestandssysteem en uw gegevens nog steeds veilig zijn en uw computer nog steeds functioneel is. U kunt de defecte schijf vervangen en de nieuwe schijf aan uw pool toevoegen.

Met RAID 0 daarentegen maakt een enkele storing van de harde schijf uw systeem onbruikbaar totdat u de defecte schijf vervangt en een herstel uitvoert vanaf uw back-ups.

Hoe meer schijven u in een RAID 1-pool hebt, hoe robuuster het is is. Het minimum dat u nodig hebt voor RAID 1 is twee schijven. Een storing in een van beide schijven zou een ongemak zijn, maar geen ramp. Maar een storing van beide harde schijven tegelijk zou natuurlijk een groter probleem zijn. Het antwoord lijkt dus zoveel mogelijk harde schijven te bundelen als je kunt missen.

Advertentie

Maar in de praktijk is er natuurlijk een limiet aan het aantal schijven dat u wilt of kunt veroorloven om aan één pool toe te wijzen. Als u acht vrije harde schijven hebt, is het opzetten van twee RAID 1-pools van vier schijven waarschijnlijk een beter gebruik van de hardware dan een enkele pool van acht schijven. En onthoud dat een RAID 1-pool alleen de opslag van de kleinste harde schijf in de pool kan bieden, dus probeer altijd schijven van dezelfde grootte in een enkele pool te gebruiken.

Een RAID 1-pool maken

We hebben onze nieuwe harde schijven geïdentificeerd als /dev/sdb en /dev/sdc . Om een ​​ZFS RAID 1-pool te maken, gebruiken we deze opdracht:

sudo zpool create cloudsavvyit mirror /dev/sdb /dev/sdc

De componenten van de opdracht zijn:

  • sudo: we veranderen de systeemconfiguratie, dus we moeten sudo gebruiken om rootrechten te krijgen.
  • zpool: dit is de ZFS-pool management commando.
  • creëren: dit is de actie die we willen dat zpool voor ons uitvoert.
  • cloudsavvyit: dit is de naam van de pool die we willen maken.
  • mirror: we willen dat onze gegevens op alle schijven worden gespiegeld, waardoor we een RAID 1 krijgen zwembad. Het weglaten van de “spiegel” optie creëert een RAID 0-pool.
  • /dev/sdb: de eerste van onze nieuwe harde schijven.
  • /dev/sdc: de tweede van onze nieuwe harde schijven.

Vervang “cloudsavvyit” met de naam die u uw pool wilt noemen, en vervang /dev/sdb en /dev/sdc door de identifiers van uw nieuwe harde schijven.

Het maken van een pool is een beetje een anticlimax. Als alles goed gaat, keert u zonder pardon terug naar de opdrachtprompt. We kunnen de statusactie gebruiken met de opdracht zpool om de status van onze nieuwe pool te zien.

sudo zpool status cloudsavvyit

Onze nieuwe pool is gemaakt, hij is online, onze twee nieuwe schijven staan ​​in de pool en er zijn geen fouten. Dat ziet er allemaal geweldig uit. Maar waar is het zwembad? Laten we eens kijken of lsblk ons ​​laat zien waar het is aangekoppeld.

lsblk -o name,size,fstype,type,mountpoint

We kunnen zien dat onze nieuwe harde schijven /dev/sdb en /dev/sdc zijn gepartitioneerd met elk twee partities, maar er wordt geen koppelpunt voor vermeld. Pools zijn niet gemonteerd zoals gewone harde schijven. Er is bijvoorbeeld geen vermelding in het bestand /etc/fstab voor ZFS-pools. Standaard wordt er een koppelpunt gemaakt in de hoofdmap. Het heeft dezelfde naam als de pool.

ls/

Advertentie

Als u het aankoppelpunt ergens anders wilt laten maken, gebruikt u de optie -m (aankoppelpunt) wanneer u de pool maakt en geeft u het pad op naar waar u het aankoppelpunt wilt maken. Je kunt het aankoppelpunt ook een andere naam geven.

sudo zpool create -m /path/to/mount-point-name cloudsavvyit mirror /dev/sdb /dev/sdc

Gebruikers toegang geven tot de pool

De pool bestaat, maar alleen de rootgebruiker kan er gegevens in opslaan. Dat is natuurlijk niet wat we nodig hebben. We willen dat andere gebruikers toegang hebben tot de pool.

Om dit te bereiken zullen we:

  • Een directory in de pool maken.
  • Maken een nieuwe groep.
  • Stel de nieuwe groep in als groepseigenaar van de directory.
  • Voeg gebruikers toe die toegang moeten hebben tot de gegevensopslag aan de nieuwe groep.

Dit schema biedt grote flexibiliteit . We kunnen zoveel mappen voor gegevensopslag maken als we nodig hebben, waarbij verschillende groepen eigenaar zijn. Gebruikers toegang geven tot de verschillende opslagruimten is net zo eenvoudig als ze aan de juiste groepen toevoegen.

We gebruiken groupadd om een ​​gebruikersgroep te maken. Onze groep heet “csavvy1”. We zullen dan het usermod commando gebruiken om een ​​gebruiker met de naam “dave” naar de nieuwe groep. De -a (toevoegen) optie voegt de nieuwe groep toe aan de lijst met bestaande groepen waar de gebruiker in zit. Zonder deze optie wordt de gebruiker verwijderd uit alle bestaande groepen en toegevoegd aan de nieuwe. Dat zal problemen veroorzaken, dus zorg ervoor dat je de -a optie gebruikt.

sudo groupadd csavvy1 sudo usermod -a -G csavvy1 dave

Om hun nieuwe groepslidmaatschap van kracht te laten worden, moet de gebruiker uitloggen en weer inloggen.

Nu zullen we een map in de pool maken, genaamd “data1.”

sudo mkdir /cloudsavvyit/data1 Advertentie

Met de opdracht chgrp kunnen we de groepseigenaar van de map instellen.

sudo chgrp csavvy1 /cloudsavvyit/data1

Ten slotte stellen we de groepsrechten in met chmod . De “s” is het speciale SGID-bit. Het betekent dat bestanden en mappen die zijn gemaakt binnen de “data1” directory neemt de groepseigenaar van deze directory over.

sudo chmod g+rwsx /cloudsavvyit/data1/

Onze gebruiker is uitgelogd en weer ingelogd. Laten we proberen een bestand te maken in de nieuwe gegevensopslagmap in onze nieuwe RAID 1 ZFS-pool.

touch /cloudsavvyit/data1/new-file.txt

En laten we eens kijken dat het is gemaakt.

ls /cloudsavvyit/data1 -lh

Succes. Wat als we proberen een ander bestand te maken buiten ons data1-opslaggebied?

touch /cloudsavvyit/new-file2.txt

Dit mislukt zoals verwacht. Onze toestemmingen werken. Onze gebruiker kan alleen bestanden manipuleren in de gegevensopslagmap waartoe hij toestemming heeft gekregen.

GERELATEERD: Hoe SUID, SGID en Sticky te gebruiken Bits op Linux

Vernietig een pool

Wees voorzichtig met dit commando. Zorg ervoor dat u back-ups hebt voordat u doorgaat. Als je zeker weet dat je het echt wilt en je hebt geverifieerd dat je andere kopieën van de gegevens in de pool hebt, kun je een pool vernietigen met dit commando:

sudo zpool destroy cloudsavvyit Advertisement

Vervang “cloudsavvyit” met de naam van de pool die je gaat vernietigen.

Je hebt maar één harde schijf?

Als je er maar één hebt harde schijf, of als uw computer meerdere harde schijven heeft, maar hun grootte te veel varieert om een ​​bruikbare pool te vormen, kunt u nog steeds ZFS gebruiken. U krijgt geen RAID-mirroring, maar de ingebouwde anticorruptie- en gegevensbeschermingsmechanismen zijn nog steeds de moeite waard en overtuigende functies.

Maar onthoud, geen bestandssysteem—met of zonder RAID-mirroring& #8212;betekent dat je back-ups kunt negeren.

GERELATEERD: Back-ups versus redundantie: wat is het verschil?