Действия
Добавление памяти (ACPI)¶
Требования:¶
- qemu-2.1+
- guest kernel-3.2+
CONFIG_MEMORY_HOTPLUG=y CONFIG_ACPI_HOTPLUG_MEMORY=y CONFIG_HOTPLUG_PCI=y CONFIG_HOTPLUG_PCI_ACPI=y
- QEMU должная быть запущена с указанием максимального объема памяти, иначе ошибка:
memory hotplug is not enabled, please add maxmem option
Пример опции -m 10G,slots=32,maxmem=32G
На хосте¶
qmp-shell -H /run/qemu/qemu5521.control.sock
(QEMU) info memory-devices (QEMU) object_add memory-backend-ram,id=mem1,size=2G (QEMU) device_add pc-dimm,id=dimm1,memdev=mem1 (QEMU) info memory-devices Memory device [dimm]: "dimm1" addr: 0x2c0000000 slot: 0 node: 0 size: 2147483648 memdev: /objects/mem1 hotplugged: true hotpluggable: true
На госте¶
В папке /sys/devices/system/memory лежат куски памяти по 128Мб
Только такими кусками можно добавлять память в систему.
for NAME in $(grep -l offline /sys/devices/system/memory/memory*/state); do echo online > $NAME; done
Полезные ссылки¶
https://github.com/qemu/qemu/blob/master/docs/memory-hotplug.txt
https://medium.com/@juergen_thomann/memory-hotplug-with-qemu-kvm-and-libvirt-558f1c635972#.eenrv1jdb
Hot-remove¶
Сыро. Не вегда работает.
На госте¶
SIZE=2048; MAXMEM=$(ls /sys/devices/system/memory/ |grep -o '[0-9]\+' |sort -n | tail -n 1); for ID in $(seq $[${MAXMEM}-${SIZE}/128+1] ${MAXMEM}); do echo $ID; cat /sys/devices/system/memory/memory$ID/state; echo offline > /sys/devices/system/memory/memory$ID/state; done
Полезные ссылки¶
Обновлено Андрей Волков больше 8 лет назад · 11 изменени(я, ий)