web-dev-qa-db-fra.com

Comment btrfs RAID fonctionne-t-il en mode dégradé?

Mon idée était que (en utilisant des dispositifs de bouclage) cela fonctionne comme ceci

  1. Créer le tableau RAID Sudo mkfs.btrfs -m raid1 -d raid1 /dev/loop1 /dev/loop2
  2. Vous les montez Sudo mount /dev/loop1 /mnt et les marquez touch goodcondition
  3. Vous démontez et simulez une défaillance du disque (retirez le disque ou supprimez le périphérique de bouclage loop2 dans mon cas)
  4. Vous montez -o degraded dégradé et marquez à nouveau touch degraded
  5. Vous ajoutez à nouveau le disque défectueux Sudo btrfs dev add /dev/loop2
  6. Vous rééquilibrez Sudo btrfs fi ba /mnt

Et Raid 1 devrait fonctionner à nouveau. Mais ce n'est pas le cas. Sudo btrfs fi show:

Total devices 3 FS bytes used 28.00KB
devid    3 size 4.00GB used 264.00MB path /dev/loop1
devid    2 size 4.00GB used 272.00MB path /dev/loop2
*** Some devices missing

Le fichier degraded réside sur loop1 mais pas sur loop2 lorsque loop2 est monté en mode dégradé. Pourquoi donc?

6
turbo

On dirait que vous avez ajouté un troisième appareil et que le second d'origine est toujours manquant. Je suppose que vous devez supprimer le périphérique manquant avant d’ajouter le nouveau. La liste de diffusion brtfs pourrait également être un meilleur endroit pour poser cette question.

3
psusi

Dans cette situation, vous devez faire deux choses. Tout d’abord, vous devez indiquer à btrfs que le périphérique manquant a définitivement disparu: btrfs dev delete missing /mnt (missing est un mot-clé indiquant tout périphérique manquant). Deuxièmement, vous devez rééquilibrer pour vous assurer que les données sont correctement répliquées: btrfs fi balance /mnt.

4
amcnabb