J'avais une partition btrfs sur une matrice de 6 disques sans raid (métadonnées en raid10, mais données en single), et un des disques est mort.
Donc j'ai perdu certaines de mes données, ok, je le savais.
Mais deux questions :
-
Est-il possible de savoir (en utilisant les métadonnées, je suppose) quelles données j'ai perdues ?
-
Est-il possible de faire une sorte de "btrfs delete missing" sur ce genre de configuration, afin de récupérer l'accès en rw à mes autres données, ou dois-je copier toutes mes données sur une nouvelle partition ?
Merci pour toute aide
(Désolé pour mon mauvais anglais)
Edit : juste pour être clair, je peux le monter en lecture seule avec mount -o recovery,ro,degraded.
Et btrfs fi df /Data
Data, single: total=6.65TiB, used=6.65TiB
System, RAID1: total=32.00MiB, used=768.00KiB
Metadata, RAID1: total=13.00GiB, used=10.99GiB
GlobalReserve, single: total=512.00MiB, used=0.00B
0 votes
Après de petits échanges avec la liste de diffusion btrfs, le montage de mon disque avec dégradé et en ro, m'a permis de faire un scrub de mon disque. Il semblerait que je sois très chanceux, et que je n'ai perdu aucune donnée :) Sinon, j'aurais vu dans dmesg ou journalctl, beaucoup d'erreurs, y compris le chemin complet du fichier affecté.
0 votes
J'aimerais maintenant retrouver l'accès à mes données en rw, mais btrfs me l'interdit parce que mes données étaient "single". Même si aucune donnée n'a été affectée. Il semble que je n'ai que deux choix : Acheter au moins 7To de disque dur neuf, déplacer mes données, détruire et recréer ma partition, et déplacer à nouveau mes données. Prendre plus de risques de perdre des données en les piratant. C'est ce dernier choix que je vais faire. J'ai essayé de patcher le noyau pour supprimer le test m'interdisant l'accès en rw, et j'ai essayé un simple "btrfs remove missing". mais ça ne marche pas, je n'ai aucune idée de ce qu'il faut faire. Je suis ouvert à toute suggestion.
0 votes
Le test que j'ai effectué précédemment (en rapport avec le message précédent) était dans une machine virtuelle avec un cas de test fabriqué que je pensais représentatif de mon problème réel. Ce n'était pas le cas. Dans ma situation, "btrfs-debug-tree -t 3 /dev/sda6" ne mentionne nulle part le disque manquant (données ou métadonnées). Il n'y avait donc rien du tout dans le périphérique manquant. Dans le cas du test, il y avait des métadonnées (en raid 10) stockées sur le périphérique manquant. C'est pourquoi il criait. Avec ma vraie matrice, le patch était suffisant.