当运行一个虚拟机时,vSphere的VMKernel为虚拟机生成一段可编址的连续内存,与普通操作系统提供给上层应用使用的内存具有相同的属性特征。引入内存虚拟化之后,同样的内存地址空间,允许VMkernel同时运行多个虚拟机并保证它们之间使用内存的独立性。
虚拟化平台三种内存模式
主机物理内存(Host Physical Memory)
主机物理内存是ESXi在一个物理主机上检测到的内存值,该值是主机实际物理安装的内存值。
虚拟机物理内存(Guest Physical Memory)
虚拟机操作系统可以看到分配给虚拟机的内存值。
虚拟机虚拟内存(Guest Virtual Memory)
是指虚拟机操作系统分配给应用程序的可用内存,这是虚拟机操作系统映射到虚拟机物理内存的虚拟内存地址空间,是虚拟机操作系统提供给他的应用程序使用的内存地址空间,在非虚拟化环境中也是如此。
内存三种模式的工作方式
vmware vSphere的三层内存映射结构如下图所示:
ESXi主机为其上运行的每个虚拟机创建一个虚拟内存地址空间,这些虚拟内存地址空间向下映射到主机内存地址,向上映射到虚拟机作为虚拟机的物理内存。当应用程序使用完后,虚拟机会将这部分内存标记为“free”,此时其他应用程序可以使用这部分内存,但是虚拟机管理器不会关心这些被标记为“free”的内存,并且认为这些内存一直分配给了虚拟机。也就是说,一旦管理程序