[root@localhost ~] vgdisplay
--- Volume group ---
VG Name vg_root
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 7
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 3
Open LV 0
Max PV 0
Cur PV 1
Act PV 1
VG Size 297,59 GiB
PE Size 4,00 MiB
Total PE 76182
Alloc PE / Size 59392 / 232,00 GiB
Free PE / Size 16790 / 65,59 GiB
VG UUID XXXXXXXXXX
PV:
[root@localhost ~] pvdisplay
--- Physical volume ---
PV Name /dev/mapper/udisks-luks-uuid-ASDFASDF
VG Name vg_root
PV Size 297,59 GiB / not usable 2,00 MiB
Allocatable yes
PE Size 4,00 MiB
Total PE 76182
Free PE 16790
Allocated PE 59392
PV UUID YYYYYYYYYYY
Então, eu tenho um VG com 65 GByte de espaço livre. Mas quando eu quero reduzir esse grupo de volumes em cerca de 50 GByte:
pvresize -tv --setphysicalvolumesize 247G /dev/mapper/udisks-luks-uuid-ASDFASDF
Test mode: Metadata will NOT be updated and volumes will not be (de)activated.
Using physical volume(s) on command line
Test mode: Skipping archiving of volume group.
/dev/mapper/udisks-luks-uuid-ASDFASDF: Pretending size is 517996544 not 624087040 sectors.
Resizing volume "/dev/mapper/udisks-luks-uuid-ASDFASDF" to 624087040 sectors.
Resizing physical volume /dev/mapper/udisks-luks-uuid-ASDFASDF from 0 to 63231 extents.
/dev/mapper/udisks-luks-uuid-ASDFASDF: cannot resize to 63231 extents as later ones are allocated.
0 physical volume(s) resized / 1 physical volume(s) not resized
Test mode: Wiping internal cache
Wiping internal VG cache
Portanto, a mensagem de erro é:
cannot resize to 63231 extents as later ones are allocated.
P: Como posso desfragmentar o vg_root para remover a parte desnecessária dele?
ps: Eu já descobri que só preciso redimensionar o PV para redimensionar o VG, ou existem comandos melhores para redimensionar o VG (por exemplo: o que posso fazer se você quiser vários VGs em um PV? ... )?
partition
lvm
scientific-linux
gasko peter
fonte
fonte
sudo pvmove --alloc anywhere /dev/sdX2:60000-76182 /dev/sdX2:3000-19182
Estas são as etapas necessárias para redimensionar uma partição LVM ou LVM2:
O último comando
pvresize
,, pode gerar o erroVocê precisa reorganizar o espaço não alocado no final do LVM. Isso significa que após a raiz e a partição swap_1. Você pode ver a disposição atual do espaço com este comando
pvs
mostrará uma saída como estaAgora use
pvmove
para remover a fragmentação externa:Agora vamos ver se a movimentação do volume de troca foi bem-sucedida.
deve mostrar a nova ordem dos volumes:
Depois disso, use GParted e redimensione o LVM para a área máxima usada. O restante ficará em espaço não alocado.
fonte
pvmove --alloc anywhere /dev/sda5:yyyy-end 0-newend
com o "newend" calculado como final - aaaa. No entanto, não tenho certeza se isso funciona se o espaço livre no início for menor que o intervalo a ser movido. Também acho que há um erro de digitação em suas saídas de pvs, acho que você quis dizer em/dev/sda5:0-xxx
vez de/dev/sda:0-xxx
.--resizefs
parâmetro delvresize
já cuida de redimensionar o sistema de arquivos subjacente.Esta postagem mais antiga cobre esse tipo de encolhimento, para que você possa usar o novo espaço para outra coisa. Você precisará redimensioná-lo para os dados, no entanto, antes. Isso deve cobrir esse e outros erros que você recebe também. Como é mais antigo, leia primeiro:
fonte
eu uso esse método, não tenho certeza se é o melhor, mas funciona para mim
calcular a diferença que causa o problema
324% 4 = 0 sem problemas
mas
324% 32 = 10,125
esse é o problema para que não caiba
eu acho que se chama "obter número real"
para listar partições envolvidas
então
eu tenho que adicionar 4M extras para trabalhar, acho que está relacionado ao tamanho antigo do PE
finalmente
fonte
As respostas anteriores me ajudaram a resolver esse problema, mas eu precisava automatizá-lo e escrevi pvshrink
Isso chama o pvmove para você quantas vezes for necessário para desfragmentar o PV e o redimensiona para o tamanho mínimo possível (que é um pouco mais do que o tamanho usado devido aos metadados).
fonte