为何在存储的缓存层采用英特尔® 傲腾™ 固态盘是优于 NAND 闪存固态盘的选择

  • 本文从成本、性能、占用空间和数据丢失风险的角度探讨了 NAND 闪存和英特尔® 傲腾™ 固态盘的功能将如何影响 VMware vSAN 配置。当使用英特尔® 傲腾™ 固态盘作为缓存时,vSAN 可实现高达 2 倍的性能提升,且英特尔® 傲腾™ 固态盘的使用寿命比 NAND 闪存固态盘高 16 倍。

author-image

作者

执行概要

本文探讨了 NAND 闪存和英特尔® 傲腾™ 固态盘的功能将如何影响 VMware vSAN 配置,尤其是在存储的缓存层。我们考量的因素包括成本、性能、占用空间和数据丢失风险。

在选择用于缓存的硬盘时,通常会采用通用的性能和耐用性准则。这些准则能避免硬盘配置不足,但如果作为推荐准则,则可能会使您错过优化成本和性能的机会。在某些情况下,所选的硬盘可能无法为特定工作负载提供所需的耐用性,从而增加数据丢失的风险。

在本文中,我们提供了通用的配置预估准则中未包含的额外信息。我们介绍了当英特尔® 傲腾™ 技术部署在缓存层时,将如何为多层分布式存储(如 VMware vSAN)带来额外的价值。这些价值正源于英特尔® 傲腾™ 固态盘与 NAND 闪存固态盘相比所提供的更高吞吐量和耐用性:
 

  • 在处理 50% 读/写负载时,英特尔® 傲腾™ 固态盘提供的吞吐量提升高达 2.5 倍1
  • 英特尔® 傲腾™ 固态盘的使用寿命比 NAND 闪存固态盘长 16 倍2

当部署在缓存层时,英特尔® 傲腾™ 技术为可多层分布式存储带来额外的价值


简介

在配置新的 VMware vSphere 和 vSAN 集群时,大家都希望使工作负载的要求与主机配置中硬件组件的特性相匹配,从而优化成本和性能,实现更优的服务级别。

所有主机组件都会影响这一配置预估过程,但配置多少 NAND 闪存固态盘可能比配置其他组件更具挑战性,因为 I/O 性能(MB/s 和 IOPS)会随着工作负载配置文件而变化。例如,当我们增加一项并发的写入 I/O 事务时,NAND 闪存固态盘的读/写吞吐量和读取时延就会发生变化。在预估存储解决方案配置,尤其是在配置缓存层时,应该考虑到这些差异。

在配置用于缓存的硬盘时,耐用性是另一个不容忽视的因素。如果我们只是遵循以 TB 写入量 (TBW) 为单位的最低耐用性水平准则,而不去匹配工作负载与硬盘的耐用性,则硬盘有可能在保修期之前就已经磨损。尽管供应商可能会为您更换故障的硬盘,但故障仍可能使企业面临数据丢失风险,并对服务级别产生影响。例如,在 VMware vSAN 集群中,如果缓存硬盘出现故障,那么整个磁盘组都将变得不可用,数据丢失风险将大大增加,直到整个磁盘组被替换。

在本研究中,我们比较了 VMware vSAN 在使用 NAND 闪存固态盘与英特尔® 傲腾™ 固态盘时的性能差异。我们评估了不同读/写 I/O 组合下 NAND 闪存固态盘性能的变化。也就是说,数据从缓存到磁盘的落盘速率逐渐增加会影响整体性能;这就解释了为什么在处理相同的读/写混合负载时,英特尔® 傲腾™ 介质可以支持比 NAND 闪存固态盘更高的吞吐量3。我们还关注了不同的耐用性水平,并注意到使用过时的耐用性准则来选择硬盘,会导致数据丢失的风险升高。最后,我们对所有的发现进行了总结,并通过两种集群配置对成本、性能、占用空间和数据丢失风险进行了比较。


VMware vSAN 架构组件和 I/O 处理流程

为了便于解释下一节中给出的数据结果,我们对核心硬件组件上的 vSAN I/O 处理流程(参见图 1)进行了概括性总结。

