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 / bashmedan 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å
De genfiles.sh shell-skript kör en oändlig medan slinga.
medan det är santdo
# 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
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.