BTRFS Balance Bug dans le noyau 5.Top 10.X

BTRFS Balance Bug dans le noyau 5.Top 10.X
Il y a un bug dans le noyau 5.14.x qui fait en sorte qu'un système de fichiers BTRFS soit en lecture seule lors de la conversion du profil de métadonnées seul pour dup. Le système de fichiers va dans un état en lecture seule. La résolution de ce problème nécessite une solution non conventionnelle.

À propos des profils BTRFS

L'une des grandes caractéristiques de BTRFS est la possibilité d'utiliser les différents profils RAID. Étant donné que BTRFS stocke les données et les métadonnées séparément, vous pouvez rayer les données sur les disques sous le nom de RAID0 et refléter toutes les métadonnées comme RAID1. Cette redondance dans les métadonnées prend peu d'espace supplémentaire. Et ceci est recommandé dans les configurations BTRFS RAID0.

Il a toujours été suggéré de dupliquer les métadonnées, même sur un seul disque, car perdre les métadonnées signifie également perdre les données.

BTRFS est capable de modifier un profil RAID sur un système en direct, convertissant les données et les métadonnées pour fournir (ou supprimer) la redondance. Cela se produit avec un équilibre. Un équilibre BTRFS réécrit tous les blocs du système de fichiers et s'ajuste pour correspondre aux nouveaux profils comme il.

L'insecte

J'ai tenté de changer le profil de métadonnées sur mon seul disque à partir de seul pour dup pour la redondance.

$ sudo btrfs bilan start -mconvert = dup / mnt

Le système de fichiers est immédiatement entré dans un état en lecture seule. Le système est tombé. Quand il a redémarré, je n'ai pas pu dépasser les initramfs de récupération. Aucune donnée n'a pu être écrite sur le disque.

Lorsqu'une opération d'équilibre est interrompue sur le système de fichiers BTRFS, il reprend automatiquement la prochaine fois que le système de fichiers sera monté. Cela peut généralement être arrêté avec:

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

Ensuite, annulez si nécessaire en utilisant la commande suivante:

$ sudo btrfs bilan annule / mnt

Cependant, le bogue a non seulement provoqué le verrouillage de l'équilibre, mais les options de montage pour l'empêcher de continuer ont été ignorées. Chaque fois que le système de fichiers est monté, l'équilibre tente de reprendre. Il a échoué et le système de fichiers a continué à être en lecture seule. Si vous rencontrez ceci, vous devez démarrer n'importe quelle distribution à l'aide d'un noyau plus ancien. Dans mon cas, c'était arc avec 4.18.

Montez le système de fichiers avec l'ancien Kenel:

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

Annuler le solde:

$ sudo btrfs bilan annule / mnt

Effectuer à nouveau l'équilibre:

$ sudo btrfs bilan start -mconvert = dup / mnt

Une fois le solde terminé, vous pouvez démarrer en toute sécurité dans un noyau plus récent, maintenant avec des métadonnées dupliquées dans le système de fichiers. Vérifiez les profils utilisés par le système de fichiers. Vous verrez que vous avez deux copies des métadonnées de FileSytem et une seule copie des données:

$ sudo btrfs fi usage

Conclusion

BTRFS est un système de fichiers incroyable capable de nombreuses options avancées. Cependant, lorsque vous utilisez BTRFS, vous devriez avoir des sauvegardes fonctionnelles ainsi qu'un noyau bootable d'une distribution LTS pour le sauvetage du système. Même si un équilibre peut être exécuté sur un système de fichiers racine monté, il n'est pas toujours conseillé de le faire. Il y a encore de nombreux bogues dans le système de fichiers. Vous devez être préparé pour un sauvetage du système de fichiers lorsque le module BTRFS n'a pas été entièrement testé contre les grains de saignement.