Проект

Общее

Профиль

Mem-hotplug » История » Версия 10

Андрей Волков, 2016-08-12 20:00

1 1 Андрей Волков
h1. Добавление памяти (ACPI)
2
3 5 Андрей Волков
h2. Требования:
4
5
- qemu-2.1+
6 6 Андрей Волков
- guest kernel-3.2+
7
8
<pre>
9
CONFIG_MEMORY_HOTPLUG=y
10
CONFIG_ACPI_HOTPLUG_MEMORY=y
11
CONFIG_HOTPLUG_PCI=y
12
CONFIG_HOTPLUG_PCI_ACPI=y
13
</pre>
14
15 7 Андрей Волков
- QEMU должная быть запущена с указанием максимального объема памяти, иначе ошибка:
16
17
<pre>
18
memory hotplug is not enabled, please add maxmem option
19
</pre>
20 6 Андрей Волков
21 8 Андрей Волков
Пример опции *-m 10G,slots=32,maxmem=32G*
22 5 Андрей Волков
23 2 Андрей Волков
h2. На хосте
24
25 1 Андрей Волков
*qmp-shell -H /run/qemu/qemu5521.control.sock*
26
27
<pre>
28
(QEMU) info memory-devices
29
(QEMU) object_add memory-backend-ram,id=mem1,size=2G
30
(QEMU) device_add pc-dimm,id=dimm1,memdev=mem1
31
(QEMU) info memory-devices
32
Memory device [dimm]: "dimm1"
33
  addr: 0x2c0000000
34
  slot: 0
35
  node: 0
36
  size: 2147483648
37
  memdev: /objects/mem1
38
  hotplugged: true
39
  hotpluggable: true
40 2 Андрей Волков
</pre>
41
42
h2. На госте
43 5 Андрей Волков
44
В папке */sys/devices/system/memory* лежат куски памяти по 128Мб
45
Только такими кусками можно добавлять память в систему.
46 2 Андрей Волков
47
<pre>
48
for NAME in $(grep -l offline /sys/devices/system/memory/memory*/state); do echo online > $NAME; done
49 1 Андрей Волков
</pre>
50 3 Андрей Волков
51 4 Андрей Волков
h2. Полезные ссылки
52
53 3 Андрей Волков
https://github.com/qemu/qemu/blob/master/docs/memory-hotplug.txt
54
https://medium.com/@juergen_thomann/memory-hotplug-with-qemu-kvm-and-libvirt-558f1c635972#.eenrv1jdb
55 9 Андрей Волков
56
h1. Hot-remove
57
58 10 Андрей Волков
Сыро. Не вегда работает.
59
60
h2. На госте
61
62 9 Андрей Волков
<pre>
63
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 online > /sys/devices/system/memory/memory$ID/state; done
64
</pre>
65 10 Андрей Волков
66
h2. Полезные ссылки
67
68
https://www.kernel.org/doc/Documentation/memory-hotplug.txt