LINUX.ORG.RU
решено ФорумAdmin

libvirt resize изменить размер диска виртуальной машине онлайн

 ,


0

2

Досталась мне тут инсталляция на libvirt и я полез в поиск искать способ ресайзить диски машине на лету. Рецептов в поиске куча, но они все тухлые. Как это сейчас делается?

ЗЫ. Блочные устройства виртуалок живут на LVM.

virsh qemu-monitor-command tarh-net --hmp "info block"
libvirt-pflash0-format: /usr/share/OVMF/OVMF_CODE_4M.ms.fd (raw, read-only)
    Attached to:      /machine/system.flash0
    Cache mode:       writeback

libvirt-pflash1-format: /var/lib/libvirt/qemu/nvram/tarh-net_VARS.fd (raw)
    Attached to:      /machine/system.flash1
    Cache mode:       writeback

sata0-0-0: [not inserted]
    Attached to:      sata0-0-0
    Removable device: not locked, tray closed

libvirt-5-format: /dev/vg_S3Z8NB0JC02422N_00/dummy-ubuntu_boot-clone-7 (raw)
    Attached to:      /machine/peripheral/virtio-disk0/virtio-backend
    Cache mode:       writeback, direct

libvirt-4-format: /dev/vg_S3Z8NB0JC02422N_00/dummy-ubuntu_root-clone-7 (raw)
    Attached to:      /machine/peripheral/virtio-disk1/virtio-backend
    Cache mode:       writeback, direct

libvirt-3-format: /dev/vg_S3Z8NB0JC02422N_00/dummy-ubuntu_home-clone-7 (raw)
    Attached to:      /machine/peripheral/virtio-disk2/virtio-backend
    Cache mode:       writeback, direct

libvirt-2-format: /dev/vg_S3Z8NB0JC02422N_00/dummy-ubuntu_var-clone-7 (raw)
    Attached to:      /machine/peripheral/virtio-disk3/virtio-backend
    Cache mode:       writeback, direct

libvirt-1-format: /dev/vg_S3Z8NB0JC02422N_00/dummy-ubuntu_swap-clone-7 (raw)
    Attached to:      /machine/peripheral/virtio-disk4/virtio-backend
    Cache mode:       writeback, direct
virsh qemu-monitor-command tarh-net --hmp "block_resize libvirt-4-format 11G"
Error: Cannot find device='libvirt-4-format' nor node-name='
virsh domblklist tarh-net 
 Target   Source
----------------------------------------------------------------
 sda      -
 vda      /dev/vg_S3Z8NB0JC02422N_00/dummy-ubuntu_boot-clone-7
 vdb      /dev/vg_S3Z8NB0JC02422N_00/dummy-ubuntu_root-clone-7
 vdc      /dev/vg_S3Z8NB0JC02422N_00/dummy-ubuntu_home-clone-7
 vdd      /dev/vg_S3Z8NB0JC02422N_00/dummy-ubuntu_var-clone-7
 vde      /dev/vg_S3Z8NB0JC02422N_00/dummy-ubuntu_swap-clone-7
virsh blockresize --domain tarh-net --path vdb --size 12g
error: Failed to resize block device 'vdb'
error: internal error: unable to execute QEMU command 'block_resize': Cannot grow device files

Помогите, пожалуйста.

★★★★★
Ответ на: комментарий от targitaj

Технически правильным ответом будет как раз отправить QMP-сообщение block_resize.

Логически правильным ответом будет использовать те фичи libvirt, которые работают, а неподдерживаемые и нерабочие не использовать.

t184256 ★★★★★
()
Ответ на: комментарий от targitaj

Точный размер в байтах уже отресайзенного тома указывать пробовал, как советует ТС из темы, ссылку на которую я привел?

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 1)
Ответ на: комментарий от targitaj

Пример чего? QMP-сообщения, на которое qemu твой libvirt послал? {"execute": "block_resize", "arguments": { "device": "disk", "size": 137438953472 }}. Куда валить? Тот же libvirt без бесполезного LVM.

t184256 ★★★★★
()

Итого, работающее на ubuntu 22.04 решение.

host:~$virsh domblklist tarh-net 
 Target   Source
----------------------------------------------------------------
 sda      -
 vda      /dev/vg_S3Z8NB0JC02422N_00/dummy-ubuntu_boot-clone-7
 vdb      /dev/vg_S3Z8NB0JC02422N_00/dummy-ubuntu_root-clone-7
 vdc      /dev/vg_S3Z8NB0JC02422N_00/dummy-ubuntu_home-clone-7
 vdd      /dev/vg_S3Z8NB0JC02422N_00/dummy-ubuntu_var-clone-7
 vde      /dev/vg_S3Z8NB0JC02422N_00/dummy-ubuntu_swap-clone-7

host:~$sudo lvresize -L12g /dev/vg_S3Z8NB0JC02422N_00/dummy-ubuntu_root-clone-7
  Size of logical volume vg_S3Z8NB0JC02422N_00/dummy-ubuntu_root-clone-7 changed from 11,00 GiB (2816 extents) to 12,00 GiB (3072 extents).
  Logical volume vg_S3Z8NB0JC02422N_00/dummy-ubuntu_root-clone-7 successfully resized.

host:~$ virsh blockresize tarh-net /dev/vg_S3Z8NB0JC02422N_00/dummy-ubuntu_root-clone-7 --size 12g
Block device '/dev/vg_S3Z8NB0JC02422N_00/dummy-ubuntu_root-clone-7' is resized
Apr 10 10:56:38 tarh-net kernel: virtio_blk virtio6: [vdb] new size: 25165824 512-byte logical blocks (12.9 GB/12.0 GiB)
Apr 10 10:56:38 tarh-net kernel: vdb: detected capacity change from 23068672 to 25165824
targitaj ★★★★★
() автор топика