緩存區域大?。?/p>

扇區(Sector),磁道(Track),柱面(Cylinder)是Symmetrix陣列中磁盤存儲的三個基礎數據大小。

•Sector: Sector是一磁盤上上最小的單元,后端的硬件不會傳輸小于一個Secotr大小的數據到緩存中。Symmetrix會對所有在陣列中傳輸的數據進行CRC校驗,一旦校驗發現數據損壞,數據會被重新傳輸或者標注相應的物理磁盤區域為已損壞。DMX-3以后的Symmetrix中Sector的大小為8KB。DMX至DMX-2的版本中大小為4KB。

•Track: Track是由8個Sector所組成。當磁盤數據中一個Track在緩存中呈現,該緩存區域就會成為一個可用的Slot。DMX-3以后的Symmetrix中Track的大小為64KB。DMX至DMX-2的版本中大小為32KB 。這個改變也是為了增加緩存讀取擊中的比例。

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

DMX和VMAX的緩存架構:

DMX存儲陣列中包含了2-8個緩存卡,每個緩存卡最大容量是64GB,每個Director都會有直連的Fibre Channel連接到每個緩存卡上面??偟倪B接數量取決于卡的數量。

VMAX中,緩存存儲在每個Director的緩存中。有Local Cache和Remote Cache之分。Director之間通過Virtual Matrix交換網絡相互訪問各自的緩存。

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

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

2. 讀取未命中(Read Miss): 在這種情況下,如下圖所示,主機端I/O請求的數據沒有在緩存中。相關的Director會從后端的磁盤上獲取所需要的數據。一旦磁盤返回數據,Director中的后端Disk Adaptor會將相應的數據存放到緩存中,如果是緩存鏡像,則后端Disk Adaptor會在緩存中寫入兩份數據。最后Director會將數據再發送給主機。讀取未命中比讀取命中消耗更多的時間,因為主機端必須等待Symmetrix從后端磁盤中獲取數據。

因為從DMX-3開始的版本中,使用的緩存鏡像機制。Enginuity也對于這種鏡像緩存進行了優化算法。鏡像緩存選擇優化主要的改進是,Enginuity允許Director對于讀取請求同時定位兩個緩存Slot,但是只讀取其中的一個。從而減少后端的傳輸開銷。一旦緩存出現錯誤,也可以簡單的再從磁盤中重讀。這種優化對于大I/O的讀取未命中會有30%的性能提升,

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

4. 寫入命中(Write Hit):也叫快速寫入,寫入命中的情況發生在緩存中有足夠空間用來存儲需要寫入的數據。對于主機端的寫入請求,后端Director找到可用的緩存Slot,然后將數據傳輸到緩存中,然后立刻給主機寫入完成信號。主機端即認為寫入已經完成。對應的緩存Slot會被標記為寫入等待狀態(Write Pending),直到數據寫入到物理磁盤以后才能夠再被使用。如果緩存是鏡像的,Director需要在鏡像中分別寫入數據。寫入到后端磁盤(de-stage)是批量進行的,通常會處于比較低的優先級下進行,但是如果當寫入等待狀態的緩存使用率達到比較高的值的話(DMX默認是50%,VMAX是75%),則Symmetrix會進入優先de-stage模式,加快寫入磁盤的速度。

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

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

System Write Pending Limits:

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

Device Write Pending Limits:

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

DA Write Pending Limits:

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

達到Write Pending Limits的影響:

當Symmetrix陣列達到Write Pending Limit的時候,會對整體的寫入性能有比較大的影響。如果寫入發生,Symmetrix陣列在接到寫入請求以后會嘗試分配Cache Slot,然后檢查Write Pending Limits是否已經到達,如果是,會直接觸發Write Miss。新的Cache Slot不會被分配,直至Write pending的slot destage到后端的磁盤上。雖然Director會進入最高級別的destage模式,但是主機的寫入還是因為這種情況而變慢。但是如果,前端的寫入頻繁發生在一個磁盤區域中,同一個Cache Slot會被標注成Write Pending模式,但是對于多次寫或者重復寫發生在一個Cache Slot中,因為不需要重新分配新的Cache Slot,則影響會相對小一些。

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

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

未經允許不得轉載:存儲在線-存儲專業媒體 » Symmetrix緩存機制解讀
分享到

fenglin

相關推薦

精品国产午夜肉伦伦影院,双性老师灌满浓jing上课h,天天做天天爱夜夜爽,攵女乱h边做边走