Estender o volume do KVM

2

Eu tenho essa configuração no host KVM:

virsh # pool-info --pool pool
Name:           pool
UUID:           bb13c37c-47fe-c4a9-78a4-9c8abc7524fe
State:          running
Persistent:     yes
Autostart:      yes
Capacity:       1.64 TiB
Allocation:     712.00 GiB
Available:      963.12 GiB

virsh # vol-list --details --pool pool
Name                 Path                           Type     Capacity  Allocation
---------------------------------------------------------------------------------
volume1              /dev/pool/volume1              block  192.00 GiB  192.00 GiB
volume2              /dev/pool/volume2              block  192.00 GiB  192.00 GiB
volume3              /dev/pool/volume3              block  192.00 GiB  192.00 GiB
volume4              /dev/pool/volume4              block  136.00 GiB  136.00 GiB

virsh # vol-info --pool pool volume3
Name:           volume3
Type:           block
Capacity:       192.00 GiB
Allocation:     192.00 GiB

Eu tenho uma VM em execução no volume3 e o disco está quase cheio. Antes de estender o disco na VM, suponho que eu tenha que estender o volume subjacente.

Mas quando tento estender o volume3 para 500GB, recebo o seguinte erro:

virsh # vol-resize volume3 --capacity 500G --pool pool --allocate
error: Failed to change size of volume 'volume3' to 500G

error: invalid argument: storageVolumeResize: unsupported flags (0x1)

Quando tento estender o volume sem alocar o espaço, recebo um erro diferente:

virsh vol-resize volume3 --capacity 500G --pool pool
error: Failed to change size of volume 'volume3' to 500G

error: this function is not supported by the connection driver: storage pool does not support changing of volume capacity

Alguma idéia?

EDIT: Eu também tentei bloquear, sem alteração:

virsh # blockresize volume3 /dev/pool/volume3 734003200
error: Failed to resize block device '/dev/pool/volume3'
error: internal error unable to execute QEMU command 'block_resize': An undefined error has occurred
    
por Amar Prasovic 20.07.2015 / 12:10

1 resposta

3

Primeiro, você precisa redimensionar o dispositivo de bloco usando o comando lvresize , então você precisa dizer ao libvirt sobre o novo tamanho.

Você deve ser capaz de fazer assim:

$ lvresize -L 500G /dev/pool/volume3
$ virsh blockresize volumes3 --path /dev/pool/volume3 --size 500G
    
por 22.12.2015 / 15:00