1.    写入请求:在容量层仅使用固态盘的 VMware vSAN 配置中,vSAN 将所有写入 I/O 请求缓冲至缓存固态盘,读取也来自仍驻留在缓存中的数据。在 vSAN 7.0U3 之前,写入缓冲限制为 600 GB。
2.    数据复制:根据所使用的保护机制,对一台主机的写入请求必须复制到其他主机。值得注意的是,该保护机制会增大缓存和容量层硬盘的事务。例如,对每个虚拟机 (VM) 写入请求使用 RAID 1 会导致缓存层中产生两个写入 I/O 请求。
3.    数据落盘:数据从缓存层到容量层的落盘速率是可变的(具体速率与占用缓存的百分比有关):
 

  • 0-30% 已满:无落盘(实际缓存命中率为 100%)。 
  • 30-70% 已满:限制速率落盘,试图调节数据落盘速率,在前端和后端 I/O 请求之间达到平衡4。 
  • >70% 已满:不限速率落盘,同时数据进入缓存的速率被限制,以与落盘速率达到平衡。

4.    读取请求:读取来自容量层的硬盘,除非数据仍驻留在缓存层中。

图 1. 硬件架构组件和 I/O 处理流程

测试环境

在本研究中,我们比较了使用两种硬盘型号作为缓存导致的 VMware vSAN 性能差异:

  • 800 GB NAND 闪存固态盘,采用 SAS 接口,每日整盘写入次数 (DWPD) 为 3 次。
  • 400 GB 英特尔® 傲腾™ 固态盘,采用 PCIe/NVMe 接口,每日整盘写入次数 (DWPD) 为 100 次。

我们根据原始设备制造商 (OEM) 的反馈选择了目前较为流行的 800 GB NAND 闪存固态盘。1.6 TB PCIe Gen4 NAND MU 闪存盘的性能规格优于 800 GB SAS MU 固态盘,但不如 400 GB 英特尔® 傲腾™ 固态盘 P5800X5。考虑到 800 GB 每日整盘可写入 3 次的固态盘是入门级硬盘,我们还是选择了这一款,希望在本研究中能展示两种极端情况下的性能。


■    硬件和软件配置

测试在一个 4 节点集群上执行,硬件和软件配置如表 1 所示。

■    虚拟机 (VM) 配置

测试环境由表 2 中提供的虚拟机 (VM) 配置方案组成。

■    工作负载及测试方法

比较测试使用以下 I/O 工作负载对固态盘进行基准测试:

  • HCIBench 磁盘准备,将测试配置中分配给 64 个 vDisk 使用的 9.6 TB 区域写零。
  • 每次测试前都会清空缓存。
  • 70/30 32 KB VDBench 上升曲线 (ramp-up curve)。

测试中使用了 VDBench 的 “性能曲线” 选项来生成上升曲线。使用此选项时,VDBench 一开始会在不限制 I/O 速率的情况下运行测试,以确定测试 I/O 配置文件可执行的最大 I/O 速率。接着 VDBench 会再运行 10 次测试,首先使用前一次达到的最大 I/O 请求的 10%,随后每次增加 10%,直到达到最大值(参见图 2)。

重要提示:

确定最大 I/O 速率时,写入缓冲区的利用率接近于零。随着测试从 10% 逐渐上升到 100%,VM 的 I/O 请求升级,落盘事务也会逐渐增加。

图 2. VDBench 的上升曲线选项

■    报告工具

除了总结测试工作负载 I/O 事务及时延的 HCIBench 报告之外, 本研究还使用了来自 vSAN 性能数据库的数据,其中包括写入缓冲区利用率、数据从缓存到磁盘的落盘速率以及缓存和容量层固态盘的物理事务等(参见图 3)。

图 3. vSAN 性能数据库信息

测试结果

以下部分介绍了评估 VMware vSAN 性能的四种不同方法: 
 

  • vDisk 准备用时
  • 32 KB 块大小下 70/30 读/写工作负载
  • 数据从缓存到磁盘的落盘对 VM 时延的影响
  • 物理层的 I/O 事务


■    vDisk 准备用时

