NetApp Tech OnTap NetApp 标识 NetApp 标识
NetApp Tech OnTap
     
在全新 VST 级别进一步优化闪存使用的性能和成本
Jay White
技术营销工程师
Chittur Narayankumar
技术营销工程师

虚拟存储分层 (VST) 是 NetApp 的一种自动化存储分层 (AST) 方法。借助 AST 技术,数据中心内基于闪存的介质可实现更高的性能,同时最大限度地降低成本和复杂性。基于闪存的设备(例如基于固态磁盘 [SSD] 和控制器的闪存)每秒可完成的随机读取操作数比最快的硬盘驱动器 (HDD) 多 25 到 100 倍,但是达到这样的性能,每 GB 成本要高出 15 到 20 倍。

VST 可自动识别热数据块并将其存储在闪存中,同时将冷数据存储在速度较慢、成本较低的介质上,而不是将整个数据集永久放置在昂贵的闪存介质上。为了构建最佳解决方案,NetApp 投入了大量时间和精力来了解 AST 必须解决的难题

随着最近向 VST 中添加了两个产品,NetApp 现在提供端到端闪存选项,涵盖从客户端应用程序到磁盘子系统的方方面面。

  • 控制器级别。基于存储控制器的闪存 — NetApp® 闪存 — 存储随机读取热数据。(您可阅读之前的一篇 Tech OnTap® 文章,详细了解闪存采用的算法以及其他详细信息。)
  • 磁盘子系统级别。NetApp 闪存池技术采用混合模式,将 SSD 和 HDD 合并到一个 NetApp 聚合中。将对随机读取热数据进行缓存,重复写入数据将自动存储到 SSD 中。
  • 服务器级别。NetApp Flash Accel™ 技术将 VST 扩展到服务器。它可将任何服务器端闪存设备(PCI-e 闪存卡或 SSD)用作本地缓存,减轻网络和后端存储的 I/O 负担,帮助最繁忙的应用程序实现最高的 I/O 效率,同时释放服务器 CPU 和内存资源。

所有三个级别继续提供 VST 的全部优势,包括:

  • 在精细粒度级别实时提升热数据。热数据立即进入 VST,其 4 KB 粒度意味着能够非常高效地使用基于闪存的介质。
  • 易于部署和管理。VST 支持您现有的数据卷和 LUN。它不需要您对存储环境进行复杂或者颠覆性的变革。也无需为数据迁移设置策略、阈值或时间范围。
  • 完全集成。VST 可与 NetApp 统一存储架构完全集成,这意味着您可在不进行任何更改的情况下,将其与任何 NAS 或 SAN 存储协议结合使用。

本文介绍采用 NetApp 闪存池和 Flash Accel 技术的磁盘子系统级别和服务器级别的 VST 选项,并提供有关在何时何处部署这三个级别中的每一个的一般准则。如果您对闪存还不熟悉,请查阅原来有关闪存的文章了解详细信息

现在 NetApp 虚拟存储层在基础架构内不同的级别运行,便于您更好地优化闪存的使用。

图 1) 现在 NetApp 虚拟存储层在基础架构内不同的级别运行,便于您更好地优化闪存的使用。

闪存池

NetApp 闪存池在 NetApp 聚合级别运行。(聚合是指由 RAID 组构成的集合。)闪存池的创建非常简单,只需向现有 64 位聚合中添加由固态磁盘 (SSD) 组成的 RAID 组,创建能够充分利用这两项技术的混合磁盘阵列。使用 SSD 存储聚合中卷的随机读取和重复随机写入(覆盖),从而减轻硬盘驱动器 (HDD) 的这项工作负担。这样一来,您便可使用较少的磁盘轴或使用容量导向型磁盘而非性能导向型磁盘达到相同级别的性能(总体延迟较低)。闪存池可为您提供 SSD 的延迟和吞吐量优势以及 HDD 的大存储容量。

