Comment supprimer le mauvais disque de LVM2 avec moins de perte de données sur d'autres PV?

15

J'avais un volume LVM2 avec deux disques. Le plus gros disque est devenu corrompu, donc je ne peux pas pvmove. Quelle est la meilleure façon de le supprimer du groupe pour enregistrer le plus de données de l'autre disque? Voici ma sortie pvdisplay:

Couldn't find device with uuid WWeM0m-MLX2-o0da-tf7q-fJJu-eiGl-e7UmM3.
  --- Physical volume ---
  PV Name               unknown device
  VG Name               media
  PV Size               1,82 TiB / not usable 1,05 MiB
  Allocatable           yes (but full)
  PE Size               4,00 MiB
  Total PE              476932
  Free PE               0
  Allocated PE          476932
  PV UUID               WWeM0m-MLX2-o0da-tf7q-fJJu-eiGl-e7UmM3

  --- Physical volume ---
  PV Name               /dev/sdb1
  VG Name               media
  PV Size               931,51 GiB / not usable 3,19 MiB
  Allocatable           yes (but full)
  PE Size               4,00 MiB
  Total PE              238466
  Free PE               0
  Allocated PE          238466
  PV UUID               oUhOcR-uYjc-rNTv-LNBm-Z9VY-TJJ5-SYezce

Je souhaite donc supprimer le périphérique inconnu (non présent dans le système). Est-il possible de le faire sans nouveau disque? Le système de fichiers est ext4.

kissgyorgy
la source
si je faisais ce vgreduce --removemissing --force mediaqui se passerait?
kissgyorgy

Réponses:

19
# pvdisplay
Couldn't find device with uuid EvbqlT-AUsZ-MfKi-ZSOz-Lh6L-Y3xC-KiLcYx.
  --- Physical volume ---
  PV Name               /dev/sdb1
  VG Name               vg_srvlinux
  PV Size               931.51 GiB / not usable 4.00 MiB
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              238466
  Free PE               0
  Allocated PE          238466
  PV UUID               xhwmxE-27ue-dHYC-xAk8-Xh37-ov3t-frl20d

  --- Physical volume ---
  PV Name               unknown device
  VG Name               vg_srvlinux
  PV Size               465.76 GiB / not usable 3.00 MiB
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              119234
  Free PE               0
  Allocated PE          119234
  PV UUID               EvbqlT-AUsZ-MfKi-ZSOz-Lh6L-Y3xC-KiLcYx



# vgreduce --removemissing --force vg_srvlinux


  Couldn't find device with uuid EvbqlT-AUsZ-MfKi-ZSOz-Lh6L-Y3xC-KiLcYx.
  Removing partial LV LogVol00.
  Logical volume "LogVol00" successfully removed
  Wrote out consistent volume group vg_srvlinux

# pvdisplay

 --- Physical volume ---
  PV Name               /dev/sdb1
  VG Name               vg_srvlinux
  PV Size               931.51 GiB / not usable 4.00 MiB
  Allocatable           yes
  PE Size               4.00 MiB
  Total PE              238466
  Free PE               238466
  Allocated PE          0
  PV UUID               xhwmxE-27ue-dHYC-xAk8-Xh37-ov3t-frl20d

maintenant tout fonctionne bien!

ahmed
la source
Ouais ... j'espère que tu n'avais pas besoin de LogVol00 ... c'est parti maintenant.
MikeyB
1
Mieux que de tout perdre ...
kissgyorgy
1
oh .. c'est donc le moyen de récupérer d'une jambe de miroir manquante vgreduce --removemissing --force $vgname?
Aquarius Power
Si le disque est défectueux, les données du volume logique LogVol00 ont déjà disparu. Le supprimer du groupe n'a plus supprimé de données. C'est d'ailleurs à cela que servent les sauvegardes.
jackohug
Cela m'a été utile à plusieurs reprises dans la gestion de ganeti avec drbd.
dannyman
1

Depuis la vgreducepage de manuel:

   --removemissing
          Removes all missing physical volumes from the volume group, if there are no  logical  volumes
          allocated  on  those.  This resumes normal operation of the volume group (new logical volumes
          may again be created, changed and so on).

          If this is not possible (there are logical volumes referencing the missing physical  volumes)
          and  you  cannot or do not want to remove them manually, you can run this option with --force
          to have vgreduce remove any partial LVs.

          Any logical volumes and dependent snapshots that were partly on the missing disks get removed
          completely. This includes those parts that lie on disks that are still present.

          If  your  logical  volumes  spanned several disks including the ones that are lost, you might
          want to try to salvage data first by  activating  your  logical  volumes  with  --partial  as
          described in lvm (8).
psusi
la source
1
Donc, fondamentalement, si ma racine /a une jambe de miroir, et que ce miroir échoue, je pense que le démarrage échouera, alors, avec une distribution iso en direct, je peux exécuter cette commande pour accéder à nouveau à mon système? donc, aussi, je pense que le plus sûr est d'avoir en /bootdehors de lvm, sur une simple partition ext4 de 2 Go, avec la distribution iso en direct?
Aquarius Power
1
@AquariusPower, le démarrage ne devrait pas échouer si une jambe du miroir est manquante. Personnellement, je préfère utiliser mdadmpour gérer le raid et lvm sur le dessus juste pour diviser le tableau en volumes logiques. Démarrer directement à partir de la baie de disques au lieu d'avoir un système autonome / démarrage signifie que le système peut toujours démarrer très bien si le disque de démarrage principal meurt.
psusi
mmm ... J'ai, sur chaque PV, une petite partition de démarrage, mais chaque partition est indépendante; donc si je les /bootsynchronise avec le raid, je peux probablement démarrer rapidement si l'un d'entre eux échoue; J'aime ça merci :), je suppose également que vous préférez mdadm car (peut-être?) La synchronisation miroir lvm peut être lente et ne pas synchroniser suffisamment de données à temps pour assurer un démarrage sans danger en cas de panne d'un PV (comme lors d'une panne d'électricité).
Aquarius Power
1
@AquariusPower, en fait je préfère mdadmle raid à la fois parce que je préfère raid10 à raid1, et parce qu'il peut remodeler le tableau (lvm ne peut pas convertir un miroir à 2 disques en un raid5 à 3 disques par exemple).
psusi