Liste de contrôle de récupération des métadonnées Btrfs pour un serveur domestique presque plein

Eva Wong est la rédactrice technique et bricoleuse résidente chez ZimaSpace. Geek depuis toujours, passionnée par les homelabs et les logiciels open source, elle se spécialise dans la traduction de concepts techniques complexes en guides accessibles et pratiques. Eva croit que l’auto-hébergement doit être amusant, pas intimidant. À travers ses tutoriels, elle donne à la communauté les moyens de démystifier les configurations matérielles, depuis la construction de leur premier NAS jusqu’à la maîtrise des conteneurs Docker.

L’approche sûre consiste à traiter la stabilisation des écritures, la récupération d’espace de travail, l’exécution d’un équilibrage filtré uniquement et la vérification des données avant le retour au service normal comme une suite de seuils observables, et non comme une seule commande.

Sur un système de fichiers Btrfs de serveur domestique presque plein, le risque concret est que Btrfs signale ENOSPC ou passe en lecture seule lorsque l’espace réservé aux métadonnées est épuisé. Notez l’identité actuelle et le point de récupération, commencez par le test différenciateur le moins invasif, interprétez les résultats réussis et échoués avant de modifier une autre variable, puis arrêtez-vous lorsque le stockage devient instable ou que seule la copie récupérable risque d’être exposée. Le processus ci-dessous ne se termine que lorsque la charge de travail d’origine réussit ou que les éléments recueillis atteignent un seuil nécessitant une escalade.

Stabiliser le système de fichiers avant toute tentative de réparation

Arrêtez les conteneurs, les téléchargements, les instantanés et les tâches générant beaucoup de journaux qui écrivent sur le système de fichiers concerné. Enregistrez les erreurs du noyau et la sortie de btrfs device stats ailleurs. Si le système de fichiers est remonté en lecture seule ou signale des erreurs de somme de contrôle, de parent transid ou d’E/S, conservez-le en lecture seule jusqu’à disposer d’une copie récupérable.

Ne commencez pas par btrfs check --repair, un équilibrage complet, une défragmentation ou une suppression massive. La question immédiate est de savoir si l’état valide du système de fichiers manque d’espace de travail pour l’allocation ou si des erreurs de stockage endommagent les métadonnées ; une réparation effectuée en premier peut rendre cette distinction plus difficile et consommer l’espace restant.

Le seuil de sécurité est franchi lorsque les services générant beaucoup d’écritures sont arrêtés, que les données importantes disposent d’une autre copie et que vous savez quel périphérique bloc et quel point de montage vous examinez. Passez à la création d’une image de récupération si le périphérique se réinitialise, disparaît ou accumule des erreurs de lecture.

Lire l’allocation plutôt que le simple chiffre d’espace libre

Exécutez btrfs filesystem usage -T /mount, btrfs filesystem df /mount, btrfs device usage /mount et examinez les messages récents du noyau. Comparez l’espace réservé et utilisé pour les métadonnées ainsi que l’espace non alloué disponible sur chaque périphérique ; la commande df ordinaire ne suffit pas à montrer si Btrfs peut allouer un autre bloc de métadonnées.

Un équilibrage ciblé nécessite un espace de travail entièrement inutilisé. Ce guide de l’équilibrage ciblé de Btrfs explique qu’un équilibrage sans filtre réécrit tous les groupes de blocs admissibles et que l’objectif est de conserver de l’espace non alloué au niveau des périphériques, et non simplement de supprimer un gros fichier en supposant que les métadonnées pourront augmenter.

Si l’espace réservé aux métadonnées est élevé mais qu’il reste de l’espace non alloué, un petit équilibrage filtré peut récupérer des blocs vides ou peu utilisés. Si aucun périphérique ne dispose d’espace de travail, supprimez d’abord, par petites séries, les données ou instantanés pouvant être supprimés sans risque, ou ajoutez un périphérique temporaire adapté au profil du système de fichiers ; ne lancez pas une relocalisation qui ne pourrait pas aller jusqu’au bout.

Récupérer de l’espace de travail avec l’action la moins invasive

Commencez par supprimer les fichiers dispensables qui ne sont pas conservés par des instantanés, puis supprimez uniquement les instantanés dont l’inutilité est confirmée. Synchronisez et vérifiez à nouveau l’utilisation après chaque petite modification. Si un équilibrage est justifié, commencez par btrfs balance start -dusage=0 -musage=0 /mount ou par un autre filtre étroit choisi en fonction de l’allocation observée, et non par un équilibrage complet.

La description du manuel Linux du fonctionnement de l’équilibrage filtré indique que les filtres limitent la relocalisation et qu’une erreur ENOSPC peut survenir lorsque l’équilibrage lui-même manque d’espace de travail. Surveillez btrfs balance status et les journaux du noyau. Si la relocalisation augmente les erreurs, reste bloquée avec des défauts du périphérique ou consomme la dernière marge de sécurité, annulez-la et revenez à une récupération en lecture seule.

N’enchaînez pas les filtres et les suppressions sans effectuer de mesures entre les étapes. La branche de récupération réussit lorsque les métadonnées disposent d’une marge suffisante, que de l’espace non alloué existe sur les périphériques nécessaires et qu’une petite écriture s’effectue sans nouvelle erreur ENOSPC ni passage forcé en lecture seule.

Vérifier les données et empêcher une rechute immédiate

Ne redémarrez qu’un seul service à faible risque et reproduisez la charge de travail qui a initialement rempli les métadonnées, comme la création d’un instantané ou la modification de nombreux petits fichiers. Vérifiez à nouveau l’utilisation et les journaux du noyau après la charge de travail et après un redémarrage. Un montage qui fonctionne une fois mais repasse en lecture seule lors des modifications normales n’est pas récupéré.

Utilisez la méthode de ZimaSpace pour déterminer si des instantanés ou des fichiers actifs utilisent l’espace du NAS avant de modifier la conservation. Les étendues conservées par les instantanés peuvent donner l’impression que la suppression est sans effet, tandis que les modifications fréquentes de petits fichiers actifs peuvent maintenir une forte pression sur les métadonnées ; la politique appropriée dépend de l’état établi par les mesures.

Ne reprenez le service normal qu’une fois le système de fichiers resté inscriptible, les statistiques des périphériques cessé d’augmenter, un fichier représentatif restauré ou vérifié correctement par hachage et les alertes de surveillance configurées avant que la même marge ne disparaisse. Confiez les erreurs structurelles persistantes à un spécialiste de la récupération Btrfs et travaillez à partir d’un clone plutôt que de répéter des commandes de réparation sur l’unique copie.

Assistance et conseils

Plus à lire

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.