磁盘子系统级别的闪存池方法可带来诸多优势。

  • 持久性。由于闪存池在磁盘层实施,因此可在发生接管事件时一直保持正常运行。在高可用性配置中,如果一个控制器因计划中断或非计划中断而脱机,则另一个控制器将接管其聚合和卷,包括闪存池。RAID 可提供弹性来保护闪存池中的数据。
  • 随机读取和随机覆盖缓存。从 HDD 的角度来说,最"昂贵"的活动是现有块的随机读取和随机覆盖。有了闪存池技术,这些操作就移至 SSD 执行。缓存覆盖将可能会重新读取的块填充闪存池,并阻止向 HDD 执行短暂的写入操作。
  • 重复数据删除感知。闪存池技术能够完全感知重复数据删除。经过重复数据删除的块可能会有多个引用,例如对多个几乎完全相同的虚拟机实例进行重复数据删除时就会出现这种情况。尽管经过重复数据删除的块可通过多个引用进行访问,但是该块只有一个实例存储在 SSD 中。由于达到如此高的效率,因而容纳给定的工作负载所需的闪存较少。这种效应有时称为缓存放大。
  • FAS2200 系列支持。由于 NetApp FAS2200 系列控制器容量较小,因此不支持控制器级别的 VST,但是它们可利用闪存池技术。

闪存池工作原理

要了解闪存池技术的工作原理,您需要了解识别随机读取和随机覆盖操作并将数据存储到 SSD 中的过程。第一次读取某个块时,将其从磁盘读取到存储控制器内存中,这些读取事件属于随机读取或顺序读取。当这些随机块超出控制器内存的保留期限时就会写入 SSD。然后从 SSD 执行同一块的顺序读取。

对于写入,Data ONTAP 在设计中进行了写入优化。它使用高效的 NVRAM 记录传入的写入请求,以便立即向写入程序确认这些请求。这些写入将被收集起来并尽可能写入磁盘中的完整条带,通过将一系列写入操作转变成顺序写入活动,推动从底层 RAID 实施和 HDD 中实现最佳性能。

闪存池的目的是减轻 HDD 的 I/O 负担,同时将可能会重新读取或重新写入的块存储到 SSD 中。HDD 会高效地处理大型顺序写入。将其存储在 SSD 中不能达到最佳资源利用效果。随机写入数据(尤其是重复覆盖的块)是要存储到闪存池 SSD 中的理想候选数据。闪存池将以可能会重复读取的块和重复写入的块填充 SSD。

收到写入请求后,Data ONTAP 将验证写入是否为随机写入(非顺序写入),并且之前向同一块位置的写入操作也属于随机写入。如果确实如此,则该写入将转到 SSD。

如何从闪存池中逐出块

Data ONTAP® 技术通过热图(存储在 SSD 中以确保持久性)跟踪每个块"热"的程度。读取数据进入闪存池时属于"中性"。后续读取会将块的温度提升到"温",然后再到"热"。写入数据进入闪存池时也属于"中性",但是后续覆盖不会提升块的温度。

当 SSD 可用空间不足时,Data ONTAP 开始运行驱逐扫描程序,降低每个通道上每个块的温度。例如,"热"块变为"温","温"块变为"中性","中性"块变为"冷"。如果某个块在扫描程序通道之间读取或覆盖,则其温度将再次提升,"热"仍然是读取数据的最高温度,"中性"是覆盖数据的最高温度。如果未读取或覆盖某个"冷"块,则会在下一个扫描程序通道上将其温度降至"驱逐"的程度。此时将逐出"读取"块,而计划将覆盖块写入 HDD。

采用这种机制,当闪存池容量占满时,其中只存储热数据。闪存池通过动态调整来保留热数据,闪存池容量专用于读取与覆盖的比率只取决于使用池的工作负载的具体情况。

根据热图从闪存池中逐出块。闪存池一占满,驱逐扫描程序会降低每个通道上每个块的温度。一旦达到驱逐温度,块就将被逐出。在扫描程序通道之间访问会提升块的温度,所以热数据会保留在闪存池中。

图 2) 根据热图从闪存池中逐出块。闪存池一占满,驱逐扫描程序会降低每个通道上每个块的"温度"。一旦达到驱逐温度,块就将被逐出。在扫描程序通道之间访问会提升块的温度,所以"热"数据保留在闪存池中。

闪存池性能

尽管 NetApp 尚未发布关于采用闪存池技术的任何基准,但是已使用 OLTP 工作负载进行了一些前后对比研究,来说明潜在的影响。从同一 FAS6210 基础配置开始,我们实施了闪存池,在一种情况下降低了每 IOPS 成本,在另一种情况下降低了每 GB 存储成本。结果如图 3 中所示。请注意,在这两种情况下,总体延迟都显著降低。在许多情况下,这一因素对觉察到的性能的影响可能比总 IOPS 要大。

闪存池对成本效益和性能的影响。

