NetApp Tech OnTap
     

智能缓存和 NetApp 闪存

智能使用缓存提供了一种将存储性能与基础磁盘阵列中的磁盘数分离开来的方法,从而显著降低成本,同时减少性能调试所带来的管理负担。NetApp 在开发创新型读写缓存技术方面一直处于先锋地位。例如,NetApp 存储系统使用 NVRAM 作为记录外来写入请求的日志,允许系统即时将写入请求指定到永久内存,并对写入主机做出响应。该方法通常将写入缓存放置在软件堆栈非常深的位置,与其他供应商使用的方法有很大不同。

对于读取缓存,NetApp 采用了多级方法。

  • 第一级读取缓存由存储系统内存中的系统缓冲器缓存提供。特殊算法确定在内存中保留哪些数据以及预取哪些数据来优化此功能。
  • NetApp 闪存(原 PAM II)提供第二级缓存(可选),当块从系统缓冲器缓存被逐出时接受块,以创建大型低延迟块池。
  • 第三级读取缓存由 NetApp FlexCache® 提供,该技术可在存储基础架构中创建单独的缓存层,从而超出单个存储系统功能范围提高读取性能。

最新的白皮书中将讨论这些读写缓存技术的详细信息以及最适合使用这些技术的环境和应用程序。

本文章关注的是第二级读取缓存;闪存可以将给定性能级别所需的磁盘轴数减少多达 75%,并允许您用更加经济实惠的选择替换高性能磁盘,从而降低存储成本。如果将闪存与 NetApp 重复数据删除或 FlexClone® 技术结合使用,会带来明显的缓存扩增效果,同时显著增加缓存命中数并减少平均延迟时间。

512 GB 闪存模块

图 1) 一个 512 GB 闪存模块。

了解闪存

对于闪存(通常是读取缓存)的了解,最重要的一点是从内存读取与从磁盘读取相比,两者在延迟上存在巨大差异。与磁盘读取相比,闪存命中的延迟减少了 10 倍,而系统缓冲器缓存命中的延迟则减少了 100 倍。

系统缓冲器缓存和闪存对读取延迟的影响

图 2) 系统缓冲器缓存和闪存对读取延迟的影响。

基本上,闪存与 NetApp 的第一代性能加速模块 PAM I 非常相似。最显著的差异在于,由于快闪存储器的经济合算和密度,与上一代基于 DRAM 的 PAM I 模块相比,闪存模块具有大得多的容量。闪存具有大小为 256 GB 或 512 GB 的两种模块。根据您的 NetApp 存储系统模型,最大配置支持多达 4 TB 的缓存(PAM I 支持 80 GB)。当然,在实践中,这将表现为可以缓存的数据量上的巨大差异,同时会增强缓存对所有类型的应用程序的影响。

闪存提供了较高级别的互操作性,因此可以与您环境中所具有的任何项一起使用:

  • 与每个存储协议一起使用
  • 附加到控制器的所有存储都受缓存约束
  • 您可以通过 FlexShare® 设置服务质量优先级
  • 与 V 系列开放式存储控制器一起使用

闪存的工作原理

Data ONTAP® 使用闪存来保留从系统缓冲器缓存逐出的块。这使得闪存软件可以与第一级读取缓存无缝地配合使用。随着数据从系统缓冲器缓存中流出,已对数据划分的优先级和分类允许闪存决定缓存接受哪些数据或拒绝哪些数据。

通过闪存,存储系统首先查看是否已在其安装的其中一个模块上缓存请求的读取,然后再发出磁盘读取。Data ONTAP 在系统内存中维持一组缓存标记并且可以确定闪存是否包含所需的块,而无需访问卡,同时还能加快对闪存的访问并减少延迟。成功的关键在于用于确定进入缓存的数据的算法。

默认情况下,闪存算法尝试区分高值数据、对连续数据随机读取的数据和/或低值数据,并在缓存中保留该数据,以避免耗时的磁盘读取。NetApp 提供了更改缓存行为的功能,以满足独特的要求。三种操作模式包括:

  • 默认模式。这是闪存操作缓存用户数据和元数据的普通模式,与系统缓冲器缓存的缓存策略相似。对于 NFS 和 CIFS 等文件服务协议,元数据包括维护文件和目录结构所需的数据。如果采用 SAN,元数据包括用于记录 LUN 中的数据的少量块。当活动数据集的大小等于或小于闪存大小时,最适合使用此模式。如果存在频繁访问的数据热点,该模式也非常有帮助,它还能使数据驻留在缓存中。
  • 元数据模式。在此模式中,只缓存存储系统元数据。在某些情况下,元数据的重复使用频率要高于特定的缓存的数据块。缓存元数据可以带来显著的性能好处,当数据集非常大(由许多小文件组成)或数据集的活动部分非常动态时,尤其有帮助。对于过大而无法有效缓存的数据集(即,活动数据集超出安装的缓存的大小),缓存元数据可能非常有效果。从缓存中允许哪些数据这方面来说,元数据模式是最严格的模式。
  • 低优先级模式。在低优先级模式中,不仅为“常规”用户数据和元数据,还会为通常会排除的低优先级数据启用缓存。此类别中的低优先级数据包括大型连续读取和最近写入的数据。闪存提供的大量额外缓存内存可能允许存储连续读取和最近写入的数据,而不会给其它已缓存的数据带来负面影响。这是限制最少的闪存操作模式。

