傲腾内存简介
4月2日,VMware 宣布了 vSphere 对于 Intel 傲腾内存的支持,傲腾内存的全名是 Intel Optane DC Persistent Memory(DCPMM,代号“Apache Pass”)。它是一种非易失性内存 (NVDIMM – No-volatile DRAM),采用跟 Optane SSD 同样的 3DXpoint 技术,以 DIMM 的形式插在主板的内存插槽上,由 CPU 的内存控制器来访问,它的访问速度虽然比 DRAM 慢一些,但是要远远快于 SSD。
Intel 傲腾内存提供了 128GB、256GB 和 512GB 三种容量,目前最大容量的单条 DDR4 内存条是 128GB,所以傲腾内存可以提供远超现有 DDR4 的内存容量,使服务器的内存总量轻易超过 TB 级别。在提供更大容量的优势下,傲腾内存还比传统的 DDR4 内存更便宜,并且是非易失性的,遇到断电或系统重启的情况也不会丢失数据。有了傲腾内存,服务器可以大幅度减少对于传统存储设备 (SSD 和硬盘) 的依赖,把大部分的操作放在系统内存中完成,从而提高系统整体性能。
Intel 为傲腾内存准备了“Memory”和“AppDirect”两种访问模式,分别适用于不同的应用场景。
Memory Mode
在这种模式下,傲腾内存需要跟 DRAM 内存配合使用,DRAM 内存作为傲腾内存的高速缓存;系统内存的容量由傲腾内存 (DCPMM) 的容量所决定,而不包括 DRAM 那部分内存。当 CPU 访问内存数据时,内存控制器首先检查 DRAM 缓存,如果要访问的数据存在,访问延迟就跟 DRAM 的速度一样;如果要访问的数据不在缓存中,则需要从傲腾内存读取,这会造成一点小小的延迟。对于持续的内存数据访问,内存控制器会通过应用模式预测来提高缓存的命中率,从而使整体访问性能接近于全 DRAM 的配置;对于大量的随机内存访问,系统性能跟 DRAM 相比会有一点损失。另外,在这种模式下,存放在傲腾内存中的数据是易失性的,掉电的情况下不会持续保存。
Memory 模式为传统应用提供了低成本、大容量的内存配置,适用于虚拟化的数据库系统、大数据分析这一类应用;这种访问模式对于上层的操作系统和应用是透明的,它们不需要知道非易失性内存的存在,应用不需要任何修改就可以直接享受傲腾内存所带来的性能提升。
AppDirect Mode
在这种模式下,操作系统和应用都需要明确地知道系统中有两种不同类型的内存,清楚地知道应该向 DRAM 和傲腾内存中写入不同类型的数据。不需要持久性存储但是要求低延迟的数据操作需要在 DRAM 上执行;需要持久性存储的数据应该被保存到傲腾内存中。AppDirect 是使用傲腾内存非易失性功能的唯一模式。在这一模式下,系统内存的容量是由 DRAM 和傲腾内存的总和决定的,这跟 Memory 模式有区别。举个例子,一台服务器配有 1.536 TB 傲腾内存和 192 GB DRAM,采用 AppDirect 模式的话,系统内存总量为 1.728 TB;但是采用 Memory 模式的话,系统内存就只有 1.536 TB,因为那 192GB DRAM 只是被用作了高速缓存。
AppDirect 模式适用于内存数据库等需要超高速数据存储的应用,可以把所有的数据都放在内存中来处理,傲腾内存能有效提升这类应用的性能。但是,这种模式对于操作系统和应用都不是透明的,需要针对非易失性内存进行优化,才能够发挥傲腾内存所带来的优势。现在已经有不少针对非易失性内存优化的应用,称之为 PMEM-aware 应用,如联机事务数据库 SQL Server 和内存数据库 Redis 等,它们能够充分利用傲腾内存的特点发挥出最大的性能优势。
vSphere 对于傲腾内存的支持
4月2日,VMware 宣布了 vSphere 对于支持傲腾内存的支持,支持傲腾内存需要 vSphere 企业增强版以上的版本。
- Memory 模式:从 vSphere 6.5EP13 (ESXi650-201903001) 和 vSphere 6.7EP05 (ESXi670-201811001) 开始支持,这种模式目前仅支持有限的用例,用户要使用这种模式的话请跟 VMware 销售代表联系一下。
- AppDirect 模式:从 vSphere 6.7EP05 开始支持,VMware 鼓励用户多使用这种模式。
用户可以通过 VMware 兼容性指南 VMware Compatibility Guide (VCG) 查找支持傲腾内存的服务器硬件。vSphere 在2路服务器上最多支持 6TB 傲腾内存,在4路服务器上最多支持 12TB 傲腾内存。
vSphere 中的虚机可以通过两种方法来使用傲腾内存:
- vPMEMDisk (Virtual Persistent Memory Disk):傲腾内存被映射成为一块虚拟硬盘提供给虚机使用,这种模式下虚机里的操作系统和应用都不需要知道非易失性内存,传统的操作系统和应用都可以正常使用这种模式。
- vPMEM (Virtual Persistent Memory):傲腾内存被映射成为虚机中的非易失性内存 (NVDIMM),这种情况下要求虚机中的操作系统能够支持 NVDIMM (例如 Windows Server 2016 和 RHEL 7.4),然后把它映射成为存储设备提供给上层应用;如果是 PMEM-aware 应用的话,也可以在虚机里直接访问 vPMEM。
VMware 针对 vSphere 在傲腾内存上的性能提升已经做了很多测试,大家可以参见 VMware 技术白皮书 “Persistent Memory Performance in vSphere 6.7 with Intel Optane DC persistent memory”。在白皮书中,我们可以看到傲腾内存对于提升应用性能还是很有帮助的,把傲腾内存当作存储来用也已经比 SSD 有很大的性能提升;如果是 PMEM-aware 应用,通过针对非易失性内存的优化,性能提升更多。以下是白皮书中的两个例子,一个是利用 IO 测试工具 FIO 测试 4KB 读写,另一个是内存数据库 Redis 在不同配置下的吞吐量比较。
延伸阅读
将 VMware vSphere / vSAN 软件与 Intel 的最新硬件平台技术相结合,可以为用户交付最佳的超融合架构平台,帮助用户简化数据中心管理,降低采购和运维成本,轻松应对企业在数字化转型中面对的各种挑战。
- VMware vSAN 是最佳的存储方案平台,具有管理简便、高性能、低成本、易扩展的特点,在 vSAN 平台上可以支持任何类型的应用。
- Intel 至强处理器提供最强计算能力,基于傲腾 (Optane) 和 3D NAND 技术的固态盘是理想的高速缓存,以太网融合网卡提供稳定的网络带宽和低网络延迟。