O Libvirt não vê o volume LVM atualizado

1

Todas as VMs são executadas em um pool LVM.

Redimensionei um dos volumes LVM para aumentar a capacidade de cópia das máquinas virtuais. Redimensionou com lvextend como de costume. Tudo foi bem-sucedido e lvs mostra o novo tamanho.

O Libvirt não vê o novo tamanho. Eu tento refrescante - sem sorte. Ainda mostra capacidade antiga.

A execução de virsh vol-info no volume mostra o tamanho antigo na entrada de capacidade e o novo tamanho na entrada de alocação. Porque isto é assim? Nunca costumava ser assim. Aumentar um volume LVM se propagaria e seria visível após uma atualização.

Agora, a única maneira de obter esse novo tamanho para a VM é reinicializar, o que está fora de questão. Como posso tornar o novo tamanho visível?

EDITAR

OS: Arch Libvirt: 1.3.0 Qemu: 2.4.1

Reiniciar o serviço libvirt também não ajuda. O volume ainda aparece com o tamanho antigo na libvirt.

lvs

...      
  sswus00-vd0     vga  -wi-a----- 200.00g
...

virsh vol-info --pool pool sswus00-vd0

Name:           sswus00-vd0
Type:           block
Capacity:       100.00 GiB
Allocation:     200.00 GiB

Portanto, a capacidade ainda está no tamanho antigo e é isso que a VM obtém.

EDIT2

Isso é realmente estranho.

lsblk mostra o tamanho do disco antigo para este volume lvm - 100G  Mas lvs mostra o novo tamanho - 200g

O back-end para o grupo de volumes lógicos é iSCSI. Então eu pensei que talvez rescanning scsi bus ajudasse.

echo "- - -" > echo "- - -" > /sys/devices/platform/host2/scsi_host/host2/scan

ou iscsiadm -m node -R

faça qualquer diferença

Alguma ideia? Como eu faria o kernel ciente do novo tamanho? E mais importante porque está fazendo isso?

    
por r.sendecky 05.02.2016 / 02:39

1 resposta

0

Você pode enviar um comando qemu monitor para o processo qemu da VM para que ele reconheça o novo tamanho do dispositivo de bloco. Por exemplo:

virsh qemu-monitor-command vmname --hmp "block_resize drive/virtio-disk0 200G"

Note que drive/virtio-disk0 refere-se à idéia do qemu da unidade, que irá variar dependendo do driver em uso (por exemplo, virtio ou virtio-scsi) e qual unidade virtual está em ordem (o 0 mudará para 1, 2, etc.). Para uma unidade SCSI, você teria algo como drive-scsi0-0-0-0 , em que os números se referem ao controlador virtual, barramento, destino e LUN, conforme definido no XML libvirt.

    
por 08.02.2018 / 21:00