缓存大小的影响

图 3) 缓存大小和缓存的数据类型对吞吐量的影响。

使用 NetApp 预测性缓存统计信息 (PCS)(Data ONTAP 7.3 和更高版本所具有的一项功能),您可以确定缓存是否提高了您的工作量,并决定需要的额外缓存量。PCS 还允许您测试不同的操作模式,以确定默认模式、元数据模式或低优先级模式中哪一个模式最好。

TR-3832:《闪存和 PAM 最佳实践指南》中提供了 NetApp 闪存(包括 PCS)的完整详细信息。

闪存和存储效率

NetApp 闪存通过两个重要的方法来提高存储效率:

  • 智能缓存允许您使用更少和/或更便宜的磁盘。
  • 某些 NetApp 存储效率功能可为共享存储块带来“缓存扩增”的效果,从而增加缓存的块值。

虚拟基础架构中的缓存扩增展示在缓存中具有已删除重复数据的块的优势

图 4) 虚拟基础架构中的缓存扩增展示在缓存中具有已删除重复数据的块的优势。

许多应用程序具有较高程度的块重复。结果是,您不仅在浪费存储空间存储相同的块,而且还因在系统缓冲器缓存和闪存中缓存相同的块而浪费缓存空间。NetApp 重复数据删除和 NetApp FlexClone 技术通过消除块重复并提高发生缓存命中的可能性来增加缓存量。重复数据删除通过单个块的指针识别并替换主存储中的重复块。FlexClone 允许您避免通常因复制卷、LUN 或个别文件(例如,为了进行开发和测试操作)而导致的重复。在两种情况中,最终结果都是单个块可能具有多个指向其的指针。因而,当缓存中存在这样的块时,再次请求此块的可能性会非常大。

与服务器和桌面虚拟化结合使用时,缓存扩增特别有优势。在该情况下,缓存扩增也被称为“透明存储缓存共享 (TSCS)”,作为对 VMware 的透明页面共享 (TPS) 的比拟。

使用闪存可以显著降低购买磁盘的费用,并使您的存储环境更加高效。在 Windows® 文件服务环境中的测试表明:

  • 将闪存与光纤通道或 SAS 磁盘结合使用可以在将使用的磁盘轴数减少 75%并使购买费用减少 54% 的同时提高性能,而且还能节省 67% 的电耗和空间。
  • 将闪存与 SATA 磁盘结合使用可以提供与光纤通道或 SAS 磁盘相同的性能和更多的容量,同时将每 TB 存储的成本降低 57%,而且还能节省 66% 的电耗和 59% 的空间。

真实世界里的闪存

范围广泛的 IT 环境和应用程序受益于闪存和其它 NetApp 智能缓存技术。

表 1) 智能缓存对各种环境和应用程序的适用性。(超链接指向每个环境/应用程序的参考。)

环境/应用程序写入缓存读取缓存闪存FlexCache
服务器/桌面虚拟化XXXX
云计算XXXX
远程办公室XX X
数据库XXX 
电子邮件XXX 
文件服务XXXX
工程和技术应用程序
产品生命周期管理XXX 
石油和天然气勘探XXX 
软件开发XXXX
电子设计自动化XXXX
渲染XXXX

 

服务器和桌面虚拟化

服务器虚拟化和虚拟桌面基础架构 (VDI) 都具有一些独特的存储性能要求,而缓存有助于满足这些要求。当您需要一次启动大量虚拟机(例如,日常桌面启动期间或是服务器虚拟化的情况下、故障或重启之后)的任何时候,您都会产生大量存储负载。大量的登录和病毒扫描也会造成不小的 I/O 负载。

例如,一家地区性银行拥有 1,000 多个 VMware View 桌面,并且在以前的环境中经常发生严重的存储性能问题,尽管他们拥有 300 个磁盘轴。当用 NetApp 解决方案(仅使用 56 个磁盘,再加上闪存)改变环境后,因重启操作而导致的中断从 4 到 5 个小时减少为仅 10 分钟。VDI 服务器不再出现无响应的问题,并且现在只需四秒钟就可完成登录,而以前则需要错开时间进行登录。添加 NetApp 智能缓存后,该银行用更低的成本获得了更高的性能。

