Btrfs

Hur man använder Btrfs-balans?

Hur man använder Btrfs-balans?
Btrfs-filsystemet har inbyggt stöd för flera enheter, så att du kan skapa olika RAID-nivåer med det.

När du har skapat en Btrfs RAID kan du lägga till fler lagringsenheter i RAID för att utöka RAID. Men när du väl har lagt till fler lagringsenheter i RAID kommer Btrfs inte att sprida den befintliga data / metadata / systemdata till de nya lagringsenheterna automatiskt. Så du kanske inte får önskad genomströmning (läs- / skrivhastighet) från RAID, och det kanske inte kommer att fylla de nya lagringsenheterna med nödvändiga redundanta data. Så RAID-arrayen kan misslyckas med att överleva önskat antal enhetsfel.

För att lösa dessa problem tillhandahåller Btrfs-filsystemet ett inbyggt balanseringsverktyg. Btrfs-balansverktyget sprider data / metadata / systemdata för de befintliga lagringsenheterna i RAID till de nyligen tillagda lagringsenheterna.

I den här artikeln ska jag visa dig hur du använder Btrfs-balansverktyget för att sprida data / metadata / systemdata för de befintliga lagringsenheterna i RAID till de nyligen lagda lagringsenheterna. Så, låt oss komma igång!

Förkortningar

RÄD - Redundant matris av billiga / oberoende skivor
MB - Megabyte
GB - Gigabyte

Förutsättningar

För att följa den här artikeln måste du ha en fungerande Btrfs RAID- eller multi-enhetsinstallation.

Jag har skapat en Btrfs RAID i RAID-0 konfiguration med fyra lagringsenheter sdb, sdc, sdd, och sde.

Som du kan se tilldelades Btrfs-filsystemet 1 GB diskutrymme för data1 256 MB diskutrymme för metadata2, och 4 MB diskutrymme för systemdata3 från var och en av lagringsenheterna i RAID.

Handla om 18.75 GB ut ur 20 GB är fortfarande odelat4 från var och en av lagringsenheterna i RAID.

$ sudo btrfs filsystemanvändning / data

Skriva ett skript för att generera slumpmässiga filer

För att visa dig hur Btrfs-balansverktyget fungerar måste vi generera några slumpmässiga filer för att fylla i Btrfs-filsystemet. Låt oss skapa ett skalskript som gör just det.

Skapa ett nytt skalskript-genfiler.sh i katalogen / usr / local / bin / på följande sätt:

$ sudo nano / usr / local / bin / genfiles.sh

Skriv in följande rader med koder i genfiles.sh skalskript.

#!/ bin / bash
medan det är sant
do
FILENAME = $ (uuidgen)
eko "[Skapar] $ FILENAME"
dd if = / dev / random of = $ FILENAME bs = 1M count = 256 status = progress
eko "[Skapat] $ FILENAME"
Gjort

När du är klar trycker du på + X följd av Y och för att spara genfiles.sh skalskript.

De genfiles.sh shell-skript kör en oändlig medan slinga.

medan det är sant
do
# andra koder
Gjort

Följande rad genererar ett UUID med hjälp av uuidgen kommandot och lagrar UUID i FILNAMN variabel.

Följande rad skriver ut ett meddelande på konsolen före filen FILNAMN genereras.

Följande rad genererar en ny slumpmässig fil FILNAMN använda dd kommando. Filen har en storlek på 256 MB.

Följande rad skriver ut ett meddelande på konsolen efter filen FILNAMN genereras.

Lägg till körbehörighet till genfiles.sh skalskript enligt följande:

$ sudo chmod + x / usr / local / bin / genfiles.sh

De genfiles.sh shell-skript ska nu vara tillgängligt som alla andra kommandon.

$ vilka genfiler.sh

Generera slumpmässiga filer i Btrfs-filsystemet

Vi vill generera slumpmässiga filer i Btrfs RAID. Låt oss säga att Btrfs RAID är monterad på /data katalog.

Navigera till /data katalog där Btrfs RAID är monterad enligt följande:

$ cd / data

Som du kan se finns det inga filer tillgängliga i min Btrfs RAID just nu.

