NetApp FlashCache最佳实践.docx
《NetApp FlashCache最佳实践.docx》由会员分享,可在线阅读,更多相关《NetApp FlashCache最佳实践.docx(17页珍藏版)》请在三一文库上搜索。
1、NetApp技术报告FlashCache最佳实践指南NetApp公司SkipShapiro2013年11月ITR-3832摘要NetAppsFlashCachel和FlashCache2卡,以及DataONTAP操作系统中内嵌的缓存软件,可以提升NetApp存储系统的性能。本指南介绍了FlashCache和FlashCache2的工作原理,提供了成功实施所需的基本信息,同时还说明了如何衡量FlashCache在已部署的系统中的效用。目录1 概述41.1 NetAPP虚拟存储层41.2 使用FlashCache的优点42 FlashCache的工作原理52.1 DataONTAP磁盘读取操作52
2、2 DataONTAP清除系统内存空间以容纳更多数据52.3 在FlaShCaChe中保留活动数据62.4 从FlashCache中读取数据62.5 从FIaShCaChe中删除数据72.6 可通过FlashCache加速的工作负裁72.7 不可通过FlashCache加速的工作负载73 FlashCache的工作模式73.1 元数据模式73.2 普通数据模式(默认设置)83.3 低优先级模式83.4 使用普通数据模式进行顺序读取缓存93.5 使用以7-模式运行的DataONTAP进行混合缓存94 FlashCache在集群模式DataONTAP中的运行104.1 管理104.2 运行115
3、 FlashCache与其他DataONTAP功能的互操作性125.1 重复数据删除125.2 FIexCIone125.3 数据压缩125.4 FlashPool126性能要求和性能监控126.1 缓存预热期126.2 FlashCache重新恢复136.3 可用性方面的注意事项136.4 监控FlashCache的性能147缓存规模估算157.1 使用预测性缓存统计信息167.2 考虑添加更多缓存168结论17插图目录图1)NetAppVST产品系歹J04图2)在未配置FlashCache的DataONTAP存储系统中执行的读取操作。5图3)清除未配置FlashCache的DataONTA
4、P存储系统中的内存。6图4)将数据插入FlashCache缓存。6图5)从FlashCache读取数据的速度通常要比从磁盘读取快10倍。6图6)元数据缓存。8图7)普通数据缓存;同时缓存元数据和用户数据。8图8)低优先级数据缓存;元数据、用户数据和低优先级数据将被缓存。9图9)Voll卷启用cache=keep优先级后FIashCache在元数据模式下的运行情况。10图IO)VOI2卷启用cache=reuse优先级后FlashCache在普通模式下的运行情况。10图11)使用集群模式DataONTAP时的直接数据访问。11图12)使用集群模式DataONTAP时的间接数据访问。11图13)工
5、作负载不变、缓存大小逐渐增加的条件下两种工作集大小的命中率。16图14)通过添加更多缓存实现的命中率增长.161概述NetAppFlashCache和FlashCache2(除非另有说明,本报告中统称为FlashCache)可将缓存软件与基于闪存的PCI-Express(PCIe)卡相集成来提高存储系统性能。此缓存软件内嵌在DataONTAP操作系统中,而两代FlashCache卡(FlaShCaChe和FlashCache2)均使用相同的软件。FlashCache可对缓存的读取数据实现毫秒级访问,这要比硬盘驱动器(HDD)的典型读取延迟快8到20倍。FlashCache卡可提供256GB、5
6、12GB和ITB三种容量,FlashCache2卡可提供512GB、ITB和2TB三种容量。某些存储控制器型号可以安装多个卡,所有卡的容量均作为一个共享的缓存资源来使用。1.1 NetApp虚拟存储层NetApp虚拟存储层(VST)是一种基于闪存的产品组合,适用于DataONTAP系统,这些产品可以共同实现从服务器到存储的端到端数据缓存功能。VST包括服务器缓存软件FlashAccel-以及两个辅助存储缓存选件:FlashCache和FlashPoob-o本技术报告重点介绍FlashCache;FlashPool和FlashAccel将在其他类似报告中介绍。所有卷的控制器级读取缓存易于实施和使
7、用图I)NetAPPVST产品系列。聚合级读写缓存.按卷应用策略在控制器接管期间提供持久的缓存数据访问1.2 使用FlashCache的优点通过FlashCache和FlashCache2,初次从HDD读取的数据(应用程序数据和存储系统元数据)在缓存中保留的时间会更长,这样,此后在请求读取相同数据时就可以从低延迟缓存中进行读取,而不必再从HDD中检索数据(HDD的响应速度要慢于缓存)。在系统中实施FlashCache具有以下一项或多项优点: 可加快大型应用程序数据集的读取响应速度。与没有辅助缓存的系统相比,配置了FlashCache的NetApp系统可以缓存多达85倍的数据,并且从缓存读取数据
8、的速度可比从HDD读取快2至10倍。 可为其他工作负载提供更多的HDD操作。通过使用缓存处理重复性读取请求,FlashCache可以减轻HDD的操作负担,使磁盘驱动器可以处理其他读写请求。 可提高系统吞吐量(IoPS)。如果因系统的HDD利用率较高而使吞吐量受到限制,FlashCache可以利用缓存处理重复性读取请求,使HDD可以处理其他请求,从而提高系统的总IOPS。 可减少HDD的数量。为支持一组指定工作负载而配置了FlashCache的NetApp存储系统,与未配置辅助缓存的系统相比,所需同类型(rpm)的HDD数量通常更少。通过FlashCache,往往还可以为系统配置速度较慢、每TB
9、成本较低的HDD0为存储系统配置了FlashCache以及较少的(有时速度也较慢的)HDD后,与仅配置HDD的系统相比,系统总体成本会更低。 可降低数据中心的运营支出。配置了FlashCache以及数量较少或速度较慢的HDD的存储系统,与仅配置HDD而未配置FlashCache的同类系统相比,所占用的数据中心机架空间往往会更少,电耗和散热成本也更低。如上所述,配置了FlashCache的NetApp存储系统可以提供非凡的性能和/或存储效率优势。但是,以下几点是FlashCache无能为力的: 降低或缓解较高的系统内存或CPU利用率。FlashCache使用系统内存和CPU周期来管理缓存,因此它
10、会增加而不是减少这些资源的利用率。这样,系统就必须为FlaShCaehe提供充足的可用内存和CPU周期,才能发挥其优势。 提高存储控制器的最大吞吐量。实现系统的最大吞吐量(IoPS或MB/秒)与存储控制器的内存和CPU资源密切相关。缓存技术无法提高系统中可用的内存或CPU周期。因此,配置了FlashCache的NetApp存储系统的最大吞吐量并不会比仅配置HDD的系统更高。 加快写入操作的速度。FlashCache是一种读取缓存;可以加快重复性读取操作的速度。DataONTAP操作系统已使用内存写入缓存和非易失性内存(NVRAM或NVMEM)进行了写入操作优化,可以快速响应写入操作。2 Fla
11、shCache的工作原理FlashCache可通过扩充DataONTAP系统的本机缓存功能,提供出色的性能和存储效率优势。DataONTAP系统会在控制器内存缓冲区中缓存读取操作所需的数据。但是,控制器内存与大多数系统中存储的数据总量的比率通常很低(5%或更低);因此,存储的数据只有一小部分可以缓存在内存缓冲区中。向系统控制器添加一个或多个FlashCache卡可以显著提高可保留在缓存中的数据量,从而加快响应更多读取请求的速度。本章节其余部分将解释使用FlashCache进行读取和缓存操作的工作原理。2.1 DataONTAP磁盘读取操作收到读取请求后,如果所请求的数据尚未保存在控制器内存或F
12、lashCache缓存中,则会从磁盘检索请求的数据并将其放入内存缓冲区。然后,会将数据转发给发出请求的主机或客户端。图2显示了未安装FlashCache卡的系统所执行的这一操作。图2)在未配置FlashCache的DataONTAP存储系统中执行的读取操作。2.2 DataoNTAP清除系统内存空间以容纳更多数据随着要读取其他数据的请求向内存插入的数据不断增多,所有内存缓冲区最终都会被占满。DataONTAP会确定内存中保留的最没有价值的数据,并将该数据逐出内存缓冲区,以便为从磁盘读取的新数据腾出空间。图3)清除未配置FlashCache的DataONTAP存储系统中的内存,2.3 在Flas
13、hCache中保留活动数据在配置了FlashCache的系统中,指定要从控制器内存缓冲区逐出的数据会在从内存逐出之前插入到FlashCache缓存中。图4)将数据插入FlashCache缓存.2.4 从FlashCache中读取数据收到数据读取请求后,如果要读取的数据已经不在内存中,而是位于FlashCache缓存中,则会从FlashCache缓存(而不是从磁盘)提供数据,并将数据重新插入内存缓存区中。数据一旦进入内存,就会转发给发出请求的主机或客户端。从FlashCache提取数据的速度要比从磁盘检索数据快得多-通常至少快10倍。因此,应用程序响应时间和服务器利用率往往会因数据等待时间缩短而
14、有所改进。图5)从FlashCache读取数据的速度通常要比从磁盘读取快10倍。2.5 从FlashCache中删除数据尽管FlashCache可以比控制器内存容纳更多数据,但它也属于有限资源,最终也会被占满,这时就需要逐出某些数据,以便为新数据腾出空间。FlashCache对它所缓存的数据使用先入先出(FIFO)的替换算法。缓存中最旧的数据会先从缓存中删除,以释放空间来容纳新数据。此方法会以同样的方式处理FlashCache中的所有数据块,频繁访问的数据会保留在内存缓冲区缓存或FlashCache缓存中,以便于快速访问。2.6 可通过FlashCache加速的工作负载FlashCache可以
15、加快任何重复性读取工作负载的响应速度,无论访问存储系统中的数据时使用的哪种协议。FlashCache既适用于块(FC、FCoE或iSCSI)访问工作负载,也适用于文件(CIFS/SMB和NFS)访问工作负载。第3节“FlashCache的工作模式”说明了如何使用FlashCache策略选项调整FlashCache的缓存行为。2.7 不可通过FlashCache加速的工作负载通常,有两种类型的工作负载无法利用FlashCache加速:大部分由写入请求组成的工作负载大部分由非重复性读取请求或非频繁重复性读取请求组成的工作负载FIaShCaChe不会缓存写入数据,因此无法加快写入工作负载的速度。在写
16、入操作占主导的混合读写工作负载中,使用FlashCache可能会产生间接优势:如果可以从缓存处理读取操作,则HDD就可以处理更多写入IZOo非重复性读取工作负载无法从FlashCache获益,因为插入到缓存中的数据不会被再次读取。同样,读取请求重复频率不高的工作负载也是如此;上次的读取操作所请求的数据不可能长时间保留在缓存中。3 FlashCache的工作模式FlashCache提供了三种工作模式或缓存策略:元数据模式、普通用户数据模式和低优先级模式。可以通过不同的模式优化FlashCache的缓存行为,使其最适合存储系统所处理的工作负载。元数据模式缓存的数据范围最窄,低优先级模式则最宽。3.
17、1 元数据模式在DataONTAP环境中,元数据主要由间接块(这些块可引用包含应用程序或用户数据的块)和特殊文件(如目录)组成。使用元楚据模式时,只有即将从内存缓冲区逐出的元数据才会插入到FlashCache缓存中;用户数据会从内存单逐出而不进行缓存。所有应用程序都会在某种程度上使用元数据,并且某些工作负载具有的元数据量较大(与应用程序数据相比)。例如,由数千万或数亿个小文件组成的工作负载就属于高元数据工作负载。但是,现售的NetAppFAS和V系列存储控制器支持大小亥512GB或更大的FlashCache卡。这些卡的容量足以缓存所有元数据,即使对于文件数量极多的工作负载也不例外,同时还有多余
18、空间来容纳部分用户数据。因此,目前几乎不会建议使用元数据模式。通过在DataONTAP中设置以下FlexScale选项,可以选择元数据模式:flexscale.enableonflexscale.lopri_blocksoffflexscale.normal_data_blocksoff图6)元数据缓存。Iopri bocks=offnormal_data_blocksoff(元数据)3.2 普通数据模式(默认设置)普通数据模式会在从内存缓冲区逐出元数据和随机读取的用户数据之前,将这些数据插入到FlashCache中。普通数据模式是FlashCache默认的缓存模式,建议对大部分部署采用该模式
19、用于启用普通数据模式的FIexScaIe选项设置如下:flexscale.enableonflexscale.lopri_blocksoffflexscale.normal_data_blockson图7)普通数据缓存;靛缓存品数据和用户数据。IoprLblocks-OffnormaLdaIaJ)1。CkS=On(元数据)3.3 低优先级模式低优先级用户数据通常是指那些保留在内存缓冲区中而用处最小的应用程序数据,因此这类数据往往最先被逐出缓冲区,以便将高优先级数据插入内存。在普通模式下使用FlashCache时,不会向FlashCache插入低优先级数据。但是对于某些工作负载,在缓存中保留低
20、优先级数据确实可以提高性能。使用此模式时会向FlashCache插入两类低优先级用户数据:写入数据。使用DataONTAP时,要写入的数据会缓冲在DRAM中,并记录在非易失性内存(NVRAM或NVMEM)中。将缓冲的写入数据提交到磁盘后,这些数据将从NVRAM(或NVMEM)中转储,并以低优先级保留在DRAM中。换句话说,只要元数据或普通用户数据需要空间,就会将近期写入的数据从内存中逐出。某些应用程序工作负载会在写入数据后不久就回读最近写入的数据。对于这类工作负载,FIaShCaChe可以在近期写入的数据块从内存中转储之前将它们保留在缓存中,从而提高读性能。长时间顺序读取操作。长时间顺序读取的
21、数据块保留在内存缓冲区的时间只够将数据传递给发出请求的主机或客户端。随后该数据将被迅速逐出内存,因为只读取一次的数据可能会迅速使内存缓冲区溢出,并代之以更有可能重复读取的元数据或随机用户数据。但是,在某些工作负载中,多个客户端会在短时间内请求顺序读取的数据,在这种情况下,将数据保留在FlashCache中可减轻HDD的重复性读取负担,从而获得一定优势。用于启用低优先级模式的FIexScaIe选项设置如下:flexscale.enableonflexscale.lopri_blocksonflexscale.normal_data_blockson图8)低优先级数据缓存;元数据、用户数据和低优先
22、级数据将被缓存。IoprLblocks=Onnormal data bocks=on(元数据)3.4 使用普通数据模式进行顺序读取缓存从DataONTAP8.2开始,我们提供了一个选项,使用该选项,当FlashCache在普通数据模式下运行时可以缓存长时间顺序读取的数据。将flexscale,readaheadblocks设置为On可启用此选项。在需要缓存顺序读取的数据时,建议使用此选项而不使用低优先级模式,因为readahead选项不会同时缓存写入数据。3.5 使用以7模式运行的DataONTAP进行混合缓存FlashCache属于控制器范围的资源,所选的缓存模式适用于在某个控制器所拥有的聚
23、合上配置的所有卷的数据。以7-模式运行的DataONTAP包含一项名为FlexShare的功能,与FlashCache一同使用时,能够在卷级别对缓存保留策略进行优调。例如,最佳操作模式可能是仅缓存除一个卷之外的所有卷的元数据,这种情况下使用普通模式数据缓存将受益最大。这时可以使用FIexShare优先级设置来修改被排除的卷的FlashCache缓存行为。要使用FIexShare和FlashCache对特定卷的缓存行为进行优调,请遵循以下步骤:1 .在命令提示符处输入以下命令,启用FIexShare:priorityon2 .输入以下命令设置FlexShare优先级,使其仅影响缓存行为:prio
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- NetApp FlashCache最佳实践 FlashCache 最佳 实践
