I et BTRFS-filsystem eller BTRFS-raid, med flere enhet. Når BTRFS Scrub -verktøyet finner en ødelagt data/metadatablokk, søker den alle lagringsenhetene som er lagt til BTRFS -filsystemet for dupliserte kopier av den data/metadatablokken. Når en duplikat kopi av den data/metadatablokken er funnet, blir den ødelagte data/metadatablokken overskrevet med riktig data/metadatablokk. Slik reparerer BTRFS-skrubberverktøyet ødelagte data/metadatablokker i et BTRFS-filsystem eller BTRFS RAID med flere enheter.
I denne artikkelen skal jeg vise deg hvordan du bruker BTRFS Scrub-verktøyet for å finne og reparere ødelagte data/metadatablokker i et BTRFS-filsystem eller BTRFS RAID med flere enhet. Så la oss komme i gang.
Forkortelser
PLYNDRINGSTOKT - Overflødig rekke rimelige/uavhengige disker
GB - Gigabyte
Forutsetninger
For å følge denne artikkelen, må du ha et fungerende BTRFS-filsystem eller et BTRFS-raid.
Jeg har opprettet et BTRFS -raid i RAID-1 konfigurasjon (montert på /data katalog) ved hjelp av 4 lagringsenheter SDB, SDC, SDD, og sde, Som du kan se på skjermbildet nedenfor. Jeg vil bruke dette BTRFS -raidet for BTRFS Scrub -demonstrasjonen i denne artikkelen.
$ sudo btrfs filsystembruk /data
Hvis du trenger hjelp til å installere BTRFS -filsystemet på Ubuntu, sjekk artikkelinstallasjonen min og bruk BTRFS på Ubuntu 20.04 LTS.
Hvis du trenger hjelp til å installere BTRFS -filsystemet på Fedora, kan du sjekke artikkelinstallasjonen min og bruke BTRF -er på Fedora 33.
Hvis du trenger hjelp til å opprette et BTRFS -raid, kan du sjekke artikkelen min Hvordan sette opp BTRFS RAID.
Generere dummy -filer på BTRFS -filsystemet
For å vise deg hvordan BTRFS Scrub -verktøyet fungerer, må vi generere noen tilfeldige filer for å fylle ut BTRFS -filsystemet. La oss lage et skallskript som gjør nettopp det.
Lag et nytt skallskript Genfiler.sh i /usr/lokal/bin/ Katalog som følger:
$ sudo nano/usr/local/bin/genfiles.sh
Skriv inn følgende koder i Genfiler.sh Shell -skript.
#!/bin/bash
mens sant
gjøre
Filnavn = $ (uuidgen)
ekko "[Opprette] $ filnavn"
dd if =/dev/tilfeldig av = $ filnavn bs = 1m telling = 256 status = fremgang
ekko "[opprettet] $ filnavn"
Ferdig
Når du er ferdig, trykk + X etterfulgt av Y og For å redde Genfiler.sh Shell -skript.
De Genfiler.sh Shell -skriptet kjører en uendelig samtidig som Løkke.
mens sant
gjøre
# Andre koder
Ferdig
Følgende linje genererer en UUID ved hjelp av uuidgen kommando og lagrer UUID i FILNAVN variabel.
Følgende linje skriver ut en melding på konsollen før filen FILNAVN genereres.
Følgende linje genererer en ny tilfeldig fil FILNAVN bruker dd kommando. Filen vil være 256 MB i størrelse.
Følgende linje skriver ut en melding på konsollen etter filen FILNAVN genereres.
Legg til utførelse av tillatelse til Genfiler.sh Shell -skript som følger:
s
De Genfiler.sh Shell -skriptet skal nå være tilgjengelig som alle andre kommandoer.
$ hvilke genfiler.sh
La oss generere noen tilfeldige filer i BTRFS -raidet montert i /data katalog.
Naviger til /data Katalog der BTRFS -raidet er montert som følger:
$ cd /data
Som du ser, er det ingen filer tilgjengelig i BTRFS -raidet for øyeblikket.
$ ls -lh
For å generere noen tilfeldige filer i den gjeldende arbeidskatalogen (/data katalog i dette tilfellet), kjør Genfiler.sh Shell -skript som følger:
$ sudo -genfiler.sh
De Genfiler.sh Shell -skriptet skal begynne å generere tilfeldige filer i /data katalog.
De Genfiler.sh Skriptet genererer tilfeldige filer. La skriptet løpe i et par minutter, så det fyller opp omtrent 2-3 GB diskplass for BTRFS-raidet.
Når du vil stoppe Genfiler.sh Shell -skript, trykk + C.
Som du kan se, genereres noen tilfeldige filer i BTRFS RAID.
$ ls -lh
Jeg har generert omtrent 13 GB tilfeldige filer i BTRFS -raidet montert i /data Katalog, som du kan se på skjermdumpen nedenfor.
$ sudo du -sh /data
Arbeide med BTRFS Scrub -verktøyet
I dette avsnittet skal jeg vise deg hvordan du bruker BTRFS -skrubbeverktøyet. La oss komme i gang.
Du kan starte skrubbprosessen på BTRFS -filsystemet montert på /data Katalog med følgende kommando:
$ sudo btrfs skrubbstart /data
En BTRFS -krattprosess bør startes på BTRFS -filsystemet montert på /data katalog.
Du kan se statusen til BTRFS -skrubbprosessen som kjører på BTRFS -filsystemet montert på /data Katalog som følger:
$ sudo btrfs skrubbstatus /data
Som du ser er BTRFS -skrubbprosessen fortsatt løping.
Skrubbing av et BTRFS -filsystem eller BTRFS -raid som har mange filer vil ta lang tid å fullføre.
Når BTRFS -skrubbprosessen er fullført, bør statusen endres til ferdig, Som du kan se på skjermbildet nedenfor.
$ sudo btrfs skrubbstatus /data
Du kan også se BTRFS -skrubbstatus for hver av lagringsenhetene som er lagt til BTRFS -filsystemet (montert i /data katalog) separat som følger:
$ SUDO BTRFS SCRUB STATUS -D /DATA
Jeg har fortalt deg at BTRFS Scrub -prosessen tar lang tid å fullføre på et stort BTRFS -filsystem. En stor fordel med BTRFS Scrub -verktøyet er at prosessen kan pause og gjenopptas når som helst.
La oss se hvordan du kan ta en pause og gjenoppta en BTRFS -skrubbeprosess.
Først må du starte en ny BTRFS -skrubbe -prosess på BTRFS -filsystemet montert i /Data -katalogen som følger:
$ sudo btrfs skrubbstart /data
For å avbryte eller pause BTRFS -skrubbe -prosessen som for øyeblikket kjører på BTRFS -filsystemet montert på /data Katalog, kjør følgende kommando:
$ sudo btrfs skrubb avbryt /data
Den løpende BTRFS -skrubbprosessen skal kanselleres eller pause.
Som du kan se, er BTRFS -skrubbestatusen abortert. Så BTRFS -skrubbprosessen kjører ikke lenger.
$ sudo btrfs skrubbstatus /data
For å gjenoppta BTRFS -skrubbprosessen som du har kansellert eller gått på pause, kjør følgende kommando:
$ sudo btrfs skrubb -gjenoppta /data
BTRFS -krattprosessen skal gjenopptas.
Som du kan se, er BTRFS -skrubbatus nå løping. Så BTRFS Scrub -prosessen gjenopptas.
$ sudo btrfs skrubbstatus /data
Etter at BTRFS -krattprosessen er fullført, bør BTRFS -skrubbatus endres til ferdig.
$ sudo btrfs skrubbstatus /data
Konklusjon
I denne artikkelen har jeg vist deg hvordan du skal jobbe med BTRFS-skrubbeverktøyet for å finne og fikse ødelagte data/metadatablokker av et BTRFS multi-enhetsfilsystem eller RAID. Jeg har vist deg hvordan du kansellerer/pause og gjenopptar en BTRFS -skrubbprosess når den også er startet.