¿Cómo eliminar un disco defectuoso de LVM2 con la menor pérdida de datos en otros PV?


15

Tenía un volumen LVM2 con dos discos. El disco más grande se corrompió, así que no puedo moverme. ¿Cuál es la mejor manera de eliminarlo del grupo para guardar la mayoría de los datos del otro disco? Aquí está mi salida 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

Entonces, quiero eliminar el dispositivo desconocido (no presente en el sistema). ¿Es posible hacer esto sin un nuevo disco? El sistema de archivos es ext4.


si yo hiciera vgreduce --removemissing --force medialo que sucedería?
kissgyorgy

Respuestas:


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

ahora todo funciona bien!


Sí ... espero que no necesites LogVol00 ... ya no está.
MikeyB

1
Mejor que perder todo ...
kissgyorgy

1
oh .. entonces esta es la manera de recuperarse de una pata de espejo faltante vgreduce --removemissing --force $vgname?
Acuario Power

Si el disco está dañado, los datos del volumen lógico LogVol00 ya se han ido. Eliminarlo del grupo no ha eliminado más datos. Además, para eso están las copias de seguridad.
jackohug

Esto me ha resultado útil en múltiples ocasiones ahora para administrar ganeti con drbd.
dannyman

1

Desde la vgreducepágina del manual:

   --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).

1
así que, básicamente, si mi raíz /tiene una pata de espejo, y ese espejo falla, creo que el arranque fallará, entonces, con una iso de distribución en vivo, ¿puedo ejecutar ese comando para acceder nuevamente a mi sistema? entonces, también, creo que lo más seguro es tener /bootfuera de lvm, en una simple partición ext4 de 2GB, con la iso de distribución en vivo?
Acuario Power

1
@AquariusPower, el arranque no debe fallar si falta una pata del espejo. Personalmente, prefiero usar mdadmpara manejar la incursión y lvm en la parte superior solo para dividir la matriz en volúmenes lógicos. Arrancar directamente desde la matriz de incursiones en lugar de tener un arranque / arranque independiente significa que el sistema aún puede arrancar bien si el disco de arranque primario muere.
psusi

mmm ... Tengo, en cada PV, una pequeña partición para el arranque, pero cada partición es independiente; así que si los /bootsincronizo con raid, probablemente pueda arrancar rápidamente si alguno de estos falla; Me gusta esto gracias :), también supongo que prefieres mdadm ya que (¿tal vez?) La sincronización del espejo lvm puede ser lenta y no sincronizar suficientes datos a tiempo para garantizar un arranque sin problemas y seguro en caso de que un PV falle (como en un apagón).
Acuario Power

1
@AquariusPower, en realidad prefiero mdadmla incursión tanto porque prefiero raid10 sobre raid1 como porque puede remodelar la matriz (lvm no puede convertir un espejo de 2 discos en una incursión de 3 discos, por ejemplo).
psusi
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.