Jak usunąć uszkodzony dysk z LVM2 przy mniejszej utracie danych w innych PV?

15

Miałem wolumin LVM2 z dwoma dyskami. Większy dysk został uszkodzony, więc nie mogę pvmove. Jaki jest najlepszy sposób na usunięcie go z grupy, aby zapisać jak najwięcej danych z drugiego dysku? Oto moje wyjście 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

Chcę więc usunąć nieznane urządzenie (nieobecne w systemie). Czy można to zrobić bez nowego dysku? System plików to ext4.

kissgyorgy
źródło
gdybym zrobił to, vgreduce --removemissing --force mediaco by się stało?
kissgyorgy

Odpowiedzi:

20
# 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

teraz wszystko działa dobrze!

Ahmed
źródło
Tak ... mam nadzieję, że nie potrzebujesz LogVol00 ... już go nie ma.
MikeyB
1
Lepiej stracić wszystko ...
kissgyorgy
1
och ... więc to jest sposób na wyleczenie z jednej brakującej nogi lustra vgreduce --removemissing --force $vgname?
Wodnik Moc
Jeśli dysk jest uszkodzony, dane z woluminu logicznego LogVol00 już zniknęły. Usunięcie go z grupy nie spowodowało usunięcia żadnych danych. Poza tym do tego służą kopie zapasowe.
jackohug
Przydało mi się to przy wielu okazjach w zarządzaniu ganeti za pomocą drbd.
dannyman 21.04.17
1

Ze strony podręcznika vgreduce:

   --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
źródło
1
więc w zasadzie, jeśli mój root /ma lustrzaną nogę, a to lustro się nie powiedzie, myślę, że boot się nie powiedzie, to w przypadku dystrybucji na żywo mogę uruchomić to polecenie, aby ponownie uzyskać dostęp do mojego systemu? więc również uważam, że najbezpieczniej jest mieć /bootpoza lvm, na prostej partycji ext4 2GB, z dystrybucją na żywo iso?
Wodnik Moc
1
@AquariusPower, rozruch nie powinien zakończyć się niepowodzeniem, jeśli brakuje jednej nogi lustra. Osobiście wolę używać mdadmraid i lvm na górze, aby podzielić tablicę na logiczne woluminy. Ładowanie bezpośrednio z macierzy RAID zamiast samodzielnego rozruchu / bootowania oznacza, że ​​system nadal może się dobrze uruchomić, jeśli główny dysk startowy zginie.
psusi
mmm ... Mam na każdym PV małą partycję do rozruchu, ale każda partycja jest niezależna; więc jeśli /bootzsynchronizuję je z raidem, prawdopodobnie mogę szybko uruchomić komputer, jeśli którykolwiek z nich się nie powiedzie; Podoba mi się to dzięki :), myślę też, że wolisz mdadm, ponieważ (być może?) Synchronizacja lustrzana lvm może być powolna i nie synchronizować wystarczającej ilości danych w czasie, aby zapewnić bezpieczne bezproblemowe uruchomienie w przypadku awarii jednego PV (jak w przypadku awarii zasilania).
Wodnik Moc
1
@AquariusPower, właściwie wolę mdadmraid zarówno dlatego, że wolę raid10 niż raid1, a także dlatego, że może on przekształcić tablicę (lvm nie może przekonwertować lustrzanego dysku 2 na 3-dyskowy dysk RAID5).
psusi