Hur man installerar och konfigurerar ZFS på Ubuntu

0
210
Daniel Krason/Shutterstock

Filsystemet ZFS levererar enorm kapacitet, RAID-spegling och mekanismer mot korruption direkt ur lådan. Lär dig hur du installerar Ubuntu med ZFS och hur du skapar en speglad pool.

Vad är ZFS?

ZFS är ett avancerat filsystem som har sitt ursprung i Sun Microsystems för användning med sitt Solaris -operativsystem. Efter Oracle: s förvärv av Sun 2009 är ZFS nu under Oracle Corporation.

Men i en typisk altruism, från 2005 och framåt, släppte Sun en open source -version av ZFS. Oundvikligen överfördes detta till Linux där det fick bredare exponering. Öppen källkodversion av ZFS — openZFS — hanteras och underhålls av OpenZFS-projektet.

ZFS är ett högkapacitetsfiltolerant filsystem. ZFS stod ursprungligen för Zettabyte File System. ZFS -arkitekturen är baserad på 128 bitar istället för de vanligare 64 bitarna i andra filsystem. Att kunna arbeta med större numeriska värden är en av de faktorer som gjorde att ZFS kunde hantera zettabyte lagringsutrymme. För att ge dig en uppfattning om vad det betyder är en zettabyte en miljard terabyte.

Numera stöder ZFS fillagring på upp till 256 zebibytes. En zebibyt (270 byte) är större än en zettabyte (1021 byte), men inte av en storleksordning. Det finns mycket mer för ZFS än ren kapacitet — lika förfärande som det är. ZFS fungerar som sin egen volymhanterare och RAID -kontroller. Den har inbyggda funktioner som äkta kopia vid skrivning som skyddar dina data från korruption. Den kombinerar funktioner som levererar poolning, kloning och kopiering av filsystem, och dess RAID-liknande funktionalitet, inbyggt.

Annonsering

Ubuntu har erbjudit ZFS i några år nu, men alltid med varningar och förbehåll. I Ubuntu 20.10 togs varningarna bort. Canonical stöder officiellt ZFS men bara i hela diskinställningar. För att få det stödet måste du installera ZFS när du installerar Ubuntu. ZFS -alternativen är fortfarande undangömda, men de är där och inte längre bara för de oförskämda eller dumdristiga.

Med Ubuntu 21.10 på gång i oktober 2021 är det en bra tid att se hur ZFS -erbjudandet i Ubuntu mognar.

RELATERAT: Hur man installerar och använder ZFS på Ubuntu (och varför du vill)

Hitta ZFS -alternativen under installationen

Under Ubuntu -installationen “ Installationstyp ” på skärmen kan du välja att radera hårddisken som du installerar Ubuntu på eller göra något annat. Klicka på “ Avancerade funktioner ” -knapp.

Avancerade funktioner “ visas.

Välj “ Radera disk och Använd ZFS ” alternativknappen och klicka på “ OK ” -knapp.

“ Installationstyp ” skärmen visar “ ZFS Selected ” för att visa att du har valt att använda ZFS.

< p>Klicka på “ Fortsätt ” knappen och slutför installationen som vanligt.

Annonsering

Om du har flera hårddiskar installerade i din dator kan du välja hur du vill att de ska användas av ZFS. Ubuntu erbjuder en föreslagen konfiguration, men du kan justera saker som passar dig själv.

Men vad händer om du lägger till några hårddiskar när du har installerat Ubuntu? Hur konfigurerar du ZFS för att använda den nya lagringen? Det är vad vi kommer att titta på härnäst.

Lägga till extra hårddiskar

Vi installerade Ubuntu med ZFS på testmaskinens enda hårddisk som vi använde för att undersöka den här artikeln. Vi lade till ytterligare två hårddiskar, vilket gav datorn totalt tre hårddiskar. En hårddisk hade Ubuntu installerat på, och de två nya enheterna var tomma, oformaterade och omonterade.

Det första vi behöver göra är att identifiera hur Ubuntu syftar på de nya hårddiskarna. Kommandot lsblk listar alla blockenheter som är installerade i din dator. Vi kan vara specifika om vilka utdatakolumner vi vill se i resultaten.

lsblk -o namn, storlek, fstype, typ, monteringspunkt

