由于规划不合理,国内的虚拟化环境中,往往最早不够用的资源就是内存,保持CPU,内存和存储合理的比例,在设计中至关重要。
本篇说的方法,还处于“Tech Prview”阶段,就是还需要验证,不适合于重要的生产环境,可以在一些不重要的生产环境,测试环境中使用;需要将esxi升级到最新的8.0.3版本,使用NVMe来模拟内存,官方的术语叫做“Memory Tiering over NVMe”;但这个技术非常适合内存不够的测试和HomeLab环境,比如我现在的HomeLab环境有256G内存,在进行一些测试时,内存已经成为瓶颈; 再某宝上做个搜索,基本上现在的NVMe的价格大概每G价格是5毛钱,而DDR4 ECC内存的每G价格是4元,有8倍的差价,所以还是很划算的。
下面我在我的Homelab(esxi 7.0.3)中用Nested方式做个测试。
这是刚安装好的esxi 8.0.3
为其增加一块64GB NVMe硬盘
按官方的指引,虽然有多种方式进行配置,我这里演示会使用ESXCLI的方式,就是打开esxi的ssh访问,用命令行进行配置,过程中无须vCenter。
打开主机的ssh和esxi shell
记录下将用于内存的NVMe设备的路径和UUID
配置过程,依次执行下面的命令:
1.将主机进入维护模式
esxcli system maintenanceMode set --enable true
确认主机已经进入了维护模式
2.列出NVMe设备,确认设备的路径
esxcli storage core device list
3.确认了设备后,而且设备上已经没有其他分区后,为NVMe设备创建内存分层分区
esxcli system tierdevice create -d /vmfs/devices/disks/t10.NVMe____VMware_Virtual_NVMe_Disk________________VMWare_NVME_0000____00000001
成功执行后,可以在图形界面中,看到分层分区已经创建
4.修改高级参数,打开MemoryTiering
esxcli system settings kernel set -s MemoryTiering -v TRUE
5. 重启主机,使之生效
reboot
重启后,已经发现主机的内存从原来的16G变成20G
这是因为还有参数,控制着使用NVMe作为内存的相相对于RAM的比例,默认是25%,就是只使用相当于RAM内存的25%的NVMe作为内存,当然这个还不解渴,最大这个参数可以配置为400,就是4倍RAM内存的NVMe作为内存,因为我配置64G的NVMe,正好是16G RAM内存的4倍,我们修改一下:
esxcli system settings advanced set -o /Mem/TierNvmePct -i 400
然后再重启主机
reboot
这时,我们看到主机的内存已经变成80G!
下面可以将主机退出维护模式,部署虚拟机,正常地使用了。
更详细的指引,可以参考:
Using the "Memory Tiering over NVMe" feature in vSphere 8.0 Update 3
https://knowledge.broadcom.com/external/article?legacyId=95944
在这个KB的中附带了一个详细的手册:
https://api-broadcomcms-software.wolkenservicedesk.com/es/attachments/download_attachment?domain=broadcomcms-software.wolkenservicedesk.com
我的测试环境已经遇到内存瓶颈,但是我8个内存插槽,已经都插满了,所以扩展很不方便,如果把现在的8条32GB内存都换成64G内存,估计要花费2K以上,所以这个办法对我是雪中送碳,现在二手小容量的NVMe,比如256G,某鱼上,价格不超过100元,所以我计划不久就进行这个升级,100元将内存扩大一倍。
这个技术也是要付出代价,就是NVMe的延迟和带宽比起RAM都是要差很多,所以性能方面一定会有损失,手册中也是不建议用在对内存延迟敏感的业务,比如数据库,但对于我的测试,应该是可以忍受的。
推荐本站淘宝优惠价购买喜欢的宝贝:
本文链接:https://www.hqyman.cn/post/7676.html 非本站原创文章欢迎转载,原创文章需保留本站地址!
休息一下~~