Все виртуальные машины работают из пула LVM.
Я изменил размер одного из томов LVM, чтобы увеличить копируемость дисков виртуальных машин. Изменил его размер с помощью lvextend
по-прежнему. Все удачно и lvs
показывает новый размер.
Однако Libvirt не видит нового размера. Я пытаюсь освежиться - не повезло. Он по-прежнему показывает старую емкость.
Бег virsh vol-info
на томе показывает старый размер в записи емкости и новый размер в записи распределения. Почему это так? Раньше такого не было. Увеличение объема LVM будет распространяться и станет видимым после обновления.
Теперь единственный способ получить этот новый размер виртуальной машины - это перезагрузить компьютер, о чем не может быть и речи. Как сделать видимым новый размер?
РЕДАКТИРОВАТЬ
ОС: Arch Libvirt: 1.3.0 Qemu: 2.4.1
Не помогает и перезапуск службы libvirt. Том по-прежнему отображается в 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
Таким образом, емкость по-прежнему остается прежней, и это то, что получает виртуальная машина.
РЕДАКТИРОВАТЬ2
Это действительно странно.
lsblk
показывает старый размер диска для этого тома lvm - 100G Но lvs
показывает новый размер - 200 г
Серверной частью группы логических томов является iSCSI. Так что я подумал, что, возможно, поможет повторное сканирование шины scsi.
Ни то, ни другое echo "- - -" > echo "- - -" > /sys/devices/platform/host2/scsi_host/host2/scan
или iscsiadm -m node -R
имеет значение
Любые идеи? Как я могу сообщить ядру о новом размере? И самое главное, почему он это делает?
Вы можете отправить команду qemu monitor процессу qemu виртуальной машины, чтобы он распознал новый размер блочного устройства. Например:
virsh qemu-monitor-command vmname --hmp "block_resize drive/virtio-disk0 200G"
Обратите внимание, что drive/virtio-disk0
относится к представлению qemu о диске, которое будет варьироваться в зависимости от используемого драйвера (например, virtio или virtio-scsi) и того, какой виртуальный диск он в порядке (0 сменится на 1, 2 и т. д.). Для диска SCSI у вас будет что-то вроде drive-scsi0-0-0-0
где числа относятся к виртуальному контроллеру, шине, цели и LUN, как определено в libvirt XML.