作为测试环境准备的一部分,vDisk 必须被完全写入,以确保在测试之前已经完成精简配置空间分配。在此测试配置中,vDisk 准备总共写入了 9.6 TB 的数据。当使用 800 GB NAND 闪存固态盘作为缓存硬盘时,此操作花费了 1 小时 55 分钟。相比之下,使用 400 GB 英特尔® 傲腾™ 固态盘作为缓存硬盘时,同样的操作只需 30 分钟即可完成,速度快了近 4 倍(见图 4)3。我们可以将这些结果推广到其他写入密集型的工作负载上,例如视频编辑、备份和恢复作业以及缓冲区刷新等。请注意,如果将 400 GB 英特尔® 傲腾™ 固态盘 P5800X 与 1.6 TB PCIe Gen4 NAND 闪存固态盘进行比较,写入吞吐量差异将降低至 1.8 倍6。虽然差距有所降低,但 1.8 倍的速度差异仍然十分显著。

图 4. 英特尔® 傲腾™ 固态盘完成 vDisk 准备的速度比 NAND 闪存固态盘快了将近 4 倍

■    32 KB 块大小下 70/30 读/写工作负载

图 5 展示了随机 I/O 工作负载下(70% 读,30% 写,块大小为 32 KB),I/O 与时延关系的曲线。用作缓存的固态盘是测试之间唯一更改的硬件组件。我们可以观察到,使用 400 GB 英特尔® 傲腾™ 固态盘 P5800X 比使用 800 GB NAND 闪存固态盘得到的 IOPS 高出 2 倍3

我们还观察到,在接近最大 I/O 速率时,800 GB NAND 闪存固态盘的曲线表现得非常不稳定。发生这种情况的原因是,当 vSAN 系统无法足够快地让数据从缓存硬盘中落盘时,它会开始限制 VM 的 I/O 请求,以平衡 VM 请求和落盘事务。相比之下, 英特尔® 傲腾™ 固态盘的曲线在工作负载升级时表现出了可预测的性能

在接下来的两节中,我们将详细评估 vSAN 层数据和物理层数据,以更好地了解 I/O 性能的这种差异。

图 5. 即便 I/O 工作负载升级,英特尔® 傲腾™ 固态盘也能提供可预测的 I/O 性能

■    数据从缓存到磁盘的落盘对 VM 时延的影响

如图 6 图表所示,我们观察了在处理上一节中同一 70/30 32 KB 工作负载时,写入缓冲区利用率和数据从缓存到磁盘的落盘速率。我们可以观察到缓存事务与 VM 的 I/O 事务运行情况之间的关联。

如 “工作负载及测试方法” 部分所述,测试的前六分钟不对 I/O 事务运行加以限制,目的是为了找到该配置下的最大 I/O 速率。此信息随后被用于生成上升曲线。在本节中,我们将此任务称为 “ratemax”。执行 ratemax 任务时,写入缓冲区几乎 100% 空闲,这表明此时没有落盘事务争用资源。

在使用 800 GB NAND 闪存固态盘的测试中,系统执行 ratemax 时 IOPS 达到了 305,000。因为 NAND 闪存固态盘上有一个 600 GB 的写入缓冲区,写入缓冲区的利用率达到了近 40%,这触发了 8 MB/s 的轻量落盘事务。随着 I/O 事务的进行,落盘事务随着 I/O 工作负载的增加而增加,落盘速率稳定在 280 MB/s 附近。此时,当测试进行到 60% ratemax 附近的时候,VM 写入 I/O 时延跃升至 15.5 毫秒,同时 IOPS 开始降低,因为 vSAN 会限制 I/O 请求以避免缓存溢出。这就解释了上一节中描述的曲线不稳定的成因。

再来看英特尔® 傲腾™ 固态盘的图表,我们观察到在 ratemax 任务期间,I/O 速率提高了 50%,IOPS 达到了 450,000。由于写入事务更频繁,vSAN 触发了更高的初始落盘速率 (434 MB/s), 从而将缓冲区利用率保持在 60%。ratemax 任务下的缓存很快被耗尽;随着上升曲线测试开始,落盘速率降低到 146 MB/s, 然后随着 VM 的 I/O 工作负载增加呈线性上升趋势。

这一次,我们比较了数据从缓存到磁盘的落盘对系统 I/O 能力的影响,发现缓存硬盘性能对整个 vSAN 的 I/O 性能至关重要。借此机会,我们也简要地讨论一下写入缓冲区大小的差异。