这些结果大部分要归功于缓存扩增。由于虚拟环境中的高度重复(具有许多几乎完全一样的相同操作系统和应用程序的副本的结果),通过共享数据块,他们可以获得极高的缓存扩增率。您可以通过以下两种方法来消除重复:一种是在现有虚拟环境中应用 NetApp 重复数据删除;如果您要设置新虚拟环境,则采用另一种方法,即使用 NetApp 虚拟存储控制台 v2.0 的配置和克隆功能来高效克隆虚拟机,以使具有相同来宾操作系统的每台虚拟机共享相同的块。无论采用哪一种方法,共享块集读入缓存后,对于所有虚拟机,读取访问都将加速。

云计算

由于大多数云基础架构是在服务器虚拟化的基础上构建的,因此云环境也将从智能缓存中获得许多相同的好处。此外,通过将智能缓存和 FlexShare 结合使用,您可以在多租户云环境中为共享存储的不同租户完整地定义服务类别。这会显著增强您实现 IT 即服务的能力。

数据库

智能缓存在在线事务处理环境中也会带来巨大的好处。最近的一份 NetApp 白皮书介绍了在 I/O 限制的 OLTP 环境中提高性能的两种方法:添加额外磁盘和添加闪存。在提高整个系统吞吐量方面,两种方法都有效。闪存配置:

  • 与添加额外磁盘的同一系统相比,成本减少了 30%
  • 平均 I/O 延迟从 27.5 毫秒减少至 16.9 毫秒
  • 不消耗额外的电力或机架空间(配置额外磁盘在这两方面的消耗增加了 2 倍多)

电子邮件

拥有大量用户的电子邮件环境会迅速地拥有海量数据。与数据库环境一样,添加闪存可以显著提高性能,而所需的费用只是添加更多磁盘的一小部分。例如,在最近的 NetApp 与 Microsoft® Exchange 2010 的基准测试中,添加闪存使 IOPS 的数值翻了一番,并且使支持的邮箱数量提高了 67%。这些结果将在 TR-3865:《将闪存用于 Exchange 2010》中进行说明,该文章计划于 2010 年 9 月发布。

石油和天然气勘探

各种科学和技术应用程序也从闪存中获益匪浅。例如,在分析石油和天然气勘探必需的地震数据集期间,大型智能缓存可以显著加快处理并消除瓶颈。

一家成功的独立能源公司最近安装了 Schlumberger Petrel 2009 软件和 NetApp 存储来协助评估潜在的钻探位置。(最近的一篇联合白皮书说明了将 NetApp 存储与 Petrel 结合使用的优势。

该公司在具有 SATA 磁盘驱动器的五个 FAS6080 无阻塞存储系统中使用了多个 512 GB 的 NetApp 闪存卡。其共享地震数据处理环境具有 70% 的命中率,意味着 70% 的时间,请求的数据已处于缓存中。过去花费 20 分钟才能打开和加载的应用程序现在只需 5 分钟就可完成。您可以在最近的成功案例中了解更多详细信息。

结论

NetApp 闪存用作可选的第二级读取缓存,可以提高范围广泛的常用应用程序的性能,并且可以通过减少所需的磁盘轴数和/或允许您使用容量优化的磁盘(而非性能优化的磁盘)来降低成本。将更少、更大的磁盘驱动器与闪存一起使用可以降低购买存储系统的费用,并持续节省机架空间、电耗和散热费用。当与 NetApp 重复数据删除或 FlexClone 技术结合使用时,读取缓存的有效性会提高,因为当共享数据块时,缓存命中的可能性会显著提高。

若要了解有关所有 NetApp 智能缓存技术的更多信息,请参阅我们最近的白皮书

 对闪存有任何见解?

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

Mark Woods

Mark Woods
产品营销经理
NetApp

Mark 拥有 15 年以上的产品管理和营销经验。在加入 NetApp 之前,Mark 曾在 Hewlett-Packard 公司就职,主要从事服务器业务领域的工作。他获得了科罗拉多大学的电子工程学士学位和德克萨斯大学的 MBA 学位。

Amit Shah

Amit Shah
高级产品经理
NetApp

Amit 拥有 20 多年的工程和产品管理经验。在加入 NetApp 之前,他曾任职于一些大公司和处于早期创业阶段的公司,包括 HP (Agilent)、Mylex、QLogic、Rhapsody Networks、Candera Systems 和 Unisys。他获得了罗格斯大学的学士学位和菲尔莱狄更斯大学的电子工程硕士学位。

Paul Updike

Paul Updike
技术营销工程师
NetApp

在从事 IT 行业的 18 年间,Paul 曾在各种各样的高性能、学术性和工程环境中工作过。自八年前加入 NetApp 以来,他专注于 Data ONTAP 和存储系统性能最佳实践。

 
了解
 
TRUSTe
联系我们  |  如何购买  |  反馈  |  招聘  |  预订  |  隐私策略  |  © 2011 NetApp