图 3) 闪存池对成本效益和性能的影响。

表 1) 闪存池要求和选项。

闪存池要求和选项
Data ONTAP 版本Data ONTAP 8.1.1 或更高版本,7-模式和集群模式
调整选项(每个卷) 
读取随机读取(默认)
元数据:仅元数据
随机读写:以随机读写填充读取池
无:禁用卷的读取缓存
写入随机写入(默认)
无:禁用卷的写入缓存
支持的平台FAS22x0、FAS3240/3270、FAS3160/3170、FAS60x0、FAS62x0 和仅使用 NetApp 磁盘和 SSD 的 V 系列

要了解有关部署和使用 NetApp 闪存池技术的更多信息,请参阅 NetApp TR-4070:《闪存池设计和实施指南》

Flash Accel

NetApp Flash Accel 软件于 2012 年 8 月发布,将于 2012 年年底面市。Flash Accel 旨在将 NetApp VST 的优势通过网络扩展到包含服务器本身。服务器上有本地闪存设备意味着您部署了必须管理的直连存储。这样会带来与数据保护和数据孤岛隔离相关的潜在问题。利用 Flash Accel 的服务器缓存可消除这些问题,并带来诸多优势。

  • 将闪存专用于提高特定应用程序的性能。借助 Flash Accel,您可精准地确定闪存的使用,以使一个或多个应用程序受益,同时消除本地存储的缺点,将吞吐量提高多达 80%,并将事务延迟降低多达 90%。
  • 与硬件无关。Flash Accel 适用于服务器上的所有企业级闪存设备(PCI-e 卡或 SSD)。NetApp 还与 Fusion-io 签署了一份转售协议,以将 ioMemory 产品转售给尚不具备相关设备的客户。我们还扩展了联盟合作伙伴生态系统,增加了服务器缓存方面的多个合作伙伴。(有关详细信息,请参阅近期的新闻稿。)
  • 持久耐用。Flash Accel 缓存中存储的数据在服务器重新启动后能够持续存在。即使发生故障和蓝屏等事件,缓存仍十分耐用。
  • 独一无二的缓存一致性。当某个事件(例如恢复)更改后端存储上的数据时,其他缓存解决方案的做法是清除整个服务器缓存,这样会造成重新填充期间长时间性能降低。NetApp Flash Accel 能够识别并仅逐出更改的块,从而保持较高的性能。
  • 提高 VM 密度。由于 VM 和应用程序运行更顺畅且等待资源的时间更短,因此您实际上可增加每个服务器的 VM 数量,通常可另外增加 5 到 10 个 VM。
  • 提高后端存储效率。测试表明,与未启用 Flash Accel 的相同配置和工作负载相比,启用 Flash Accel 后可将后端存储效率提高 40%。这样可减少后端存储所需的资源,并释放资源来支持其他工作负载。
  • 低开销。Flash Accel 只需要 ESX 主机大约 0.5% 的内存资源。
  • 数据保护。服务器端缓存中存储的数据也存储在 NetApp 存储设备上,在这些设备上可采用标准的 NetApp 方法保护数据。

第一个版本的 Flash Accel 仅支持 VMware® vSphere® 5.0 或更高版本和 Windows® VM。将来的版本会将支持范围扩展到包含其他 VM、其他虚拟机管理程序和裸机。

Flash Accel 工作原理

Flash Accel 由以下三个组件构成:

NetApp vCenter VSC 插件。Flash Accel 的配置和管理要使用 NetApp 虚拟存储控制台 (VSC) 插件(在 VMware vCenter™ 中运行)来完成。借助该插件,您可以:

  • 安装和配置 ESX 虚拟机管理程序插件驱动程序。
  • 安装和配置来宾 Flash Accel 代理。
  • 发现 ESX 主机上的闪存 SSD 设备。
  • 在 ESX 主机上配置一个或多个 SSD 或其他闪存设备,以供 Flash Accel 使用。
  • 启用或禁用主机上的缓存。
  • 调整来宾 VM 上的缓存大小。
  • 报告当前的缓存状态和性能指标。