如 “VMware vSAN 架构组件和 I/O 处理流程” 部分所述,当缓存利用率在 30% 到 70% 之间时,vSAN 会采用 “限制速率落盘” 的 策略;也就是说,为了跟上 VM I/O 事务的增加,落盘速率会逐步上升。

图 6. 英特尔® 傲腾™ 固态盘提供出色的性能,包括更高的 IOPS、更低的时延和更高的可预测性

使用 800 GB 固态盘时,写入缓冲区配置为最大的 600 GB,而使用英特尔® 傲腾™ 固态盘时,写入缓冲区为 400 Gb。后者的上升曲线测试以高出前者 50% 的 I/O 速率开始,这导致从测试一开始,后者的落盘速率就更高。但我们也可以观察到,在采用英特尔® 傲腾™ 固态盘的测试中,即使落盘速率明显更高,系统 VM 的 I/O 事务还是更活跃,且时延更低。

这样的比较也回答了一个常见的问题:缓冲区小于 600 GB 是否会对 vSAN 的 I/O 性能产生负面影响?我们发现,核心差异点在于维持更高读/写带宽的能力,而非缓冲区大小。数据落盘是 vSAN I/O 可扩展性的重要限制性因素,而落盘速率则直接受硬盘性能和 vSAN 内部限制的影响。如图 6 所示,英特尔® 傲腾™ 固态盘的落盘速率达到了约 820 MB/s,而 NAND 闪存固态盘的落盘速率则被限制在约 280 MB/s。


■    物理层的 I/O 事务

英特尔® 傲腾™ 固态盘可达到更高写入吞吐量的核心原因之一就是其 “就地写入” 的技术。

将数据写入 NAND 闪存固态盘时,需要进行编程-擦除 (P/E) 循环。P/E 循环就是将内存单元从编程状态转为擦除状态,然后再返回编程状态。P/E 循环非常耗时,直接影响硬盘性能。英特尔® 傲腾™ 介质的 “就地写入” 技术在将数据写入介质时不需要触发 P/E 循环,从而显著提高了写入的 I/O 密度。

在图 7 的左侧图表中,我们可以观察到,当工作负载几乎完全为写入时,NAND 闪存固态盘的写入吞吐率达到了 750 MB/s 左右。但是,随着落盘事务增加,硬盘上的事务接近读/写各 50% 的混合负载时,写入吞吐率在 439 MB/s 达到峰值,此时读取吞吐率为 368 MB/s。

在图 7 的右侧图表中,英特尔® 傲腾™ 固态盘在处理大部分均为写入的负载时达到了接近 1,100 MB/s 的写入吞吐率,并且在处理读/写各 50% 的混合负载时能维持几乎相同水平的写入吞吐率,写入和读取吞吐率分别达到了 1,019 MB/s 和 965 MB/s。注:英特尔® 傲腾™ 固态盘的写入速度可远超 1 GB/s,但在此测试中,我们此时已达到 vSAN 的内部限制。

请注意,时延的增加与硬盘 I/O 限制相关。在 NAND 闪存固态盘上进行 ratemax 任务时,测试时延上升到 8 毫秒,此时写入缓冲区仍然处于清空状态,这表明硬盘的运行性能已饱和。在测试进行到近 35 分钟时,由于必须限制 VM 的 I/O 请求以在读写之间达成平衡,时延再次增加。但在英特尔® 傲腾™ 固态盘上,时延保持不变,直到测试接近 100% 最大 IOPS 时到达了 vSAN 的内部限制。

这一比较为上一节中有关数据从缓存到磁盘的落盘讨论提供了新的视角,进一步说明了英特尔® 傲腾™ 技术固有介质差异的重要性。相较于 800 GB NAND 闪存固态盘,400 GB 英特尔® 傲腾™ 固态盘吞吐率提升高达 2.5 倍 (1,984 MB/s vs 772 MB/s) 如最佳实践指南《部署经济高效的高性能 vSAN 集群》中所述,英特尔® 傲腾™ 固态盘的这种性能优势也可以扩展到其他比较中:与采用 NVMe/PCIe Gen 4 接口的 1.6 TB NAND 闪存固态盘相比,400 GB 英特尔® 傲腾™ 固态盘的每 GB 写入吞吐量提升高达近 8 倍7

