Btrfs balansefeil i kjerne 5.Topp 10.x

Btrfs balansefeil i kjerne 5.Topp 10.x
Det er en feil i kjerne 5.14.X som får et BTRFS-filsystem til å skrive og skrive når man konverterer metadataprofilen fra enkelt til dup. Filsystemet går inn i en skrivebeskyttet tilstand. Å løse dette problemet krever en ukonvensjonell løsning.

Om BTRFS -profiler

En av de flotte funksjonene ved BTRF -er er muligheten til å bruke de forskjellige RAID -profilene. Siden BTRFS lagrer dataene og metadataene hver for seg, kan du stripe dataene over diskene som RAID0 og speiler alle metadataene som RAID1. Denne redundansen i metadata tar lite ekstra plass. Og dette anbefales i BTRFS RAID0 -oppsett.

Det har alltid blitt foreslått å duplisere metadataene, selv på en enkelt disk, siden det også å miste metadataene å miste dataene.

BTRFS er i stand til å endre en RAID -profil på et live -system, konvertere dataene og metadataene for å gi (eller fjerne) redundans. Dette skjer med en balansere. En BTRFS-balanse skriver om alle filsystemets blokker og justerer seg for å matche de nye profilene som den gjør.

Insektet

Jeg forsøkte å endre metadataprofilen på min enkelt disk fra enkelt til dup for redundans.

$ sudo btrfs balanse start -mconvert = dup /mnt

Filsystemet gikk umiddelbart inn i en skrivebeskyttet tilstand. Systemet gikk ned. Da den startet på nytt, kunne jeg ikke komme forbi gjenoppretting. Ingen data kunne skrives til disken.

Når en balanseoperasjon blir avbrutt på BTRFS -filsystem, gjenopptas den automatisk neste gang filsystemet er montert. Dette kan vanligvis stoppes med:

$ sudo mount -o skip_balance, rw /dev /sdx /mnt

Avbryt deretter om nødvendig ved å bruke følgende kommando:

$ sudo btrfs balanse avbryt /mnt

Feilen fikk imidlertid ikke bare balansen til å låse opp, men alternativene for å hindre den i å fortsette ble ignorert. Hver gang filsystemet er montert, prøver balansen å gjenoppta. Det mislyktes og filsystemet fortsatte å skrivebeskyttet. Hvis du møter dette, må du starte opp enhver distro ved hjelp av en eldre kjerne. I mitt tilfelle var det Arch med 4.18.

Monter filsystemet med den eldre Kenel:

$ sudo mount -o skip_balance, rw /dev /sdx /mnt

Avbryt balansen:

$ sudo btrfs balanse avbryt /mnt

Utfør balansen igjen:

$ sudo btrfs balanse start -mconvert = dup /mnt

Når balansen er fullført, kan du trygt starte opp i en nyere kjerne, nå med dupliserte metadata i filsystemet. Sjekk profilene som brukes av filsystemet. Du vil se at du har to eksemplarer av Filesytems metadata og bare en kopi av dataene:

$ sudo btrfs fi -bruk

Konklusjon

BTRFS er et fantastisk filsystem som er i stand til mange avanserte alternativer. Når du bruker BTRF -er, bør du imidlertid ha arbeidskopiering, så vel som en oppstartbar kjerne fra en LTS -distro for systemredning. Selv om en balanse kan kjøres på et montert rotfilsystem, anbefales det ikke alltid å gjøre dette. Det er fremdeles mange feil i filsystemet. Du bør være forberedt på et redning av filsystemet når BTRFS-modulen ikke er blitt testet fullstendig mot blødende kant.