Un disque Btrfs défectueux en RAID-1 peut-il être remplacé en direct?

15

J'essaie de décider d'un système de fichiers et je voudrais savoir s'il est possible de remplacer un disque défectueux en RAID btrfs sans temps d'arrêt.

  1. Supposons que je crée un nouveau système de fichiers btrfs à l'aide de la commande

    mkfs.btrfs -d raid1 /dev/sdb /dev/sdc
    
  2. Supposons maintenant qu'un jour /dev/sdcéchoue. Il y a deux possibilités: il peut échouer progressivement, montrant des erreurs SMART - dans cette situation, je peux ajouter un nouveau périphérique avec btrfs device add /dev/sde /mnt; btrfs filesystem balance /mntpuis supprimer l'ancien avec btrfs device delete /dev/sdc /mnt.

  3. Mais s'il échoue soudainement, devenant illisible ... Une recherche sur le Web dit que dans cette situation, je dois d'abord démonter le système de fichiers, monter en mode dégradé, ajouter un nouveau périphérique, puis supprimer le périphérique manquant.

    umount /mnt
    mount -o degraded /dev/sdb /mnt
    btrfs device add /dev/sdf /mnt 
    btrfs device delete missing /mnt
    

Un démontage est évidemment une opération perturbatrice, il y aurait donc un temps d'arrêt - toute application utilisant le système de fichiers obtiendrait une erreur d'E / S. Mais ce type de "tutoriels" sur btrfs semble obsolète, étant donné que btrfs est en cours de développement.

La question est: compte tenu de l'état actuel de btrfs, est-il possible de le faire en ligne, c'est-à-dire sans démontage?

Sinon, existe-t-il une solution logicielle qui peut répondre à ce besoin?

Rien n'est impossible
la source
1
Si un lecteur prend feu, le reste de votre système est probablement en feu également
Journeyman Geek
1
@JourneymanGeek Funny you .. :) Je voulais juste dire très clairement que je voulais dire une panne catastrophique, soudaine et imprévisible - le lecteur cesse tout simplement de fonctionner. C'est plutôt rare, le disque dur tombe généralement en panne progressivement et avec une surveillance efficace, je peux les remplacer avant que cela ne se produise, mais si ...
NothingsImpossible
2
Dans Linux 3.8 a btrfs replace mountpoint old_disk new_diskété ajouté.
Brian
@Brian woow ... Telle est la réponse. J'ai googlé pour "remplacer btrfs" et cela est apparu lwn.net/Articles/524589 . C'est _exactement_ ce que je cherchais. Veuillez le poster comme réponse afin que je puisse l'accepter.
NothingsImpossible

Réponses:

11

Dans Linux 3.8, a btrfs replace mountpoint old_disk new_diskété ajouté. Si vous utilisez un noyau récent, il fournira les fonctionnalités que vous recherchez.

Brian
la source
4
Ce serait maintenant btrfs replace start /dev/old /dev/new /mountpoint(le début a été ajouté). Voir aussi man btrfs-replace.
basic6
1

petite correction, la syntaxe actuelle est:

btrfs replace start OLDDEV NEWDEV MOUNTPOINT

qui puis arrière-plans.

Vous pouvez vérifier le statut avec

btrfs remplace le statut MOUNTPOINT

qui vous montrera un état constamment mis à jour de l'opération de remplacement.

Volker
la source
1
Ce n'est pas une réponse à la question d'origine. Pour critiquer ou demander des éclaircissements à un auteur, laissez un commentaire sous son article - vous pouvez toujours commenter vos propres articles, et une fois que vous aurez une réputation suffisante, vous pourrez commenter n'importe quel article .
DavidPostill