$ ls -lh

För att generera några slumpmässiga filer i den aktuella arbetskatalogen (/data katalog i det här fallet), kör genfiles.sh skalskript enligt följande:

$ sudo genfiles.sh

De genfiles.sh shell-skript bör börja generera slumpmässiga filer i /data katalog.

De genfiles.sh skript genererar slumpmässiga filer. Låt skriptet köras i några minuter så att det fyller cirka 2-3 GB diskutrymme på Btrfs RAID.

När du vill stoppa genfiles.sh skalskript, tryck + C.

Som du kan se genereras några slumpmässiga filer i Btrfs RAID.

$ ls -lh


Som du kan se tilldelade Btrfs RAID 2 GB från var och en av lagringsenheterna som lagts till RAID. Tidigare tilldelade Btrfs RAID 1 GB från var och en av lagringsenheterna som lagts till RAID.

Odelat diskutrymme har minskats från 18.75 GB till 17.75 GB i alla RAID-lagringsenheter.

$ sudo btrfs filsystemanvändning / data

Lägga till ytterligare en lagringsenhet i Btrfs RAID

För att visa hur du balanserar en Btrfs RAID efter att du har lagt till en ny lagringsenhet måste du lägga till en ny lagringsenhet i den.

Jag har lagt till en ny hårddisk sdf till min dator, som jag vill lägga till i Btrfs RAID monterad på /data katalog. Låt oss se hur man gör det.

$ sudo lsblk -e7

Navigera till en annan katalog (i.e., HEM katalog) från /data katalog enligt följande:

$ cd

För att lägga till lagringsenheten sdf till Btrfs RAID monterad på /data katalog, kör följande kommando:

$ sudo btrfs device add / dev / sdf / data

Som du kan se lagringsenheten sdf läggs till i Btrfs RAID. RAID-storleken har ökat från 80 GB till 100 GB.

$ sudo btrfs filsystemanvändning / data

Balansera Btrfs RAID

Som du kan se har den nyligen tillagda lagringsenheten (sdf) av RAID (monterad på /data katalog) har 20 GB odelat och de andra lagringsenheterna (sdb, sdc, sdd, sde, etc.) har 17.75 GB odelat.

$ sudo btrfs filsystemanvändning / data

Uppgifterna1, metadata2, och systemdata3 är endast tillgängliga på RAID: s befintliga lagringsenheter, inte den nyligen tillagda lagringsenheten.

För att sprida data, metadata och systemdata på alla RAID-lagringsenheter (inklusive den nyligen tillagda lagringsenheten) monterade på /data katalog, kör följande kommando:

$ sudo btrfs balans start - full-balans / data

Det kan ta en stund att sprida data, metadata och systemdata på alla RAID-lagringsenheter om det innehåller mycket data.

När lagringsenheterna i RAID är ordentligt balanserade bör du se följande meddelande.

Som du kan se, efter att saldoperationen har slutförts, har den nyligen tillagda lagringsenheten lika mycket odelat diskutrymme som de andra lagringsenheterna i RAID.

Efter balansoperationen allokeras lika mycket diskutrymme som de andra lagringsenheterna i RAID för data, metadata och systemdata från den nyligen tillagda lagringsenheten (sdf) av RAID.

Slutsats

I den här artikeln har jag diskuterat syftet med Btrfs-balansverktyget, liksom hur man balanserar ett Btrfs RAID- eller multi-enhetsfilsystem efter att ha lagt till nya lagringsenheter i RAID- eller multi-enhetsfilsystemet.

Topp 5 spelinspelningskort
Vi har alla sett och älskat streaming av spel på YouTube. PewDiePie, Jakesepticye och Markiplier är bara några av de bästa spelarna som har tjänat mil...
Hur man utvecklar ett spel på Linux
För ett decennium sedan skulle inte många Linux-användare förutsäga att deras favoritoperativsystem en dag skulle vara en populär spelplattform för ko...
Portar med öppen källkod för kommersiella spelmotorer
Gratis, öppen källkod och plattformsmekaniska rekreationer kan användas för att spela gamla såväl som några av de ganska senaste speltitlarna. I den h...