我知道当我将硬盘空间专用于虚拟机时,主机操作系统无法访问它,但 RAM 和 CPU 核心/线程呢?我一直认为,如果我将 2 个核心和 8 GB RAM 专用于虚拟机,这些资源就会从主机中“拿走”,但我听说如果多个虚拟机正在运行,并且其中一个没有使用资源,那么这些资源可供其他虚拟机使用。这是否仅适用于虚拟机管理程序上的虚拟机,或者如果我在标准 Linux 主机操作系统上安装多个虚拟机,情况是否相同?
答案1
您的问题与虚拟化中的超额认购[1](分配比物理可用资源更多的虚拟/逻辑资源)概念有关。
一般来说,超额使用 CPU 是安全的,但超额使用内存则不行。通常,虚拟机管理程序会提前预留内存,这样主机就无法使用内存,而将 RAM 留给客户机。但是,虚拟机和主机/虚拟机管理程序之间可以轻松共享 CPU。超额使用是虚拟化的主要优势之一。
值得注意的是,你可以利用精简配置实现类似的存储效果 [2]。使用精简配置,虚拟机管理程序仅分配客户操作系统当前使用的磁盘空间。
[2]http://blogs.vmware.com/vsphere/2012/03/thin-provisioning-whats-the-scoop.html