I et Btrfs-filsystem eller Btrfs RAID med flere enheter, avhengig av filsystemkonfigurasjonen, kan det være flere kopier av data- / metadatablokkene som er lagret forskjellige steder på lagringsenhetene som er lagt til Btrfs-filsystemet. Når Btrfs skrubbeverktøy finner en ødelagt data / metadatablokk, søker den i alle lagringsenhetene som er lagt til i Btrfs-filsystemet for duplikatkopier av den data / metadatablokken. Når en duplikatkopi av den data- / metadatablokken er funnet, blir den ødelagte data- / metadatablokken overskrevet med riktig data / metadatablokk. Slik reparerer Btrfs skrubbeverktøy ødelagte data / metadatablokker i et Btrfs-filsystem eller Btrfs RAID med flere enheter.
I denne artikkelen skal jeg vise deg hvordan du bruker Btrfs skrubbeverktøy for å finne og reparere ødelagte data / metadatablokker i et Btrfs-filsystem eller Btrfs RAID med flere enheter. Så la oss komme i gang.
Forkortelser
PLYNDRINGSTOKT - Redundant matrise av billige / uavhengige disker
GB - Gigabyte
Forutsetninger
For å følge denne artikkelen må du ha et fungerende Btrfs-filsystem for flere enheter eller et Btrfs RAID.
Jeg har opprettet en 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 denne Btrfs RAID for Btrfs-skrubbedemonstrasjonen i denne artikkelen.
$ sudo btrfs filsystembruk / data
Hvis du trenger hjelp til å installere Btrfs-filsystemet på Ubuntu, kan du sjekke artikkelen min Installer og bruk Btrfs på Ubuntu 20.04 LTS.
Hvis du trenger hjelp til å installere Btrfs-filsystemet på Fedora, kan du sjekke artikkelen min Installer og bruk Btrfs på Fedora 33.
Hvis du trenger hjelp til å lage en Btrfs RAID, kan du sjekke artikkelen min Hvordan sette opp Btrfs RAID.
Genererer Dummy Files på Btrfs Filesystem
For å vise deg hvordan Btrfs skrubbeverktøy fungerer, må vi generere noen tilfeldige filer for å fylle opp Btrfs-filsystemet. La oss lage et skallskript som gjør nettopp det.
Lag et nytt skallskript genfiles.sh i / usr / local / bin / katalog som følger:
$ sudo nano / usr / local / bin / genfiles.sh
Skriv inn følgende kodelinjer i genfiles.sh skallskript.
#!/ bin / bashmens det er sant
gjøre
FILENAME = $ (uuidgen)
ekko "[Oppretter] $ FILENAME"
dd if = / dev / random of = $ FILENAME bs = 1M count = 256 status = progress
ekko "[Laget] $ FILENAME"
ferdig
Når du er ferdig, trykk
De genfiles.sh skallskript kjører en uendelig samtidig som Løkke.
mens det er santgjøre
# andre koder
ferdig
Følgende linje genererer et UUID ved hjelp av uuidgen kommandoen 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 gjennomføringstillatelse til genfiles.sh skallskript som følger:
s
De genfiles.sh skallskript skal nå være tilgjengelig som andre kommandoer.
$ hvilke genfiler.sh
La oss generere noen tilfeldige filer i Btrfs RAID montert i /data katalog.
Naviger til /data katalog der Btrfs RAID er montert som følger:
$ cd / data
Som du kan se, er det ingen filer tilgjengelig i Btrfs RAID for øyeblikket.
$ ls -lh
For å generere noen tilfeldige filer i gjeldende arbeidskatalog (/data katalog i dette tilfellet), kjør genfiles.sh skallskript som følger:
$ sudo genfiles.sh
De genfiles.sh skallskript skal begynne å generere tilfeldige filer i /data katalog.
De genfiles.sh skript genererer tilfeldige filer. La skriptet kjøre i et par minutter, så det fyller opp ca 2-3 GB diskplass på Btrfs RAID.
Når du vil stoppe genfiles.sh skallskript, trykk
Som du kan se, genereres noen tilfeldige filer i Btrfs RAID.
$ ls -lh
Jeg har generert ca 13 GB tilfeldige filer i Btrfs RAID montert i /data katalog, som du kan se på skjermbildet nedenfor.
$ sudo du -sh / data
Arbeider med Btrfs Scrub Tool
I denne delen skal jeg vise deg hvordan du bruker Btrfs skrubbeverktøy. La oss komme i gang.
Du kan starte skrubbeprosessen på Btrfs-filsystemet montert på /data katalog med følgende kommando:
$ sudo btrfs skrubb start / data
En Btrfs-skrubbeprosess bør startes på Btrfs-filsystemet montert på /data katalog.
Du kan se status for Btrfs-skrubbeprosessen som kjører på Btrfs-filsystemet montert på /data katalog som følger:
$ sudo btrfs skrubber status / data
Som du kan se, er Btrfs skrubbeprosessen fortsatt løping.
Skrubbing av et Btrfs-filsystem eller Btrfs RAID som har mange filer vil ta lang tid å fullføre.
Når Btrfs-skrubbeprosessen er fullført, bør statusen endres til ferdig, som du kan se på skjermbildet nedenfor.
$ sudo btrfs skrubber status / data
Du kan også se status for Btrfs-skrubb for hver av lagringsenhetene som er lagt til i Btrfs-filsystemet (montert i /data katalog) separat som følger:
$ sudo btrfs skrubbestatus -d / data
Jeg har fortalt deg at Btrfs skrubbeprosessen tar lang tid å fullføre på et stort Btrfs filsystem. En stor fordel med Btrfs skrubbeverktøy er at prosessen kan stoppes og gjenopptas når som helst.
La oss se hvordan vi kan stoppe og gjenoppta en Btrfs-skrubbeprosess.
Start først en ny Btrfs-skrubbeprosess på Btrfs-filsystemet montert i / data-katalogen som følger:
$ sudo btrfs skrubb start / data
For å avbryte eller pause Btrfs-skrubbeprosessen som for øyeblikket kjører på Btrfs-filsystemet montert på /data katalog, kjør følgende kommando:
$ sudo btrfs skrubbe avbryt / data
Den igangværende Btrfs-skrubbeprosessen bør avbrytes eller pauses.
Som du kan se, er Btrfs skrubbestatus abortert. Så, Btrfs skrubbeprosessen kjører ikke lenger.
$ sudo btrfs skrubber status / data
For å gjenoppta Btrfs-skrubbeprosessen du har kansellert eller stoppet midlertidig, kjør følgende kommando:
$ sudo btrfs skrubbe CV / data
Btrfs-skrubbeprosessen bør gjenopptas.
Som du kan se, er Btrfs skrubbestatus nå løping. Så Btrfs skrubbeprosessen gjenopptas.
$ sudo btrfs skrubber status / data
Etter at Btrfs skrubbeprosessen er fullført, bør Btrfs skrubbestatus endres til ferdig.
$ sudo btrfs skrubber status / data
Konklusjon
I denne artikkelen har jeg vist deg hvordan du kan jobbe med Btrfs skrubbeverktøy for å finne og fikse ødelagte data / metadata blokker av et Btrfs filsystem eller RAID med flere enheter. Jeg har vist deg hvordan du avbryter / stopper og fortsetter en Btrfs-skrubbeprosess når den også er startet.