八:如何在线添加/移除虚拟机的内存
如果应用/DB需要更多内存,则需要调整VM的内存限制。KVM支持在配置了VM最大内存限制范围内动态调整内存。VM配置包涵2部分:
最大限制
当前分配
任何时候,你不能使用virsh setmem命令动态分配超过最大内存的量,而是需要关闭guest来调整VM最大内存限制。
检查VM的内存限制和当前分配内存
[root@UA-HA ~]# virsh dumpxml UAKVM2|grep -i memo
<memory unit='KiB'>2621440</memory>
<currentMemory unit='KiB'>1048576</currentMemory>以上配置
分配给VM的内存:1GB(Current Memory Unit) 最大内存限制:2.5GB(Memory Unit)
注意:VM虚拟机只能看见"currentMemory Unit"值
调整运行中VM的RAM/Memory
登陆到KVM虚拟机中查看分配和使用的内存
[root@UA-KVM1 ~]# free -m
total used free shared buff/cache available
Mem: 1001 78 780 6 141 787
Swap: 411 0 411
[root@UA-KVM1 ~]#使用root登陆到KVM主机
列出KVM虚拟机查看domain配置
缩减内存到 512M
检查 KVM guest
也可以增加虚拟机内存
需要编辑VM配置来避免VM关闭和启动配置丢失
或者
增加VM的内存限制
如果尝试配置超过VM内存限制的内存分配,则会遇到以下报错:error: invalid argument: cannot set memory higher than max memory。这不是BUG,而是因为virsh setmem不能分配超过内存限制的使用内存。
要增加内存限制,必须首先停止VM
增加VM内存限制
启动VM
登陆到guest虚拟机中检查当前内存大小
此时可以将分配内存调整到3G
然后在guest中检查内存分配
更新VM配置(这样重启后不会丢失配置)
或者直接编辑VM XML文件的currentMemory值到3GB
至此已经成功分配了KVM虚拟机内核和调整了VM的最大内存限制。
系列教程编译
本系列教程根据 UnixArena Linux KVM 系列教程编译,共分以下文章:
Last updated
Was this helpful?