内存热插拔,类似内存balloon技术,用于在线调节虚拟机的内存,包括物理和逻辑两个维度的热插拔。
可用于负载均衡,垂直扩容一些应用场景。
cat /boot/config-/boot/config-`uname -r` | grep CONFIG_MEMORY_HOTPLUG
<domain type='kvm'>
<maxMemory slots='16' unit='KiB'>16777216</maxMemory>
<cpu>
<numa>
<cell id='0' cpus='0-2' memory='1048576' unit='KiB'/>
</numa>
</cpu>
</domain>
使用virsh命令来动态挂载内存
<memory model='dimm'>
<target>
<size unit='MiB'>128</size>
<node>0</node>
</target>
</memory>
virsh attach-device <vm name> <xml filename> --config --live
import libvirt
conn = libvirt.open()
vm = conn.lookupByName("vm_name")
xml = "<memory model='dimm'><target><size unit='MiB'>128</size><node>0</node></target></memory>"
vm.attachDeviceFlags(xml,libvirt.VIR_DOMAIN_AFFECT_LIVE|libvirt.VIR_DOMAIN_AFFECT_CONFIG)
for i in `grep -l offline /sys/devices/system/memory/memory*/state`
do
echo online > $i
done
ACTION=="add", SUBSYSTEM=="memory", ATTR{state}="online"
参考
网易云新用户大礼包:https://www.163yun.com/gift
本文来自网易实践者社区,经作者管强授权发布。