Como redimensionar de volta um LVM volumétrico lógico?

0

Eu estava tentando deixar mais espaço disponível em / datos e interromper a configuração do meu servidor.

  • Primeiro, descobri uma configuração LVM.

  • Em seguida, no cliente VMWARE, clico em configurações de edição e adiciono 50 GB ao disco virtual.

  • Em seguida, pvresize 300G / dev / sda2 o único PV, que pertence a vg_admision1vm

  # pvdisplay

  --- Physical volume ---
  PV Name               /dev/sda2
  VG Name               vg_admision1vm
  PV Size               249.51 GiB / not usable 2.00 MiB
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              63874
  Free PE               0
  Allocated PE          63874
  PV UUID               dQO15U-Zyhb-LSSY-P7do-BXnj-3PC5-E127UE

  # pvresize --setphysicalvolumesize 300G /dev/sda

  WARNING: /dev/sda2: Overriding real size. You could lose data.
  Physical volume "/dev/sda2" changed
  1 physical volume(s) resized / 0 physical volume(s) not resized


  # pvdisplay 

  --- Physical volume ---
  PV Name               /dev/sda2
  VG Name               vg_admision1vm
  PV Size               300.00 GiB / not usable 3.00 MiB
  Allocatable           yes
  PE Size               4.00 MiB
  Total PE              76799
  Free PE               12925
  Allocated PE          63874
  PV UUID               dQO15U-Zyhb-LSSY-P7do-BXnj-3PC5-E127UE
  • Finalmente, executei para estender um volume lógico em vg_admision1vm.
 # lvextend -L+30G /dev/mapper/vg_admision1vm-LogVol04 
  Size of logical volume vg_admision1vm/LogVol04 changed from 140.38 GiB (35938 extents) to 170.38 GiB (43618 extents).
  device-mapper: resume ioctl on  failed: Invalid argument
  Unable to resume vg_admision1vm-LogVol04 (253:2)
  Problem reactivating LogVol04
  Releasing activation in critical section.
  libdevmapper exiting with 1 device(s) still suspended.
  • Depois desse erro eu li que ao redimensionar um LV deve-se redimensionar o fs. Mas eu não fiz isso. Depois disso, qualquer comando lv sair, então eu reiniciar a máquina e no tempo de inicialização eu recebo:
/dev/mapper/vg_admision1vm-LogVol04 is mounted.
e2fsck: Cannot continue, aborting.
  • Acho que redimensionar de volta LogVol04 é uma boa ideia, porque meu entendimento diz que o mapeador de dispositivo não pode criar o dispositivo /dev/mapper/vg_admision1vm-LogVol04 porque o sistema de arquivos e o volume lógico têm tamanhos diferentes. Como redimensionar novamente vg_admision1vm-LogVol04 para reduzir 30 GB?

  • Eu também acho que é possível, de certa forma, configurar corretamente o mapeador de dispositivos usando o dmsetup.

  • / dev / mapper / vg_admision1vm-LogVol04 costumava ser montado em / datos.

  • No vg_admision1vm pertence mais volumes lógicos, mas aparentemente não são afetados.

  • Não sei como funciona, mas noto que a tabela para logVOl04 está vazia, talvez para definir uma tabela poderia funcionar, mas eu não sei como definir uma tabela dado um volume lógico.

  • Também testei isso e observei esse estado estranho:

    # umount /datos
    unmount: /datos: not mounted
    # mount -t ext4 /dev/sda2 /datos
    /dev/sda2 already mounted or /datos busy
    mount: according to mtab, /dev/mapper/vg_admision1vm-LogVol04 is already mounted on /datos
    
por jaundavid 05.04.2016 / 03:04

2 respostas

2

Acho que o seguinte é a resposta:

pvresize --setphysicalvolumesize 300G /dev/sda

WARNING: /dev/sda2: Overriding real size. You could lose data.

Você deve ter redimensionado o item antes de redimensionar o PV. Agora você tem 300GB PV na partição de 250GB. Estou surpreso que isso seja permitido sem a opção --force .

Felizmente você não estendeu o FS. O LV não é utilizável no momento - não pode ser ativado e permanece suspenso:

device-mapper: resume ioctl on failed: Invalid argument Unable to resume vg_admision1vm-LogVol04 (253:2) Problem reactivating LogVol04 Releasing activation in critical section. libdevmapper exiting with 1 device(s) still suspended.

Reduzir o LV funciona bem para mim: basta executar lvresize -L-30G /dev/vg_admision1vm/LogVol04 resposta sim para a pergunta assustadora e o dispositivo será retomado.

Agora você deve estender a partição (o que pode não ser possível enquanto o dispositivo estiver usando) ou reduzir o PV e começar de novo.

Existem vários tutoriais sobre como redimensionar a partição. Este é um processo pouco propenso a erros. É melhor você ter um backup. Usando fdisk , você precisa excluir a partição e, em seguida, recriá-la com o tamanho do objeto. (g)parted faz isso em segundo plano para você.

Um conselho: Nunca execute o fsck em dispositivos quebrados. Tente primeiro recuperar dados, neste caso faltando blocos. Executar o fsck no sistema de arquivos com partes ausentes irá arruiná-lo.

Felizmente, nada poderia ter sido escrito lá, portanto você não deve ter corrupção de dados.

Segundo conselho: dê uma olhada em lsblk e lsblk -s output. Ao estender você começa no "bottom": disco, [partição], [LUKS], PV, LV, FS. Ao reduzir, você precisa iniciar no topo, primeiro reduzindo o sistema de arquivos, depois o dispositivo diretamente sob o FS, etc.

Aqui você estendeu o disco, então primeiro deveria ter estendido a partição, depois o PV. Isso resultaria em espaço livre no VG para que você pudesse redimensionar o LV e depois o FS.

    
por 05.04.2016 / 09:39
0

Eu enfrento um problema semelhante hoje. Não lembro por que usei o comando pvresize --setphysicalvolumesize há muito tempo, mas foi uma má ideia.

Estenda o disco rígido e pvresize /dev/sdnX deve fazer o trabalho sem indicar tamanho.

Minha solução foi inicializar uma distro ao vivo, para estender a partição do PV /dev/sdnX com fdisk , excluindo a partição e recriando com mais setores, (reinicialize se necessário) e então pvresize /dev/sdnX . Como sugerido por Martian, parted faz o trabalho para você.

resize2fs do LV, execute uma verificação do sistema de arquivos ( e2fsck -f /dev/sdnX ) e monte-o.

    
por 26.06.2018 / 08:43