图 7. 本次比较显示,400 GB 英特尔® 傲腾™ 固态盘的吞吐率比 800 GB NAND 闪存固态盘高 2.5 倍

在缓存中使用低耐用性硬盘的风险

硬盘的使用寿命在商业上用 DWPD(每日整盘写入次数)来描述,即硬盘在五年内每天可写入的次数。在相同的时间段内,它也可以表示为 TBW(即写入的总 TB 数)。

使用耐用性准则(如 VMware 的面向 vSAN 的通用固态盘耐用性准则)来确定在缓存层中使用什么固态盘是很常见的。在此 vSAN 准则中,全闪存配置有两种耐用性等级:C 类固态盘要求 TBW _ 3650,D 类固态盘要求 TBW _ 7300。

5 年的 TBW = 固态盘大小 x DWPD x 365 天 x 5 年

这些准则具有一定参考价值,因为它们可以避免缓存固态盘配置不足;但如果我们把这些准则当作金科玉律,所选的固态盘就有可能无法满足目标工作负载需求。

自大约 2016 年这些 TBW 准则提出以来,NAND 闪存固态盘行业已经推出了几种更大且更便宜的硬盘,以满足成本和容量的需求。在本文撰写时,我们观察到 800 GB SAS 3 DWPD (4300 TBW) 的固态盘已成为缓存固态盘的流行选择。这个现象值得进一步商榷。它表明,多年前提出的入门级硬盘耐用性建议在如今配置一个 VM 数量和 I/O 密度均有显著提升的系统(由于引入了新一代 CPU,且当今的混合云 I/O 工作负载更加密集)时仍然有效。

有时候,我们会认为这是一个小问题,因为如果硬盘在 5 年保修期内磨损,供应商会负责更换。但我们不应忽视这些故障(以及后续替换)可能给大规模部署带来的风险及其对服务级别的影响。例如,如果缓存硬盘磨损,那么整个 vSAN 磁盘组都将不可用。这种情况会增加数据丢失的风险,还会对运营产生影响,因为此磁盘组中的所有硬盘都必须要取下,随后重新创建。在大规模部署中,运营成本是很重要的。

因此,我们建议在评估缓存硬盘时,一定要考虑其耐用性所能支持的最大写入 I/O 工作负载。例如,800 GB 3 DWPD 的硬盘在达到 5 年使用寿命时可支持 28.4 MB/s 的写入负载。

(3 DWPD × 800 GB × 1024) ÷ (3600 s × 24 h) = 28.44 MB/s

在评估硬盘时还必须考虑写入 I/O 增大的问题。在 800 GB 3 DWDP 硬盘的例子中,当我们考虑 RAID 1 保护机制的 I/O 增大时,28.4 MB/s 的值将变为 14.2 MB/s。

我们进而使用这个参考值评估了不同的 I/O 配置文件。例如,70% 读、32 KB I/O 大小、1,500 IOPS 的工作负载会产生 14 MB/s 的写入负载。

在表 3 中,我们将 800 GB 和 1600 GB NAND 闪存固态盘和 400 GB 英特尔® 傲腾™ 固态盘的耐用性与其在五年内可支持的 I/O 事务进行了比较。

固态盘性能和耐用性对 vSAN 集群配置预估的影响

在最后一节中,我们将考虑缓存硬盘的特性,评估成本、性能、占用空间和数据丢失风险方面的差异,由此探讨如何进行集群配置预估。我们进行了两项比较:一项采用轻型 I/O 工作负载,另一项则采用中型 I/O 工作负载。

■    轻型 I/O 工作负载的配置预估

在第一种情况中,我们配置了一个可满足 150 台 VM 需求的集群。VM 的特性如表 4 所示。此工作负载达到了我们在使用 800 GB NAND 闪存固态盘进行的上升曲线测试中所观察到的有效最大 I/O 请求的 30%。满足表 5 所述特征的 4 节点集群可以满足该工作负载要求。

●    基于 NAND 闪存方案的考量因素

MU SAS 硬盘的带宽足以满足这一轻型 I/O 工作负载。然而,对于该 800 GB NAND 闪存固态盘而言,3 DWDP 的耐用性可能不足以满足这一工作负载,因为它每天需要在 8 块缓存硬盘上写入 13.5 次。

