功能概述
技术背景
VMware vSphere 8.0 U3 发布了一个非常有意义的功能叫内存分层(Memory Tiering),以利用基于 PCIe 的 NVMe 设备充当第二层(辅助)内存,从而使 ESXi 主机的可用物理内存(RAM)增加。从本质上讲,内存分层就是利用较便宜的 NVMe 设备充当物理内存,以此增加内存的总容量和工作负载的可用量,同时降低总体拥有成本(TCO)。
这一功能特别适用于测试和实验室环境,但目前仍处于技术预览阶段,尚未广泛应用于生产环境。
优势与限制
- 优势:增加内存容量、优化性能、提高成本效率、改善工作负载集中和增强家庭实验室的灵活性。
- 限制:目前不支持快照操作,且在启用内存分层的主机上无法进行嵌套虚拟化
兼容性与要求
- 该功能仅适用于vSphere 8.0 Update 3及更高版本,需要升级至相应版本才能使用。
- NVMe设备必须具备与企业级SLC SSD设备相当的性能和耐用性特征。
- 需要完整的NVMe驱动支持,不能仅使用驱动的一部分或分区
配置演示
首先,ESXi 主机必须安装 8.0 U3 及以上版本来支持内存分层功能,请记住这里现在的物理内存“容量”,共为64GB。
然后,使用了一块1TB的NVMe硬盘进行测试,请记住这里的“路径”以及“容量”。
- 使用MobaXterm 通过SSH登录到 ESXi 主机
ssh root@esxi01.nnkin.com
- 启用内存分层功能
esxcli system settings kernel set -s MemoryTiering -v TRUE
- 指定 NVMe 设备以用于内存分层
esxcli system tierdevice create -d /vmfs/devices/disks/eui.f1523fcab5449fd9000c2964ba9d6034
- 查看用于内存分层的 NVMe 驱动器
esxcli system tierdevice list
- 配置用于内存分层的 NVMe 设备与物理内存的百分比为400% (该值根据的设置而变化,取值范围1-400)
esxcli system settings advanced set -o /Mem/TierNvmePct -i 400
- 完成配置后,重新启动 ESXi 主机使配置生效。
完整配置过程
再次查看 ESXi 主机的内存,当前内存容量=物理内存容量+NVMe 存储容量。
思考
- 为什么在原有的基础上增加了256GB呢?
VMware 建议 NVMe 存储容量与物理内存容量的分配比率为 1:4,也就是 25%。意思就是,如果当前物理内存为 64 GB,那用于内存分层的 NVMe 存储建议为 16 GB,合在一起可以使用的内存容量为 64+16*1;现在我实际配置其比例为1:400(最高)
所以内存分层的 NVMe 存储建议为 64*4=256 GB,可用内存是64+64*4=320GB。
- 不需要该功能了,如何关闭内存分层功能?
esxcli system settings kernel set -s MemoryTiering -v FALSE
reboot
- 有必要无脑使用大容量的NVMe盘吗?
完全没必要,按照实际情况规划即可,比如我本次测试使用的1TB的 NVMe实际上过于浪费,因为物理服务器的内存只有64GB,按64*4=256计算,实际上只使用了256GB。
按照N*4即可。(N为物理内存容量)
- 增加物理内存,内存分层是否会同时增加?
会的!我将在现有的64GB内存基础上增加到80GB内存,设备与物理内存保持百分比为400%,增加后启动,内存已经达到了400GB(80+80*4=400GB)