Alternativet -o (output) följs av de kolumner vi vill se. Vi valde:

  • namn : Namnet Ubuntu använder för att hänvisa till hårddisken.
  • storlek : Storleken på hårddisken. Om hårddisken har mer än en partition listas de alla och storleken på varje partition visas.
  • fstype : Filsystemet som är en hårddisk eller partition .
  • typ : Oavsett om raden refererar till en disk, partition, CD-ROM-enhet eller loopback-pseudo-enhet.
  • mountpoint < /strong>: Monteringspunkten för filsystemet på hårddisken eller partitionen.

Det finns ett gäng squashfs loopback -enheter, numrerade loop0 throughloop6. Varje gång du installerar en snap-applikation skapas en av dessa pseudo-enheter. Det är en del av inkapslingen och sandlådan som snäpper runt varje snapapplikation.

Annonsering

Den första hårddisken är listad som/dev/sda. Det är en 32 GB -enhet med fem partitioner på, listad som /dev /sda1 till /dev /sda5. De formateras på olika sätt. Det här är enheten som fanns i datorn när vi installerade Ubuntu.

Våra två nya hårddiskar listas som /dev /sdb och /dev /sdc. De har också 32 GB-enheter, men de är inte formaterade och de är inte monterade.

Pooler, RAID 0, RAID 1

För att använda de nya hårda floderna lägger vi till dem i en pool. Du kan lägga till så många enheter till en pool som du vill. Det finns två sätt att göra detta. Du kan konfigurera poolen så att du kan använda hela lagringsutrymmet för varje hårddisk i en RAID 0 -konfiguration, eller så kan du konfigurera dem så att poolen bara erbjuder lagringsutrymme för den minsta hårddisken i poolen, i en RAID 1 -konfiguration.

Fördelen med RAID 0 är utrymme. Men den föredragna — och den mycket rekommenderade — konfigurationen är RAID 1. RAID 1 speglar data på alla enheter i poolen. Det betyder att du kan ha ett hårddiskfel och filsystemet och dina data är fortfarande säkra och din dator fungerar fortfarande. Du kan byta ut den drabbade enheten och lägga till den nya enheten i din pool.

Däremot gör RAID 0 ett enda hårddiskfel att ditt system inte fungerar tills du byter ut den drabbade enheten och utför en återställning från dina säkerhetskopior.

Ju fler enheter du har i en RAID 1 -pool desto mer robust är den är. Det minsta du behöver för RAID 1 är två enheter. Ett fel på endera enheten skulle vara ett besvär, men inte en katastrof. Men ett fel på båda hårddiskarna samtidigt skulle naturligtvis vara ett större problem. Så svaret tycks vara att samla så många hårddiskar som du kan spara.

Annonsering

Men naturligtvis, i praktiken finns det en gräns för hur många drivkraft du ’ kommer att vilja — eller har råd att fördela till en enda pool. Om du har åtta lediga hårddiskar är det troligtvis bättre att installera två RAID 1-pooler med fyra enheter än en enda pool med åtta enheter. Och kom ihåg att en RAID 1-pool bara kan erbjuda lagring av den minsta hårddisken i poolen, så försök alltid att använda enheter av samma storlek i en enda pool.

Skapa en RAID 1 -pool

Vi har identifierat våra nya hårddiskar som /dev /sdb och /dev /sdc. För att skapa en ZFS RAID 1 -pool använder vi det här kommandot:

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

Komponenterna i kommandot är:

  • sudo : Vi ändrar systemkonfigurationen så vi måste använda sudo för att få root -privilegier.
  • zpool : Detta är ZFS -poolen ledningskommando.
  • skapa : Detta är den åtgärd som vi vill att zpool ska utföra för oss.
  • cloudsavvyit : Detta är namnet på poolen som vi vill skapa.
  • mirror : Vi vill att våra data ska speglas på alla enheter, vilket ger oss en RAID 1 slå samman. Utelämnar “ spegeln ” alternativet skapar en RAID 0 -pool.
  • /dev/sdb : Den första av våra nya hårddiskar.
  • /dev/sdc : Den andra av våra nya hårddiskar.

Byt ut “ cloudsavvyit ” med det namn du vill kalla din pool och ersätt/dev/sdb och/dev/sdc med identifierarna för dina nya hårddiskar.

Att skapa en pool är lite anti-klimatiskt. Om allt går bra återvänder du oseriöst till kommandotolken. Vi kan använda statusåtgärden med zpool -kommandot för att se statusen för vår nya pool.

sudo zpool status cloudsavvyit

Vår nya pool har skapats, den är online, våra två nya enheter finns i poolen och det finns inga fel. Det där ser bra ut. Men var är poolen? Låt oss se om lsblk visar oss var den har monterats.

