緩存區(qū)域大?。?/p>

扇區(qū)(Sector),磁道(Track),柱面(Cylinder)是Symmetrix陣列中磁盤存儲(chǔ)的三個(gè)基礎(chǔ)數(shù)據(jù)大小。

•Sector: Sector是一磁盤上上最小的單元,后端的硬件不會(huì)傳輸小于一個(gè)Secotr大小的數(shù)據(jù)到緩存中。Symmetrix會(huì)對(duì)所有在陣列中傳輸?shù)臄?shù)據(jù)進(jìn)行CRC校驗(yàn),一旦校驗(yàn)發(fā)現(xiàn)數(shù)據(jù)損壞,數(shù)據(jù)會(huì)被重新傳輸或者標(biāo)注相應(yīng)的物理磁盤區(qū)域?yàn)橐褤p壞。DMX-3以后的Symmetrix中Sector的大小為8KB。DMX至DMX-2的版本中大小為4KB。

•Track: Track是由8個(gè)Sector所組成。當(dāng)磁盤數(shù)據(jù)中一個(gè)Track在緩存中呈現(xiàn),該緩存區(qū)域就會(huì)成為一個(gè)可用的Slot。DMX-3以后的Symmetrix中Track的大小為64KB。DMX至DMX-2的版本中大小為32KB 。這個(gè)改變也是為了增加緩存讀取擊中的比例。

•Cylinder:?jiǎn)蝹€(gè)Cylinder由15個(gè)連續(xù)的Track組成,但是并非根據(jù)Symmetrix中所配置的物理磁盤所分布,是一個(gè)虛擬的概念,這連續(xù)的Track可能分布在不同的物理磁盤上。Cylinder的大小有時(shí)候也會(huì)用作計(jì)量磁盤設(shè)備Device和Meta Device的大小。DMX-3以后的Symmetrix中Cylinder的大小為960KB。DMX至DMX-2的版本中大小為480KB。

DMX和VMAX的緩存架構(gòu):

DMX存儲(chǔ)陣列中包含了2-8個(gè)緩存卡,每個(gè)緩存卡最大容量是64GB,每個(gè)Director都會(huì)有直連的Fibre Channel連接到每個(gè)緩存卡上面。總的連接數(shù)量取決于卡的數(shù)量。

VMAX中,緩存存儲(chǔ)在每個(gè)Director的緩存中。有Local Cache和Remote Cache之分。Director之間通過Virtual Matrix交換網(wǎng)絡(luò)相互訪問各自的緩存。

前端主機(jī)I/O請(qǐng)求在Symmetrix緩存中數(shù)據(jù)的訪問模式主機(jī)端發(fā)起了I/O操作以后,I/O讀取或者寫入請(qǐng)求傳送到Symmetrix前端口。根據(jù)數(shù)據(jù)存在于緩存與否,以及讀寫類型,Symmetrix會(huì)將I/O操作分為以下幾種情況:

1. 讀命中(Read Hit):在這種情況下,如下圖所示。當(dāng)主機(jī)端發(fā)送I/O請(qǐng)求到Symmetrix以后。如果所請(qǐng)求的數(shù)據(jù),已經(jīng)存在與緩存中(可能是之前的I/O已經(jīng)被數(shù)據(jù)加載到緩存中),Director會(huì)直接將緩存中的數(shù)據(jù)傳送回主機(jī)。雖然數(shù)據(jù)在緩存中已鏡像的方式存儲(chǔ),但是任何讀取操作都只會(huì)讀取其中的一份鏡像。

2. 讀取未命中(Read Miss): 在這種情況下,如下圖所示,主機(jī)端I/O請(qǐng)求的數(shù)據(jù)沒有在緩存中。相關(guān)的Director會(huì)從后端的磁盤上獲取所需要的數(shù)據(jù)。一旦磁盤返回?cái)?shù)據(jù),Director中的后端Disk Adaptor會(huì)將相應(yīng)的數(shù)據(jù)存放到緩存中,如果是緩存鏡像,則后端Disk Adaptor會(huì)在緩存中寫入兩份數(shù)據(jù)。最后Director會(huì)將數(shù)據(jù)再發(fā)送給主機(jī)。讀取未命中比讀取命中消耗更多的時(shí)間,因?yàn)橹鳈C(jī)端必須等待Symmetrix從后端磁盤中獲取數(shù)據(jù)。