在出于性能考量预估缓存硬盘配置时,我们会使用峰值 I/O 请求指标。但是在考量耐用性时,我们应该使用平均写入事务。如果平均写入事务比用作输入的值低 4.5 倍(在本例中,即每 MB/s 的总 IOPS 为每 VM 360 次 I/O 请求),则 800 GB NAND 闪存固态盘足以满足此工作负载。否则,这就会增加此配置的数据丢失风险。


●    基于英特尔® 傲腾™ 固态盘方案的考量因素

英特尔® 傲腾™ 固态盘比 NAND 闪存固态盘更贵。在这种情况下,使用英特尔® 傲腾™ 固态盘会使主机成本增加 4.5%8。但是,英特尔® 傲腾™ 固态盘可提供高达 2 倍的 I/O 吞吐量提升3。这种性能上的差异为集群提供了未来的保障,因此它可以消化比初始计划更大的 I/O 工作负载。
英特尔® 傲腾™ 固态盘的耐用性比 NAND 闪存固态盘高 16 倍9;这远远超过了这一轻型 I/O 工作负载在 5 年保修期内的 I/O 属性,最大限度地降低了因硬盘磨损故障而导致的数据丢失风险。

■    中型 I/O 工作负载的配置预估

在第二种情况中,我们继续配置一个可满足 150 台 VM 需求的集群。但在这个用例中,工作负载达到了我们在使用英特尔® 傲腾™ 固态盘进行的上升曲线测试中所观察到的有效最大 I/O 请求的 40%。VM 的特性如表 6 所示。

在这种情况下,使用 NAND 闪存固态盘作为缓存的成本优化型配置需要一个 7 节点集群,而使用英特尔® 傲腾™ 固态盘作为缓存的配置仍只需一个 4 节点集群(参见表 7)。

●    基于 NAND 闪存方案的考量因素

此 I/O 工作负载需要配置七台主机,因此需要 14 块 800 GB MU SAS 硬盘来维持足够的性能,因为较理想的 I/O 性能需每台主机使用两个磁盘组。由于主机数量增多,因此使用单路配置来优化成本。主机数量的增加会对占用空间和功耗/散热产生负面影响。

在该用例中,14 块 3 DWPD 的 800 GB NAND 闪存固态盘每块预计每天需要写入 20 次,所以这个配置的耐用性是远远不够的。于是,在 5 年保修期满之前更换硬盘的相关风险会大幅增加。


●    基于英特尔® 傲腾™ 固态盘方案的考量因素

由于英特尔® 傲腾™ 固态盘在每台主机上可执行的 I/O 请求比 NAND 闪存固态盘多 2 倍,因此可以整合主机使得占用空间减少 40%。

如果我们在基于英特尔® 傲腾™ 固态盘的方案中仅使用 DRAM(每台主机 1 TB DRAM),则该方案的成本将降低 6%10,并且仍然能够支持两倍的 I/O 工作负载要求。但是,由于主机整合增加了每台主机的内存,因此在该方案中采用英特尔® 傲腾™ 持久内存更具吸引力,因为这样的话总成本可降低 13%10

具有 100 DWPD 的英特尔® 傲腾™ 固态盘可以支持该工作负载长达五年以上,从而最大限度地降低因硬盘磨损故障而导致的数据丢失风险和运营影响。

结论

这项研究表明,与测试中的 NAND 闪存固态盘相比,当使用英特尔® 傲腾™ 固态盘作为缓存时,vSAN 可实现高达 2 倍的性能提升,这是因为英特尔® 傲腾™ 固态盘在处理混合读/写 I/O 负载时出色的带宽能力。更高的带宽为主机整合创造了机会,从而节省了成本和占用空间。此外,它还建立了一个可预测性更高的性能环境,这在运行具有严格服务级别协议的关键任务应用时非常重要。

我们还讨论了耐用性,并说明了在选择缓存硬盘时考量一般耐用性准则之外因素的重要性。硬盘可支持的最大写入 I/O 工作负载是一项重要的考量因素,可以最大限度地减少因磨损故障导致的数据丢失风险和运营影响。


了解更多信息

以下资源可能对您有所帮助:
 

找到适合您的组织或机构的解决方案,请联系您的英特尔代表或访问英特尔® 傲腾™ DC 固态盘