内存虚拟化
当运行一个虚拟机时,vSphere的VMKernel为虚拟机生成一段可编址的连续内存,与普通操作系统提供给上层应用使用的内存具有相同的属性特征。引入内存虚拟化之后,同样的内存地址空间,允许VMkernel同时运行多个虚拟机并保证它们之间使用内存的独立性。
vmware vSphere的三层内存映射结构如下图所示:
图:内存三层映射
ESXi 裸机体系结构的强大功能主要体现在内存优化方面,这些功能可提高内存使用效率。ESXi 主机的内存管理支持安全地过量分配内存。分配给每个虚拟机的内存总和可超过主机上安装的物理内存总和。ESXi 主机采用了几种有效方法来支持安全的内存过量分配。例如,过量分配率为 2:1 时,通常只会对性能产生非常小的影响。
图:内存的过量分配
内存通常是最有限的资源,vSphere VMkernel 管理服务器的 RAM,可进行多种资源节约操作。通过 VMware 设计的若干功能,vSphere 可支持实现 RAM 的高效使用和更高的整合率,包括透明页共享、客户机内存回收和内存压缩。实现过量分配的内存管理机制如下:
透明页共享TPS(Transparent page sharing)
TPS 是 VMware 独有的一种内存优化方法。VMkernel 可检查虚拟机存储的每个内存页面,以便识别相同的页面,并仅存储一个页面副本。
图:透明页共享
气球内存回收
ESXi 主机使用一种随 VMwareTools 提供的内存释放驱动程序,该程序安装在每个虚拟机中。如果内存不足,则 VMkernel 将选择一个虚拟机并扩充其内存,也就是说,它会通知该虚拟机中的释放驱动程序从客户操作系统要求更多的内存。客户操作系统通过生成内存满足这一需求,然后 VMkernel 会将释放出的页面分配给其他虚拟机。
图:气球内存回收
内存压缩
当内存过量分配时,内存压缩可以帮助提高虚拟机性能。默认情况下已启用该功能。因此当主机内存过量分配时,ESXi 会在尝试将该页面交换到磁盘前压缩虚拟页面并将其存储在内存中。
图:内存压缩
主机级SSD交换文件
每个虚拟机都包含一个 VMkernel 交换文件。如果多个虚拟机需要完全使用分配给它们的内存,则 ESXi 主机将根据为每个虚拟机指定的内存资源设置,按比例将其内存区域交换到本地或网络固态驱动器 (SSD) 设备中。
将虚拟机内存分页移到磁盘中: 如非必要, 系统不会使用 VMkernel 交换空间, 因为这种方式的性能很差。
图:交换文件
综上所述,对内存的调度管理功能满足了如下需求:
- 单个虚拟机能够支持扩展到最大4TB的内存;
- 可以灵活分配调度物理服务器上的内存资源,如可按MB大小分配给虚拟机内存资源;
- 对内存的调度应能实现虚机按需使用,随用随取,不用即释放,使得计算资源能被充分利用;
- 具有合理的内存调度机制,能够实现内存的过量使用,支持不同虚拟机中内存相同数据部分的页面共享技术,保障内存资源的充分利用;
- 在虚拟机操作系统支持的前提下,应能支持虚拟机的内存热添加技术;
- 支持内存压缩技术,减少虚拟内存在虚拟机高压力内存状态下交换到磁盘上的概率,从而提升性能;
内存虚拟化 当运行一个虚拟机时,vSphere的VMKernel为虚拟机生成一段可编址的连续内存,与普通操作系统提供给上层应用使用的内存具有相同的属性特征。引入内存虚拟化之后,同样的内存地址空间,允许VMkernel同时运行多个虚拟机并保证它们之间使用内存的独立性。
vmware
vSphere的三层内存映射结构如下图所示:
图:内存三层映射 ESXi
裸机体系结构的强大功能主要体现在内存优化方面,这些功能可提高内存使用效率。ESXi
主机的内存管理支持安全地过量分配内存。分配给每个虚拟机的内存总和可超过主机上安装的物理内存总和。ESXi
主机采用了几种有效方法来支持安全的内存过量分配。例如,过量分配率为
2:1
时,通常只会对性能产生非常小的影响。 图:内存的过量分配
内存通常是最有限的资源,vSphere VMkernel
管理服务器的
RAM,可进行多种资源节约操作。通过
VMware
设计的若干功能,vSphere
可支持实现
RAM
的高效使用和更高的整合率,包括透明页共享、客户机内存回收和内存压缩。实现过量分配的内存管理机制如下: Ø [font= |