kvm 内存更改通过 virsh 不会传播到 vm

kvm 内存更改通过 virsh 不会传播到 vm

你好,我刚刚开始在 rhel6 上使用 kvm,在创建 vm 之后,我尝试增加内存,但是我在 xml 文件中所做的更改并没有传播到 vm,即使在重新启动 vm 并重新启动 libvert 之后也是如此?

[root@kvm01 qemu]# virsh dominfo dev-kvm01
Id: 2
Name: dev-kvm01
UUID: 9b2bf581-2807-3116-b176-60e9c0559943
OS Type: hvm
State: running
CPU(s): 2
CPU time: 1975.3s
Max memory: 7864320 kB
Used memory: 7864320 kB
Persistent: yes
Autostart: disable
Security model: selinux
Security DOI: 0
Security label: system_u:system_r:svirt_t:s0:c47,c760 (enforcing)
[iknowmed@dev-kvm01 ~]$ free
           total       used       free     shared    buffers     cached
Mem:     3632284    3614508      17776          0       3980    3491676
-/+ buffers/cache:   118852    3513432
Swap:    5668856          0    5668856

答案1

我相信您的客户机中可能有一个不支持 PAE(物理地址扩展)的 x86(32 位)内核。这些内核只能支持少于 4 GB 的内存。

简单的解决方案是切换到您的 Linux 发行版提供的支持 PAE 的内核(希望如此)。

更困难的解决方案是切换到 x86_64/amd64(64 位)架构,但随后您需要重新安装客户机。

编辑后添加:

或者您可能没有在 libvirt 配置中启用 PAE。

如果你这样做,virsh edit dev-kvm01你应该看到特征如下部分:

<features>
    <pae/>
    <acpi/>
    <apic/>
</features>

如果该<pae/>条目不存在,请将其放在那里并重新启动客户机。

答案2

您可以按照以下步骤增加 KVM 虚拟机的内存大小。

  1. 首先关闭虚拟机 virsh shutdown dev-kvm01

  2. 完成后,验证 vm xml 文件中的内存设置,然后运行 virsh undefine dev-kvm01 virsh define dev-kvm01

  3. 现在启动虚拟机 virsh start dev-kvm01

  4. 验证虚拟机中的内存变化,我建议不要使用 Linuxfree程序来检查内存使用情况,而是可以安装一个好用的工具htop

yum install htop # For Red Hat/ CentOS / Fedora
apt-get install htop # For Debian / Ubuntu / Linux Mint

  1. 跑步htop

我希望这能解决你的问题。

相关内容