Flash Accel 虚拟机管理程序插件(安装在 ESX 主机上)。虚拟机管理程序插件安装在 ESX 主机上,可根据使用 VSC 定义的配置,建立对本地连接的设备(例如 SSD)和存储阵列路径的控制。该插件可创建逻辑设备,并将其作为 SCSI 设备呈现给 ESX 存储堆栈。借助在 WWN 相同的多个 ESX 主机上创建的逻辑设备,ESX 可将设备当作共享设备,这样使用这些设备的 VM 便可参与 vMotion® 和 VMware HA 的操作。除能够迁移 VM 之外,借助虚拟机管理程序插件还可对闪存设备进行管理,并实现动态资源共享和缓存块重复数据删除。

Windows VM 中的 Flash Accel 代理。为 Windows 来宾 VM 实施了用户级别的代理。该代理能够:

  • 将配置传送给筛选驱动程序
  • 启用或禁用一个或多个设备或整个 VM 的缓存
  • 将性能指标传达给 VSC
  • 与 SnapDrive® 和 SnapManager® 技术等其他数据管理软件相集成

该服务代理将 Web 服务导出到 VSC,并通过 Windows PowerShell™ cmdlet 与驱动器进行通信。

Flash Accel 包含在每个 VM 中运行的代理和 VMware vSphere 插件,通过在 vCenter 中运行的 NetApp VSC 进行控制。它可使用 ESX 主机上的所有 PCI-e 闪存卡或 SSD。

图 4) Flash Accel 包含在每个 VM 中运行的代理和 VMware vSphere 插件,通过在 vCenter 中运行的 NetApp VSC 进行控制。它可使用 ESX 主机上的所有 PCI-e 闪存卡或 SSD。

如图 4 中所示,Flash Accel 使用 ESX 服务器上的本地闪存资源为 Windows 虚拟机提供缓存层。闪存设备可在 ESX 主机上的多个 VM 之间共享,为每个 VM 提供自己的本地缓存。

VM 的所有读取都在本地进行缓存以便重复使用,从而减轻后端存储将来的读取负担。写入数据一直写入到后端存储,但是可从缓存进行重新读取。

Flash Accel 缓存有两个关键部分:缓存操作和存储管理器。

  • 缓存操作层负责实现用来通过缓存发送 I/O 请求的接口,其中包括将传入 I/O 请求转换为传入或传出缓存和(或)主存储服务器的多个 4 KB I/O 请求。缓存操作层完全在 Windows 筛选驱动程序中实施。
  • 存储管理器负责元数据和缓存的数据块在闪存上的布局以及实现持久性。该模块只由缓存操作层调用。存储管理器位于筛选驱动程序中,虚拟机管理程序将初始化、配置和管理闪存设备。

数据一致性是 Flash Accel 最重要的特性。如果后端数据进行了更改而未通知 Flash Accel,则缓存数据和后端存储数据可能会不同步。这样会造成不正确的数据从缓存返回应用程序或最终用户,导致数据损坏。在两种情况下数据一致性会成为问题。

  • 联机数据修改(带内修改数据)。Flash Accel 将在设备装载、卸载或引导时检查是否存在不一致问题,通过比较缓存的元数据与存储系统中的数据,找出不一致的数据并视情况使块失效。对 NetApp 存储上的应用程序数据执行 SnapRestore® 操作就是一个例子。在各次检查期间,不会出现不一致问题,因为 Data ONTAP 不会在 VM 正在使用数据时对数据进行修改。不支持带外修改(在这种情况下,管理员通过存储所不了解的某些方式更新正在运行的 VM)。
  • 脱机数据修改(例如 VMDK 或 LUN 恢复)。Flash Accel 将执行相同的操作,即比较缓存的元数据与后端存储上的数据,并根据需要使块失效。使用 SnapRestore 恢复整个 VM 就是一个例子。

在这种情况下,Flash Accel 的优势是仅使已更改的块失效,而保留所有未更改的块。发生此类情况时,其他可用的解决方案完全丢弃缓存的所有数据,然后"重新加热"整个缓存。根据数据的不同,该过程可能需要数小时甚至数天才能完成,在此期间性能有所下降。

Flash Accel 性能

我们使用 JetStress 模拟 Microsoft® Exchange 产生的磁盘 I/O 负载,比较了启用与未启用 Flash Accel 的同一配置的性能。启用 Flash Accel 后,读取和写入操作的 I/O 性能都提高了大约 77%。由于应用程序读取主要由 Flash Accel 完成,因此读取占用的后端存储较少,因而能够实现较高的写入性能,从整体上显著提高应用程序性能。结果如图 5 中所示。

在使用 JetStress 模拟 Exchange 工作负载的情况下,Flash Accel 将读取和写入 I/O 性能提高了大约 77%。

