Laissez Btrfs faire tout.
D'une part, Btrfs a son propre code de mise en miroir intégré qui peut être plus intelligent que madm.
Bien sûr, si un disque tombe en panne dans une paire en miroir dans un madm raid10, vous pouvez remplacer le mauvais disque et continuer votre vie (bien qu'après un ensemble de commandes shell extrêmement pénible). Le problème est que si votre disque tombe en panne un peu plus doucement: si quelques blocs renvoient simplement les mauvais bits au lieu de donner les codes d'erreur appropriés pour un mauvais bloc, alors lors de la lecture des données, vous obtiendrez au hasard de mauvaises données. Btrfs est plus intelligent que cela: il additionne chaque bit de données. Pour être honnête, je ne sais pas s'il est plus correct de dire «chaque nœud BTree» ou «chaque bloc», mais le fait est que lorsqu'il lit certaines données d'un tableau en miroir, il vérifie la somme de contrôle avant de la restituer à votre processus utilisateur. Si la somme de contrôle ne correspond pas, elle consulte d'abord l'autre miroir du tableau, et si cela donne la somme de contrôle correcte,
Le wiki Btrfs mentionne spécifiquement votre question :
Si Btrfs devait s'appuyer sur le mappeur de périphériques ou le MD pour la mise en miroir, il ne serait pas en mesure de résoudre les échecs de somme de contrôle en vérifiant la copie en miroir . Les couches inférieures ne connaissent pas la somme de contrôle ou la granularité des blocs du système de fichiers et ne sont donc pas en mesure de vérifier les données qu'elles renvoient.
Enfin, même sans cet avantage substantiel, le flux de travail en ligne de commande pour traiter les périphériques Btrfs supprimés ou ajoutés est super simple. Je ne suis même pas sûr de pouvoir obtenir correctement les commandes de shell dégradé pour le montage, puis la réparation de votre système de fichiers, mais pour Btrfs, il est très clairement documenté sur la page des périphériques multiples comme:
mount -o degraded /dev/sdb /mnt
btrfs device delete missing /mnt
À ce stade, si vous avez suffisamment d'espace sur vos disques restants, vous pouvez toujours juste btrfs rebalance
et en finir avec; pas besoin de remplacer le miroir, comme il faudrait absolument le faire avec du madm! Et si vous voulez le remplacer, vous pouvez le faire en btrfs device add
premier.