qemu-kvm: unable to map backing store for guest RAM: Cannot allocate memory


當給 KVM 虛擬機設置 hugepage 時,需要在虛擬機的配置文件里加上下面一段:

<memoryBacking>
    <hugepages/>
</memoryBacking>

但是,加上這么一段之后,再次啟動虛擬機,可能起不來,service libvirtd restart 可能會得到如標題的錯誤。

這個問題的原因可能是:

1. host 沒有設置足夠多的 hugepage

2. guest 設置的內存大小超出了 host 的 hugepage

解決辦法:

1. 檢查 host hugepage 設置

cat /proc/meminfo |grep -i huge

Hugepagesize * HugePages_Free 就是 guest 可以分配的內存。

2. 檢查 guest 內存配置

用下面的命令查看虛擬機的配置,<kvm> 是虛擬機的名字

virsh edit <kvm>

如下,memory 是 16G,那么 host 的 hugepage 必須設置大於16G,否則就會出現標題的錯誤。

  <memory unit='KiB'>16777216</memory>
  <currentMemory unit='KiB'>16777216</currentMemory>
  <memoryBacking>
      <hugepages/>
  </memoryBacking>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM