Como alterar o tamanho do PE de Volumegroup

1

Estou tentando aumentar o tamanho do PE de um dos meus grupos de volume.

Eu erroneamente defini como 4M para iniciar quando deveria ter sido 32M.

Quando tento alterar o tamanho, obtenho

vgchange -s 32M the_vol
New extent size is not a perfect fit

vgdisplay diz:

vgdisplay
--- Volume group ---
VG Name               the_vol
System ID             
Format                lvm2
Metadata Areas        1
Metadata Sequence No  173
VG Access             read/write
VG Status             resizable
MAX LV                0
Cur LV                43
Open LV               41
Max PV                0
Cur PV                1
Act PV                1
VG Size               864.25 GiB
PE Size               4.00 MiB
Total PE              221247
Alloc PE / Size       103680 / 405.00 GiB
Free  PE / Size       117567 / 459.25 GiB
VG UUID               uh25Y8-TOWR-pqBj-NyPV-ca6t-ec1k-jlqm4g

Há algo que eu possa fazer para obter essa alteração para 32 sem recriá-la / excluir os dados?

Ou chegar perto de 32.

Obrigado

    
por awmusic12635 28.06.2013 / 01:36

3 respostas

2

Você pode usar pvmove para mover as extensões físicas alocadas no (s) volume (s) físico (s). Você deve fazer com que todos os volumes lógicos comecem e terminem em limites de extensão (cresça com lvresize ). O (s) tamanho (s) de volume físico subjacente provavelmente também deve ser um múltiplo exato do novo tamanho de extensão (corrija isso com pvresize ).

Como mencionado em uma resposta de superusuário a uma pergunta relacionada, você pode usar algo assim:

pvmove --alloc anywhere /dev/sdc1:103680-221247 /dev/sdc1:0-103679

para mover as extensões 103680-221247 para 0-103679 no volume físico /dev/sdc1 . Pode ser necessário mover segmentos em etapas. Use pvdisplay --maps /dev/sdc1 para mostrar quais extensões estão alocadas no volume físico /dev/sdc1 .

Observe que o tamanho da extensão não deve afetar o desempenho de E / S (no LVM2), apenas o desempenho das próprias ferramentas do LVM e os tamanhos máximos dos componentes do LVM devem ser afetados.

    
por 16.03.2015 / 16:34
1

Você só pode alterar o tamanho da extensão física de um grupo de volumes se nenhuma extensão física existente precisar ser movida para concluir a alteração. Caso contrário, você receberá o erro que você postou acima.

A única outra opção é recriar o grupo de volumes com o tamanho correto.

Para citar a página man:

Once this value has been set, it is difficult to change it without recreating the volume group which would involve backing up and restoring data on any logical volumes. However, if no extents need moving for the new value to apply, it can be altered using vgchange -s.

    
por 28.06.2013 / 01:58
0

É possível, mas difícil. Se você tiver a opção, recriar o VG é uma opção muito melhor.
No entanto, isso não era uma opção para mim, então aqui está como eu mudei meu tamanho de PE de 4MB para 32MB.

  • Primeiro, reduza seus PVs para um tamanho divisível pelo tamanho do PE desejado, por exemplo: pvresize /dev/sdb --setphysicalvolumesize 3778436m
  • Em seguida, redimensione todos os seus LVs para um tamanho divisível pelo tamanho pretendido do PE usando lvresize , por exemplo: lvresize /dev/libvirtstorage/debian-8.7.1-amd64-netinst.iso --size 256
  • O próximo passo é garantir que os segmentos individuais que compõem cada imagem estejam alinhados ao novo PE. Este é duvidoso, como você basicamente tem que "desfragmentar" o seu VG.
    Eu usei a ferramenta " lvm2defrag " para isso (você não precisa rodar isso na própria máquina, você pode rodar isso em qualquer máquina com o PHP instalado, ele apenas irá gerar os comandos necessários)
  • Depois disso, se o tamanho total do volume, o tamanho do fragmento LV e o espaço livre forem todos divisíveis pelo tamanho do PE desejado, você poderá alterar o tamanho do PE:% vgchange -s 32m the_vol

Todo este processo pode ser feito sem qualquer tempo de inatividade, todo o VG continua operando durante tudo isso.
Mais um pitfal a notar: Cuidado com a diferença entre 32m e 32M , os comandos LVM interpretam letras minúsculas m como MiB e maiúsculas M como MB.

    
por 15.08.2018 / 09:54