Btrfs

Hur man använder Btrfs Scrub?

Hur man använder Btrfs Scrub?
Btrfs-filsystemet är ett filsystem med flera enheter som har inbyggt stöd för RAID. I ett Btrfs-filsystem eller RAID med flera enheter kan data- / metadatablocken lagras i en eller flera lagringsenheter. Btrfs-skrubbverktyget kommer att läsa alla data / metadatablock från alla lagringsenheter som läggs till i ett Btrfs-filsystem eller RAID och hitta alla korrupta data / metadatablock. När de skadade data / metadatablockarna har hittats reparerar Btrfs-skrubbverktyget automatiskt de skadade data / metadatablocken om möjligt.

I ett Btrfs-filsystem med flera enheter eller Btrfs RAID, beroende på filsystemkonfigurationen, kan det finnas flera kopior av data- / metadatablocks lagrade på olika platser på lagringsenheterna som läggs till i Btrfs-filsystemet. När Btrfs-skrubbverktyget hittar ett skadat data- / metadatablock, söker det efter alla lagringsenheter som läggs till i Btrfs-filsystemet för duplicerade kopior av det data- / metadatablocket. När en duplikatkopia av det data- / metadatablocket har hittats skrivs det skadade data- / metadatablocket över med rätt data / metadatablock. Så här reparerar Btrfs-skrubbverktyget skadade data / metadatablocks i ett Btrfs-filsystem med flera enheter eller Btrfs RAID.

I den här artikeln ska jag visa dig hur du använder Btrfs-skrubbverktyget för att hitta och reparera skadade data / metadatablock i ett Btrfs-filsystem med flera enheter eller Btrfs RAID. Så, låt oss komma igång.

Förkortningar

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

Förutsättningar

För att följa den här artikeln måste du ha ett fungerande Btrfs-filsystem med flera enheter eller ett Btrfs RAID.

Jag har skapat en Btrfs RAID i RAID-1 konfiguration (monterad på /data katalog) med 4 lagringsenheter sdb, sdc, sdd, och sde, som du kan se på skärmdumpen nedan. Jag kommer att använda denna Btrfs RAID för Btrfs-skrubbdemonstrationen i den här artikeln.

$ sudo btrfs filsystemanvändning / data

Om du behöver hjälp med att installera Btrfs-filsystemet på Ubuntu, läs min artikel Installera och använd Btrfs på Ubuntu 20.04 LTS.

Om du behöver hjälp med att installera Btrfs-filsystemet på Fedora, läs min artikel Installera och använd Btrfs på Fedora 33.

Om du behöver hjälp med att skapa en Btrfs RAID, kolla in min artikel Så här ställer du in Btrfs RAID.

Generera Dummy Files på Btrfs Filesystem

För att visa dig hur Btrfs-skrubbverktyget fungerar måste vi skapa 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 genfiles.sh i / usr / local / bin / katalog enligt följande:

$ 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 kommer att vara 256 MB i storlek.

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:

s

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

$ vilka genfiler.sh

Låt oss generera några slumpmässiga filer i Btrfs RAID monterad i /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

Jag har genererat cirka 13 GB slumpmässiga filer i Btrfs RAID monterad i /data katalog, som du kan se på skärmdumpen nedan.

$ sudo du -sh / data

Arbeta med Btrfs Scrub Tool

I det här avsnittet ska jag visa dig hur du använder Btrfs-skrubbverktyget. Låt oss börja.

Du kan starta skrubbningsprocessen på Btrfs-filsystemet som är monterat på /data katalog med följande kommando:

$ sudo btrfs skrubba start / data

En Btrfs-skrubbprocess bör startas på Btrfs-filsystemet monterat på /data katalog.

Du kan se statusen för Btrfs-skrubbprocessen som körs på Btrfs-filsystemet monterat på /data katalog enligt följande:

$ sudo btrfs skrubbar status / data

Som du kan se är Btrfs-skrubbprocessen fortfarande löpning.

Att skrubba ett Btrfs-filsystem eller Btrfs RAID som har många filer tar lång tid att slutföra.

När Btrfs-skrubbningsprocessen är klar bör statusen ändras till färdiga, som du kan se på skärmdumpen nedan.

$ sudo btrfs skrubbar status / data

Du kan också se Btrfs-skrubbstatus för var och en av lagringsenheterna som läggs till i Btrfs-filsystemet (monterad i /data katalog) separat enligt följande:

$ sudo btrfs skrubba status -d / data

Jag har sagt till dig att Btrfs-skrubbprocessen tar lång tid att slutföra på ett stort Btrfs-filsystem. En stor fördel med Btrfs-skrubbverktyget är att dess process kan pausas och återupptas när som helst.

Låt oss se hur man pausar och återupptar en Btrfs-skrubbningsprocess.

Starta först en ny Btrfs-skrubbningsprocess på Btrfs-filsystemet monterat i / data-katalogen enligt följande:

$ sudo btrfs skrubba start / data

För att avbryta eller pausa Btrfs-skrubbprocessen som för närvarande körs på Btrfs-filsystemet monterat på /data katalog, kör följande kommando:

$ sudo btrfs skrubba avbryt / data

Den pågående Btrfs-skrubbprocessen bör avbrytas eller pausas.

Som du kan se är Btrfs-skrubbstatusen avbruten. Så Btrfs-skrubbprocessen körs inte längre.

$ sudo btrfs skrubbar status / data

För att återuppta Btrfs-skrubbprocessen som du har avbrutit eller pausat, kör följande kommando:

$ sudo btrfs skrubba CV / data

Btrfs-skrubbprocessen bör återupptas.

Som du kan se är Btrfs-skrubbstatusen nu löpning. Så Btrfs-skrubbprocessen återupptas.

$ sudo btrfs skrubbar status / data

När Btrfs-skrubbningsprocessen är klar bör Btrfs-skrubbstatusen ändras till färdiga.

$ sudo btrfs skrubbar status / data

Slutsats

I den här artikeln har jag visat dig hur du arbetar med Btrfs-skrubbverktyget för att hitta och fixa skadade data / metadatablock i ett Btrfs-filsystem med flera enheter eller RAID. Jag har visat dig hur du avbryter / pausar och återupptar en Btrfs-skrubbningsprocess när den också har startat.

5 bästa arkadspel för Linux
Numera är datorer seriösa maskiner som används för spel. Om du inte kan få den nya poängen vet du vad jag menar. I det här inlägget kommer du att känn...
Strid om Wesnoth 1.13.6 Utveckling släppt
Strid om Wesnoth 1.13.6 släpptes förra månaden, är den sjätte utvecklingsversionen i 1.13.x-serien och den levererar ett antal förbättringar, framför ...
Så här installerar du League Of Legends på Ubuntu 14.04
Om du gillar League of Legends är det här en möjlighet för dig att testa League of Legends. Observera att LOL stöds på PlayOnLinux om du är en Linux-a...