内存虚拟化基本概念
把内存层级分三个层级
- 客户操作系统虚拟内存由操作系统呈现给应用程序(不是真实的物理内存)
- 客户操作系统物理内存由vmkernel提供给虚拟机,这个内存空间具有与客户操作系统提供给应用程序的虚拟内存地址空间相同的属性。真实的物理内存,虚拟机实际开销的物理内存(VMM欺骗虚拟机 以最小的内存运行最多的虚拟机 内存回收)
- 由vmkernel管理的主机内存提供了一个连续的,可寻址的内存空间,供虚拟机使用,这个内存空间允许VMkernel同时运行多个VM,同时保护每个VM的内存不被其他访问。
操作系统识别内存的两个条件
- 内存地址页从0开始(物理机上0刻度只有一个)
- 要求内存地址空间应该是连续的 这样才能欺骗操作系统
从应用程序的角度来看,vmkernel增加了额外的地址转换,将操作系统的物理地址映射到主机物理地址,(有个映射关系)
超分配
当所有已打开电源的虚拟机(开机状态下的时候才会去消耗宿主机的计算资源)组合配置内存占用超过主机内存大小时,内存将被过度使用
物理机只有4 分配出去8G
- VM并不总是