De veilige aanpak is om het stabiliseren van schrijfbewerkingen, het terugwinnen van werkruimte, het uitvoeren van alleen een gefilterde balance en het verifiëren van gegevens vóór normale dienstverlening te behandelen als een reeks controleerbare stappen, niet als één enkele opdracht.
Op een bijna vol Btrfs-bestandssysteem van een homeserver bestaat het praktische risico dat Btrfs ENOSPC meldt of alleen-lezen wordt terwijl de metadataruimte is uitgeput. Leg de huidige identiteit en het herstelpunt vast, begin met de minst ingrijpende onderscheidende controle, interpreteer resultaten voordat je een andere variabele wijzigt en stop zodra de opslag instabiel wordt of de enige herstelbare kopie zou worden blootgesteld. De onderstaande workflow eindigt pas nadat de oorspronkelijke werklast is geslaagd of het bewijs een escalatiegrens bereikt.
Stabiliseer het bestandssysteem voordat je herstel probeert
Stop containers, downloads, snapshots en logintensieve taken die naar het getroffen bestandssysteem schrijven. Sla kernelfouten en de uitvoer van btrfs device stats ergens anders op. Als het bestandssysteem opnieuw als alleen-lezen is aangekoppeld of checksum-, parent-transid- of I/O-fouten meldt, houd het dan alleen-lezen totdat je een herstelbare kopie hebt.
Begin niet met btrfs check --repair, een volledige balance, defragmentatie of grootschalige verwijdering. De directe vraag is of een geldige bestandssysteemstatus geen allocatiewerkruimte heeft of dat opslagfouten metadata beschadigen; handelen vanuit reparatie als eerste stap kan dat onderscheid moeilijker maken en de resterende ruimte verbruiken.
De veiligheidscontrole is geslaagd wanneer schrijfintensieve services zijn gestopt, belangrijke gegevens een andere kopie hebben en je weet welk blokapparaat en koppelpunt je onderzoekt. Schakel over naar herstelimagevorming als het apparaat opnieuw wordt ingesteld, verdwijnt of leesfouten blijft verzamelen.
Lees de allocatie in plaats van alleen het algemene getal voor vrije ruimte
Voer btrfs filesystem usage -T /mount, btrfs filesystem df /mount en btrfs device usage /mount uit en bekijk recente kernelberichten. Vergelijk de toegewezen en gebruikte metadataruimte met de niet-toegewezen ruimte op elk apparaat; gewone df kan op zichzelf niet laten zien of Btrfs nog een metadatachunk kan toewijzen.
Een gerichte balance heeft volledig ongebruikte werkruimte nodig. Een uitgebreide handleiding voor een gerichte Btrfs-balance legt uit dat een niet-gefilterde balance alle in aanmerking komende blockgroups herschrijft en dat het doel is om niet-toegewezen ruimte op apparaatniveau te behouden, niet alleen een groot bestand te verwijderen en aan te nemen dat metadata kan groeien.
Als de metadataruimte hoog is maar er niet-toegewezen ruimte overblijft, kan een kleine gefilterde balance lege of licht gebruikte chunks terugwinnen. Als geen enkel apparaat werkruimte heeft, verwijder dan eerst veilig overtollige gegevens of snapshots in kleine batches, of voeg een tijdelijk apparaat toe dat geschikt is voor het bestandssysteemprofiel; start geen relocatie die niet kan worden voltooid.
Win werkruimte terug met de minst ingrijpende actie
Begin met het verwijderen van wegwerpbestanden die niet door snapshots worden behouden en verwijder daarna alleen bevestigde, overbodige snapshots. Voer na elke kleine wijziging een sync uit en controleer het gebruik opnieuw. Als een balance gerechtvaardigd is, begin dan met btrfs balance start -dusage=0 -musage=0 /mount of een andere beperkte filter die op basis van de waargenomen allocatie is gekozen, niet met een volledige balance.
De Linux-handleiding over gefilterd balancegedrag vermeldt dat filters relocatie beperken en dat ENOSPC kan optreden wanneer de balance zelf onvoldoende werkruimte heeft. Houd btrfs balance status en de kernellogs in de gaten. Als relocatie het aantal fouten verhoogt, blijft hangen door apparaatfouten of de laatste veiligheidsmarge verbruikt, annuleer deze dan en keer terug naar alleen-lezen herstel.
Combineer geen filters en verwijderingen zonder tussen de stappen te meten. De herstelroute is geslaagd wanneer metadata voldoende marge heeft, er op de benodigde apparaten niet-toegewezen ruimte bestaat en een kleine schrijfbewerking zonder nieuwe ENOSPC- of gedwongen alleen-lezen-gebeurtenis voltooit.
Verifieer gegevens en voorkom een onmiddellijke terugval
Start slechts één service met laag risico opnieuw en herhaal de werklast die de metadata oorspronkelijk vulde, zoals het maken van snapshots of veel kleine bestandswijzigingen. Controleer het gebruik en de kernellogs opnieuw na de werklast en na een herstart. Een koppeling die één keer werkt maar onder normale wijzigingen weer alleen-lezen wordt, is niet hersteld.
Gebruik de ZimaSpace-methode om te bepalen of snapshots of live bestanden NAS-ruimte gebruiken voordat je de bewaartermijn wijzigt. Door snapshots vastgehouden extents kunnen ervoor zorgen dat verwijderen geen effect lijkt te hebben, terwijl veel wijzigingen aan kleine live bestanden de metadatadruk hoog kunnen houden; het juiste beleid hangt af van welke toestand de metingen aantonen.
Hervat de normale dienstverlening pas nadat het bestandssysteem schrijfbaar blijft, de apparaatstatistieken niet verder oplopen, een representatief bestand correct kan worden teruggezet of gehasht en monitoring waarschuwt voordat dezelfde marge verdwijnt. Schakel bij aanhoudende structurele fouten een Btrfs-herstel specialist in en werk vanaf een kloon in plaats van reparatieopdrachten te blijven herhalen op de enige kopie.
Ondersteuning & Tips
Meer om te lezen

Migratiegids voor Borg Backup: een repository naar nieuwe opslag verplaatsen
Verplaats een Borg-repository als één consistent geheel: stop schrijfbewerkingen, behoud sleutels en identiteit, controleer herstelbewerkingen en werk vervolgens clients bij terwijl de bron behouden...

Restic-repositoryonderhoudsworkflow: controleren, opschonen, comprimeren en herstel testen
Restic heeft geen afzonderlijk compact-commando: prune voert het opnieuw inpakken uit. Bescherm de locks en vrije ruimte, controleer daarna opnieuw en sluit af met...

Herstelgids voor Time Machine NAS-back-ups met een beschadigde of achtergelaten back-upgeschiedenis
Behoud de oude bundel. Scheid NAS-toegang, bestemmingsidentiteit, imagenschade en verlaten geschiedenis voordat je kiest voor herstel of een nieuwe keten.

