楓林 發(fā)表于:13年10月21日 15:59 [原創(chuàng)] DOIT.com.cn
Symmetrix動(dòng)態(tài)緩存分區(qū)技術(shù)(Dynamic Cache Partition)是一種可供用戶配置的高級(jí)緩存設(shè)置選項(xiàng)。它的作用是對Symmetrix的全局分布式緩存區(qū)域進(jìn)行劃分,并且將Symmetrix中不同磁盤設(shè)備根據(jù)分配策略應(yīng)用到不同的緩存分區(qū)。滿足不同的數(shù)據(jù)訪問需求,優(yōu)化陣列整體性能。本文介紹了DCP的原理和配置方法。
Dynamic Cache Partition原理與應(yīng)用場景:
首先要解釋一下DCP功能的主要作用,了解Symmetrix的人可能都知道,Symmetrix的緩存是全陣列共享的,所有鏈接到陣列的主機(jī)和應(yīng)用都會(huì)用到共享緩存資源。(關(guān)于Symmetrix的緩存機(jī)制,參考文章:Symmetrix緩存技術(shù)解讀)由于這種共享緩存機(jī)制存在,在多應(yīng)用與多主機(jī)鏈接的環(huán)境下,有可能發(fā)生一種情況:一個(gè)緩存利用率比較大的應(yīng)用,多數(shù)情況下這種應(yīng)用會(huì)是隨機(jī)讀到比例較高應(yīng)用(針對不同應(yīng)用的IO訪問類型,參考文章:關(guān)于不同應(yīng)用程序存儲(chǔ)IO類型的描述)為了滿足更高的緩存隨機(jī)讀命中率,基于Symmetrix緩存算法,Symmetrix陣列會(huì)把最新讀取的數(shù)據(jù)載入到緩存。但是,由于這類應(yīng)用的數(shù)據(jù)訪問特點(diǎn),被緩存的數(shù)據(jù)可能只被讀一次,而這部分只被讀取一次的數(shù)據(jù)卻占用了比較多緩存區(qū)域。某些情況下,為了釋放緩存空間,還會(huì)強(qiáng)行刷新了另外一個(gè)對性能要求較高的應(yīng)用的緩存區(qū)域。因?yàn)榫彺娴乃⑿率且詤^(qū)域?yàn)閱挝唬彺嬷袛?shù)據(jù)的存放則為更小的單位,就是一個(gè)區(qū)域包含了多個(gè)緩存存儲(chǔ)單元,被多個(gè)應(yīng)用說用到。從而導(dǎo)致這個(gè)應(yīng)用“盜取“了其他高性能需求的應(yīng)用的緩存區(qū)域,導(dǎo)致后者不能在使用陣列緩存中受益,整體性能受到影響。
在早期的Symmetrix陣列中,解決這個(gè)問題的方法是設(shè)置一種叫做LRU (Least Recently Used)Group的方式,加入到相應(yīng)LRU Group中的磁盤設(shè)備會(huì)優(yōu)先刷新自己所包含的緩存,從而不影響到其他LRU Group中的緩存區(qū)域。從而起到隔離那些緩存用量不是很高效的應(yīng)用程序。而在VMAX以后的Enginuity版本,引入了動(dòng)態(tài)緩存分區(qū)技術(shù)DCP。作為一個(gè)更強(qiáng)大的可配置的功能,DCP提供了更加高效的隔離緩存機(jī)制,使得應(yīng)用可以在所配置的存區(qū)域內(nèi)使用緩存區(qū)域,而不會(huì)影響到其他應(yīng)用所對應(yīng)的緩存區(qū)域。
默認(rèn)情況Symmetrix VMAX中過所有的磁盤設(shè)備都會(huì)使用默認(rèn)的Cache Partition,使用DCP功能的用戶可以額外創(chuàng)建7個(gè)Cache Partition,然后將Device加入到這些Partition中。用戶可以配置固定的緩存區(qū)域大小,也可以設(shè)置特殊情況下,配置某個(gè)磁盤設(shè)備在高負(fù)載的情況下借用其他緩存區(qū)域中的分區(qū),從而提供了更多的緩存可操作性。
Dynamic Cache Partition配置方法:
DCP的可配置選項(xiàng)可以分為五種:
Minimum、Target、Maximum緩存比例定義了所配置的Cache Partition占所有緩存大小的百分比。配置了三個(gè)選項(xiàng)以后,Cache Partition的緩存用量就會(huì)介于Minimum和Maximum之間。而Target選項(xiàng)則定義的推薦的緩存用量值,也定義了上文中所提到的借用其他區(qū)域的緩存區(qū)域的觸發(fā)閥值。當(dāng)Cache Partition有額外用來滿足I/O需求時(shí),且緩存用量達(dá)到Target閥值,DCP會(huì)啟用借用其他區(qū)域的緩存,但是總量不會(huì)超過Maximum設(shè)置。
而整個(gè)陣列層面,所有Cache Partition的Target值總和為100%。如果三個(gè)值相等,那這個(gè)Cache Partition則為固定大小。
Donation Time值用來決定一個(gè)Cache Partition內(nèi)的緩存區(qū)域,被其他Cache Partition借用之前,保留的時(shí)長。就是說,一個(gè)Cache Partition中的某個(gè)區(qū)域沒有執(zhí)行過任何I/O操作的時(shí)間達(dá)到Donation Time值,這個(gè)區(qū)域則可以作為被其他Cache Partition“借用”的候選。越高的Donation Time值決定了緩存區(qū)域會(huì)被當(dāng)前的Cache Parition使用越久,減少被其他Cache Partition借用的概率。
每一個(gè)Cache Partition還可以設(shè)置針對當(dāng)前分區(qū)的Write Pending Limit設(shè)置(Write Pending內(nèi)容參考文章:Symmetrix緩存的Write Pending)。配置的區(qū)間是Maximum分區(qū)大小的40%-80%。
用戶可以使用Solutions Enabler(版本7.4以上)命令symqos來進(jìn)行DCP的配置,主要的命令如下:啟用和關(guān)閉DCP的命令是:
symqos -cp -sid SymmID enable | disable
檢查DCP是否被啟用的命令為,在命令輸出中檢查Cache Partitioning欄的狀態(tài):
symcfg list –v
創(chuàng)建Cache Partition的命令是:
symqos -cp -name PartitionName -sid SymmID create -target TargetPercent -min MinimumPercent -max MaximumPercent -wp WritePendingLimit -time DonationTime
例如,在Symmetrix陣列尾號(hào)為1234中創(chuàng)建一個(gè)名為TestPartition的Cache Partition,并且設(shè)置Target值為10%,Minmum為5%,Maximum為40%,Wrtite Pending為50%,Donation Time為10秒。使用命令:
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添加到名為TestP到Cache Partition,使用命令:
symqos -cp -name TestP -sid 310 add dev 001
將Device 002到012十個(gè)Device添加到名為TestP的Cache Partition,使用命令:
symqos -cp -name TestP -sid 310 -devs 002:012 addall
本文作者為EMC中文技術(shù)社區(qū)(https://community.emc.com/go/chinese)技術(shù)版主。如果您對本文有任何疑問和不同見解,也歡迎到EMC中文支持論壇參與討論。
公司簡介 | 媒體優(yōu)勢 | 廣告服務(wù) | 客戶寄語 | DOIT歷程 | 誠聘英才 | 聯(lián)系我們 | 會(huì)員注冊 | 訂閱中心
Copyright © 2013 DOIT Media, All rights Reserved. 北京楚科信息技術(shù)有限公司 版權(quán)所有.