图 5) 在使用 JetStress 模拟 Exchange 工作负载的情况下,Flash Accel 将读取和写入 I/O 性能提高了大约 77%。

选择 VST 选项

选择一个或多个最佳 VST 级别其实就是以最低的成本加快处理所有需要加速处理的工作负载,从闪存投资中获得最大回报。

  • 服务器级别 (Flash Accel)。加快特定 ESX 主机上运行的一个或多个 VM 的处理速度。
  • 磁盘子系统级别(闪存池)。加快处理每个聚合中的工作负载。
  • 控制器级别(闪存)。加快处理与存储控制器关联的所有工作负载。

换句话说,在共享存储基础架构内,在服务器级别工作负载专一性最高,在控制器级别最低。如果需要加快处理一种工作负载,服务器级别的 VST 是理想选择。如果需要加快处理所有工作负载(可能从性能导向型磁盘改为容量导向型磁盘),应选择磁盘子系统级别或控制器级别。

对于新部署,建议首先采用闪存或闪存池技术,然后根据需要添加 Flash Accel,进一步提高对延迟最为敏感的应用程序的性能。

关于如何在闪存和闪存池之间进行选择,以下几点总结了两者的相似之处和不同之处。

  • 闪存池和闪存都为随机读取提供缓存,而且都能完全感知重复数据删除,实现最高的空间效率。
  • 闪存池需要安装,支持基于每个聚合的工作负载。闪存适用于控制器上的所有工作负载。
  • 闪存即插即用,而闪存池需要一些简单的配置,而后进行自我管理。
  • 闪存池:
    • 对于重复随机写入,将 I/O 移交 SSD
    • 由 RAID 加以保护
    • 接管事件过后可提供一致的性能
    • 支持整个 FAS 产品组合,包括 FAS2200 系列

一般而言,闪存池是业务关键型应用程序的理想选择,因为接管事件过后优势持续存在。闪存池也非常适合覆盖率较高的应用程序,并且是唯一一个可在 FAS2200 系列上使用的选项。由于闪存接近主内存,因此会给高性能文件服务带来优势。

尽管可将闪存池和闪存安装在同一存储系统上,但通常这样做的优势并不明显。启用了闪存池的聚合中的数据块绝不会缓存到闪存中。

结论

随着 VST 中闪存池和 Flash Accel 这两项技术的引进,NetApp 为您使用闪存优化 I/O 性能提供了两种新方法。作为一般准则,最好记住以下几点:

  • 闪存可加快一切。
  • 闪存池可加快聚合。
  • Flash Accel 可加快应用程序。

您可将多个级别相结合来优化总体性能,同时最大限度地减少投资。无论您选择哪个选项,安装 VST 后一切都几乎无需管理。您可根据需要对部署进行微调,但是大多数情况下默认设置效果非常不错,优势十分明显而且可以衡量。

 对 VST 有任何见解?

请在 NetApp 社区中在线提出问题、交流观点、分享看法。

作者:技术营销工程师 Jay White 和 Chittur Narayankumar

Kumar 已加入 NetApp 十一年有余,目前是 Flash Accel 小组成员。他编写了许多关于 NetApp 存储上消息传送与协作方面的技术报告和解决方案构建文档。

Jay 是 Data ONTAP 小组的技术营销工程师,负责闪存池、系统性能和包含大量文件的环境等方面的工作。他编写了许多关于 NetApp 存储子系统、弹性、RAID 等主题的技术报告和常见问题解答。

Tech OnTap
立即订阅
Tech OnTap 每月发布一次,为用户提供 IT 见解,以及对实际应用的最佳实践、技巧和工具、幕后技术访谈、演示、同行评论等的独家访问。

访问 NetApp 社区中的 Tech OnTap,立即订阅。

相关内容
相关内容
集群模式和虚拟存储分层

本文中介绍的所有 VST 技术都能与在集群模式下运行的 Data ONTAP 8 结合使用,实现极致的可扩展性、灵活性和性能。本期 Tech OnTap 刊载了 Vaughn Stewart 撰写的一篇关于利用集群模式对业务关键型应用程序实施虚拟化的文章。请查看近期所有关于集群模式的 Tech OnTap 文章。

相关内容
 
TRUSTe
联系我们   |   如何购买   |   反馈   |   招聘  |   订阅   |   隐私政策   |   © 2012 NetApp