Hvordan bruke BTRFS -skrubb?

Hvordan bruke BTRFS -skrubb?
BTRFS-filsystemet er et filsystem med flere enheter som har innebygd støtte for RAID. I et BTRFS-filsystem eller RAID med flere enheter kan data/metadatablokker lagres i en eller flere lagringsenheter. BTRFS Scrub -verktøyet vil lese alle data/metadatablokker fra alle lagringsenhetene som er lagt til et BTRFS -filsystem eller RAID og finne alle de ødelagte dataene/metadatablokkene. Når de ødelagte dataene/metadatablokkene er funnet, vil BTRFS Scrub -verktøyet automatisk reparere de ødelagte data/metadatablokker om mulig.

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.