lsblk -o namn, storlek, fstype, typ, monteringspunkt

Vi kan se att våra nya hårddiskar /dev /sdb och /dev /sdc har partitionerats med två partitioner vardera, men ingen monteringspunkt är listad för dem. Pooler är inte monterade som vanliga hårddiskar. Till exempel finns det ingen post i filen /etc /fstab för ZFS -pooler. Som standard skapas en monteringspunkt i rotkatalogen. Den har samma namn som poolen.

ls/

Annons

Om du vill ha monteringspunkten skapad någon annanstans, använd alternativet -m (monteringspunkt) när du skapar poolen och ange sökvägen dit du vill att den monteringspunkt som ska skapas. Du kan också ge monteringspunkten ett annat namn.

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

Ge användare åtkomst till poolen

Poolen finns, men endast rotanvändaren kan lagra data i den. Det är naturligtvis inte vad vi behöver. Vi vill att andra användare ska kunna komma åt poolen.

För att uppnå detta gör vi:

  • Skapa en katalog i poolen.
  • Skapa en ny grupp.
  • Ange att den nya gruppen ska vara gruppägare till katalogen.
  • Lägg till användare som behöver åtkomst till datalagringen till den nya gruppen.

Detta schema ger stor flexibilitet . Vi kan skapa så många datalagringskataloger som vi behöver, med olika grupper som äger dem. Att ge användarna åtkomst till de olika lagringsområdena är lika enkelt som att lägga till dem i lämpliga grupper.

Vi kommer att använda groupadd för att skapa en användargrupp. Vår grupp heter “ csavvy1 &#8221 ;. Vi använder sedan kommandot usermod för att lägga till en användare som heter “ dave ” till den nya gruppen. Alternativet -a (lägg till) lägger till den nya gruppen i listan över befintliga grupper som användaren befinner sig i. Utan detta alternativ tas användaren bort från alla befintliga grupper och läggs till i den nya. Det kommer att orsaka problem, så se till att du använder alternativet -a.

sudo groupadd csavvy1 sudo usermod -a -G csavvy1 dave

Så att deras nya gruppmedlemskap blir effektivt måste användaren logga ut och in igen.

Nu skapar vi en katalog i poolen, kallad “ data1. ”

sudo mkdir/cloudsavvyit/data1 Annonsering

Kommandot chgrp låter oss ställa in gruppens ägare till katalogen.

sudo chgrp csavvy1/cloudsavvyit/data1

Slutligen kommer vi att ställa in gruppbehörigheterna med chmod. “ s ” är SGID -specialbiten. Det betyder att filer och kataloger som skapats i “ data1 ” katalogen kommer att ärva gruppägaren till den här katalogen.

sudo chmod g+rwsx/cloudsavvyit/data1/

Vår användare har loggat ut och in igen. Låt oss försöka skapa en fil i den nya datalagringskatalogen i vår nya RAID 1 ZFS -pool.

touch/cloudsavvyit/data1/new -file.txt

Och låt oss se att det skapades.

ls/cloudsavvyit/data1 -lh

Framgång. Vad händer om vi försöker skapa en annan fil utanför vårt data1-lagringsområde?

tryck på /cloudsavvyit/new-file2.txt

Detta misslyckas som förväntat. Våra behörigheter fungerar. Vår användare kan bara manipulera filer i datalagringskatalogen som han har fått behörighet att komma åt.

RELATERAD: Hur man använder SUID, SGID och Sticky Bitar på Linux

Förstör en pool

Var försiktig med det här kommandot. Se till att du har säkerhetskopior innan du fortsätter. Om du är säker på att du verkligen vill och du har verifierat att du har andra kopior av data i poolen kan du förstöra en pool med det här kommandot:

sudo zpool destroy cloudsavvyit Advertisement

Byt ut “ cloudsavvyit ” med namnet på poolen kommer du att förstöra.

Har du bara en hårddisk?

Om du bara har en hårddisk, eller om din dator har flera hårddiskar men deras storlek varierar för mycket för att bilda en användbar pool kan du fortfarande använda ZFS. Du kommer inte att få RAID-spegling, men de inbyggda antikorruption- och dataskyddsmekanismerna är fortfarande värda och övertygande funktioner.

Men kom ihåg att inget filsystem med eller utan RAID-spegling & #8212; betyder att du kan ignorera säkerhetskopior.

RELATERAD: Säkerhetskopior kontra redundans: Vad är skillnaden?