因?yàn)閺腄MX-3開始的版本中,使用的緩存鏡像機(jī)制。Enginuity也對(duì)于這種鏡像緩存進(jìn)行了優(yōu)化算法。鏡像緩存選擇優(yōu)化主要的改進(jìn)是,Enginuity允許Director對(duì)于讀取請(qǐng)求同時(shí)定位兩個(gè)緩存Slot,但是只讀取其中的一個(gè)。從而減少后端的傳輸開銷。一旦緩存出現(xiàn)錯(cuò)誤,也可以簡(jiǎn)單的再從磁盤中重讀。這種優(yōu)化對(duì)于大I/O的讀取未命中會(huì)有30%的性能提升,

3. 順序讀和預(yù)讀:預(yù)讀機(jī)制用來產(chǎn)生額外的讀取命中。當(dāng)Symmetrix檢測(cè)到兩個(gè)數(shù)據(jù)讀請(qǐng)求是從連續(xù)的位置獲取的,則相應(yīng)的后端Director會(huì)啟動(dòng)預(yù)讀任務(wù)。后端Director會(huì)嘗試先于前端主機(jī)的請(qǐng)求,從額外的Track中讀取數(shù)據(jù)到緩存中,隨著被存放在緩存中的數(shù)量增加,如果前端主機(jī)連續(xù)的讀取順序的數(shù)據(jù),就會(huì)發(fā)現(xiàn)數(shù)據(jù)已經(jīng)存在與緩存中了。當(dāng)然,后端Director不會(huì)知道到底主機(jī)的順序讀會(huì)在哪里停止,一些預(yù)讀工作可能會(huì)被浪費(fèi),不過鑒于讀取命中的速度會(huì)比讀取未命中來的高出血多,所以通過預(yù)讀進(jìn)性能提升還是非常顯著的。

4. 寫入命中(Write Hit):也叫快速寫入,寫入命中的情況發(fā)生在緩存中有足夠空間用來存儲(chǔ)需要寫入的數(shù)據(jù)。對(duì)于主機(jī)端的寫入請(qǐng)求,后端Director找到可用的緩存Slot,然后將數(shù)據(jù)傳輸?shù)骄彺嬷?,然后立刻給主機(jī)寫入完成信號(hào)。主機(jī)端即認(rèn)為寫入已經(jīng)完成。對(duì)應(yīng)的緩存Slot會(huì)被標(biāo)記為寫入等待狀態(tài)(Write Pending),直到數(shù)據(jù)寫入到物理磁盤以后才能夠再被使用。如果緩存是鏡像的,Director需要在鏡像中分別寫入數(shù)據(jù)。寫入到后端磁盤(de-stage)是批量進(jìn)行的,通常會(huì)處于比較低的優(yōu)先級(jí)下進(jìn)行,但是如果當(dāng)寫入等待狀態(tài)的緩存使用率達(dá)到比較高的值的話(DMX默認(rèn)是50%,VMAX是75%),則Symmetrix會(huì)進(jìn)入優(yōu)先de-stage模式,加快寫入磁盤的速度。

5. 寫入未命中(Deplayed Fast Write):也叫延遲快速寫入,寫入未命中的情況發(fā)生在當(dāng)Symmetrix的緩存已經(jīng)達(dá)到了寫入等待上限的時(shí)候(VMAX是80%), 新的寫入請(qǐng)求無法進(jìn)行快速寫入,會(huì)觸發(fā)將現(xiàn)有的寫入等待數(shù)據(jù)立刻寫入到磁盤的操作,當(dāng)Director觀察到緩存中有空閑空間的時(shí)候,完成寫入命中操作,將數(shù)據(jù)寫入到緩存中。也就是說延遲快速寫入也就是有等待時(shí)間的快速寫入。

接下來解讀解讀影響Symmetrix性能的幾種緩存參數(shù),System Write Pending Limits、Device Write Pending Limits和DA Write Pending Limits。

System Write Pending Limits:

我們介紹了寫入等待Write Pending Limit的概念。Write Pending Limit緩存Slot是用來存放(對(duì)應(yīng)快速寫入)已經(jīng)在內(nèi)存中修改,但還未最后寫入到后端磁盤上的數(shù)據(jù)。當(dāng)Write Pending的Slot達(dá)到一定的數(shù)量,并且達(dá)到系統(tǒng)中的上限以后,會(huì)觸發(fā)Delay Fast Write,從而使整個(gè)陣列的性能有所降低。而Write Pending Limit就是Symmetrix存儲(chǔ)陣列中用作寫入等待的最大上限。VMAX Enginuity 5875以后是75%,之前的VMAX和DMX都是80%的總緩存比例:

Device Write Pending Limits:

除了System Write Pending Limits以外,緩存中還有針對(duì)Symmetrxi磁盤設(shè)備(邏輯卷)的Device Write Pending Limits。它的作用是保證單個(gè)磁盤設(shè)備的不會(huì)占用太多的Write Pending緩存Slot,從而影響到其他磁盤設(shè)備的性能。所有的磁盤設(shè)備都包含了一樣的上限值,而且所有磁盤設(shè)備的上限相加會(huì)大于整個(gè)緩存slot的數(shù)量。對(duì)于Symmetrix的Meta Device,組成它的Member都會(huì)包含有一個(gè)相應(yīng)的Device Write Pending值。

DA Write Pending Limits:

DA WritePending Limits默認(rèn)情況下等于50%的System Write Pending Limits。這個(gè)值通常是用來觸發(fā)緩存壓力事件的“Cache Stress“。 Cache Stress是Symmetrix用來定義是否有過多的Write Pending Slot,其中一個(gè)主要的指標(biāo)就是DA Write Pending Limits值。但整體的Write Pending的數(shù)量達(dá)到DA Write Pending Limits的時(shí)候,Symmetrix就會(huì)進(jìn)入Cache Stress模式。進(jìn)入Cache Stress模式以后symmetrix會(huì)改變緩存操作的模式。例如Director會(huì)進(jìn)入優(yōu)先Destatge模式,使用相同時(shí)間來處理destage數(shù)據(jù)和應(yīng)付Read Miss操作。這些活動(dòng)都會(huì)短暫的降低系統(tǒng)性能,讀取和寫入都會(huì)受到影響。不過長期來看,當(dāng)緩存釋放以后,整體的性能將恢復(fù)。

達(dá)到Write Pending Limits的影響:

當(dāng)Symmetrix陣列達(dá)到Write Pending Limit的時(shí)候,會(huì)對(duì)整體的寫入性能有比較大的影響。如果寫入發(fā)生,Symmetrix陣列在接到寫入請(qǐng)求以后會(huì)嘗試分配Cache Slot,然后檢查Write Pending Limits是否已經(jīng)到達(dá),如果是,會(huì)直接觸發(fā)Write Miss。新的Cache Slot不會(huì)被分配,直至Write pending的slot destage到后端的磁盤上。雖然Director會(huì)進(jìn)入最高級(jí)別的destage模式,但是主機(jī)的寫入還是因?yàn)檫@種情況而變慢。但是如果,前端的寫入頻繁發(fā)生在一個(gè)磁盤區(qū)域中,同一個(gè)Cache Slot會(huì)被標(biāo)注成Write Pending模式,但是對(duì)于多次寫或者重復(fù)寫發(fā)生在一個(gè)Cache Slot中,因?yàn)椴恍枰匦路峙湫碌腃ache Slot,則影響會(huì)相對(duì)小一些。

下圖給出了一個(gè)Symmetrix陣列達(dá)到Write Pending Limit后影響的例子。這個(gè)測(cè)試是在128個(gè)Device上進(jìn)心的,前端模擬了大量的寫入請(qǐng)求,以至于超過當(dāng)前陣列的承受范圍。最初,由于有足夠的緩存,則陣列處于告訴的Write Hit狀態(tài),下圖我們可以看到每秒可以有15000 IOPS,但是隨著時(shí)間的推移,當(dāng)40%的Cache Slot被Write pending所用的時(shí)候,Symmetrix進(jìn)入到cache stress模式。后端Director會(huì)使用更多的資源來進(jìn)心destage。磁盤本身也達(dá)到了自身的Write Pending Limit。這種情況下,我們可以看到整體的IOPS開始下降,寫入的反應(yīng)時(shí)間也開始隨之升高,IOPS達(dá)到了10000左右。40秒以后,System Write Pending達(dá)到了80%。雖然symmetrix加快了destage的速度,還是沒有來得及處理寫入請(qǐng)求。在某一個(gè)時(shí)間點(diǎn)會(huì)出現(xiàn)一個(gè)下降的峰值,隨后緩存將無法在加速寫入請(qǐng)求。寫入的反應(yīng)速度與后端destage的速度保持一致,IOPS下降到5000左右。

本文作者為EMC中文技術(shù)社區(qū)(https://community.emc.com/go/chinese)技術(shù)版主。如果您對(duì)本文有任何疑問和不同見解,也歡迎到EMC中文支持論壇參與討論。

分享到

fenglin

相關(guān)推薦