Como remover um disco defeituoso do LVM2 com menos perda de dados em outros PVs?

15

Eu tinha um volume LVM2 com dois discos. O disco maior ficou corrompido, então eu não posso mudar. Qual é a melhor maneira de removê-lo do grupo para salvar o máximo de dados do outro disco? Aqui está minha saída 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

Então, eu quero remover o dispositivo desconhecido (não presente no sistema). É possível fazer isso sem um novo disco? O sistema de arquivos é ext4.

kissgyorgy
fonte
se eu fizesse vgreduce --removemissing --force mediao que aconteceria?
Kissgyorgy 7/10

Respostas:

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

agora tudo funciona bem!

ahmed
fonte
Sim ... espero que você não precise do LogVol00 ... se foi agora.
precisa saber é o seguinte
1
Melhor, em seguida, perder tudo ...
kissgyorgy
1
ah .. então essa é a maneira de se recuperar de uma perna faltando no espelho vgreduce --removemissing --force $vgname?
Aquarius Power
Se o disco estiver com defeito, os dados do volume lógico LogVol00 já se foram. Removê-lo do grupo não removeu mais nenhum dado. Além disso, é para isso que servem os backups.
jackohug
Isso me provou útil em várias ocasiões agora no gerenciamento de ganeti com drbd.
Dannyman
1

Na vgreducepágina do 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).
psusi
fonte
1
basicamente, se minha raiz /tiver uma perna de espelho e esse espelho falhar, acho que a inicialização falhará, então, com uma distribuição ao vivo, posso executar esse comando para acessar novamente meu sistema? então, também, acho que o mais seguro é ter /bootfora do lvm, em uma partição ext4 simples de 2 GB, com a distribuição ao vivo iso?
Poder de Aquário
1
@AquariusPower, a inicialização não deve falhar se uma perna do espelho estiver faltando. Pessoalmente, prefiro usar mdadmpara lidar com o ataque e o lvm no topo apenas para dividir o array em volumes lógicos. A inicialização direta a partir do array raid, em vez de ter uma inicialização / stand-alone, significa que o sistema ainda pode inicializar perfeitamente se o disco de inicialização principal morrer.
Psusi
mmm ... Eu tenho, em cada PV, uma pequena partição para inicialização, mas cada partição é independente; portanto, se eu /bootsincronizá- las com o raid, provavelmente posso inicializar rapidamente se algum deles falhar; Gosto disso graças :), também acho que você prefere mdadm, pois (talvez?) A sincronização espelhada lvm pode ser lenta e não sincronizar dados suficientes a tempo de garantir uma inicialização contínua e segura, caso um PV falhe (como em um blecaute).
Poder de Aquário
1
@AquariusPower, na verdade, eu prefiro mdadmo RAID porque prefiro o RAID10 do que o RAID1 e porque ele pode remodelar a matriz (o lvm não pode converter um espelho de 2 discos em um RAID5 de 3 discos, por exemplo).
Psusi