Symmetrix动态缓存分区技术(DCP)原理与配置

Symmetrix动态缓存分区技术(DCP)原理与配置

 

转载请在文首保留原文出处:EMC中文支持论坛https://community.emc.com/go/chinese

介绍

 

     Symmetrix动态缓存分区技术(Dynamic Cache Partition)是一种可供用户配置的高级缓存设置选项。它的作用是对Symmetrix的全局分布式缓存区域进行划分,并且将Symmetrix中不同磁盘设备根据分配策略应用到不同的缓存分区。满足不同的数据访问需求,优化阵列整体性能。本文介绍了DCP的原理和配置方法。

更多信息

 

Dynamic Cache Partition原理与应用场景:

 

     首先要解释一下DCP功能的主要作用,了解Symmetrix的人可能都知道,Symmetrix的缓存是全阵列共享的,所有链接到阵列的主机和应用都会用到共享缓存资源。(关于Symmetrix的缓存机制,参考文章:Symmetrix缓存技术解读)由于这种共享缓存机制存在,在多应用与多主机链接的环境下,有可能发生一种情况:一个缓存利用率比较大的应用,多数情况下这种应用会是随机读到比例较高应用(针对不同应用的IO访问类型,参考文章:关于不同应用程序存储IO类型的描述为了满足更高的缓存随机读命中率,基于Symmetrix缓存算法,Symmetrix阵列会把最新读取的数据载入到缓存。但是,由于这类应用的数据访问特点,被缓存的数据可能只被读一次,而这部分只被读取一次的数据却占用了比较多缓存区域。某些情况下,为了释放缓存空间,还会强行刷新了另外一个对性能要求较高的应用的缓存区域。因为缓存的刷新是以区域为单位,而缓存中数据的存放则为更小的单位,就是一个区域包含了多个缓存存储单元,被多个应用说用到。从而导致这个应用“盗取“了其他高性能需求的应用的缓存区域,导致后者不能在使用阵列缓存中受益,整体性能受到影响。

     在早期的Symmetrix阵列中,解决这个问题的方法是设置一种叫做LRU Least Recently UsedGroup的方式,加入到相应LRU Group中的磁盘设备会优先刷新自己所包含的缓存,从而不影响到其他LRU Group中的缓存区域。从而起到隔离那些缓存用量不是很高效的应用程序。而在VMAX以后的Enginuity版本,引入了动态缓存分区技术DCP。作为一个更强大的可配置的功能,DCP提供了更加高效的隔离缓存机制,使得应用可以在所配置的缓存区域内使用缓存区域,而不会影响到其他应用所对应的缓存区域。

     默认情况Symmetrix VMAX中过所有的磁盘设备都会使用默认的Cache Partition,使用DCP功能的用户可以额外创建7Cache Partition,然后将Device加入到这些Partition中。用户可以配置固定的缓存区域大小,也可以设置特殊情况下,配置某个磁盘设备在高负载的情况下借用其他缓存区域中的分区,从而提供了更多的缓存可操作性。

 

 

 

Dynamic Cache Partition配置方法:

 

DCP的可配置选项可以分为五种:


     MinimumTargetMaximum缓存比例定义了所配置的Cache Partition占所有缓存大小的百分比。配置了三个选项以后,Cache Partition的缓存用量就会介于MinimumMaximum之间。而Target选项则定义的推荐的缓存用量值,也定义了上文中所提到的借用其他区域的缓存区域的触发阀值。当Cache Partition有额外用来满足I/O需求时,且缓存用量达到Target阀值,DCP会启用借用其他区域的缓存,但是总量不会超过Maximum设置。而整个阵列层面,所有Cache PartitionTarget值总和为100%。如果三个值相等,那这个Cache Partition则为固定大小。

     Donation Time值用来决定一个Cache Partition内的缓存区域,被其他Cache Partition借用之前,保留的时长。就是说,一个Cache Partition中的某个区域没有执行过任何I/O操作的时间达到Donation Time值,这个区域则可以作为被其他Cache Partition“借用”的候选。越高的Donation Time值决定了缓存区域会被当前的Cache Parition使用越久,减少被其他Cache Partition借用的概率。

     每一个Cache Partition还可以设置针对当前分区的Write Pending Limit设置(Write Pending内容参考文章:Symmetrix缓存的Write Pending)。配置的区间是Maximum分区大小的40%-80%


     用户可以使用Solutions Enabler(版本7.4以上)命令symqos来进行DCP的配置,主要的命令如下:


启用和关闭DCP的命令是:


symqos -cp -sid SymmID enable | disable


检查DCP是否被启用的命令为,在命令输出中检查Cache Partitioning栏的状态:


symcfg list –v


创建Cache Partition的命令是:


symqos -cp -name PartitionName -sid SymmID create -target TargetPercent -min MinimumPercent -max MaximumPercent -wp WritePendingLimit -time DonationTime


例如,在Symmetrix阵列尾号为1234中创建一个名为TestPartitionCache Partition,并且设置Target值为10%Minmum5%Maximum40%Wrtite Pending50%Donation Time10秒。使用命令:


symqos -cp -name TestPartition -sid 1234 -target 10 -min 5 -max 40 -wp 50 -time 10 create


Device添加到Cache Partition的命令为:


symqos -cp -name PartitionName -sid SymmID add dev SymDevName


例如,将Device 310添加到名为TestPCache Partition,使用命令:


symqos -cp -name TestP -sid 310 add dev 001


Device 002012十个Device添加到名为TestPCache Partition,使用命令:


symqos -cp -name TestP -sid 310 -devs 002:012 addall


 

参考

 

Symmetrix缓存技术解读

关于不同应用程序存储IO类型的描述

Symmetrix缓存的Write Pending


应用于

 

Symmetrix VMAX系列