Symmetrix緩存機制解讀

楓林 發表于:13年10月15日 15:28 [原創] 存儲在線

  • 分享:
[導讀]文章對Symmetrix最新的兩代產品緩存中的數據類型進行介紹。幫助存儲管理員更好的了解Symmetrix的緩存工作機制。

存儲系統的緩存作用是加速數據讀取與寫入的速度,從而提升整體的存儲性能。Symmetrix緩存機制,作為存儲陣列的核心技術,對陣列的性能和高可用性起著至關重要的作用。本文對Symmetrix最新的兩代產品緩存中的數據類型進行介紹。幫助存儲管理員更好的了解Symmetrix的緩存工作機制。

緩存中的數據:

 緩存主要的目的是用來緩沖磁盤上的I/O。Symmetrix的緩存分為兩個部分,用戶數據區域(User Data Slots)和系統數據區域(Global System Data)。

•用戶數據區域(User Data Slots): 用戶數據區域會被劃分成很多的Slots用來緩沖前端的I/O。一旦前端的讀寫要求緩存存放數據,系統會分配相應的Slot用作存儲數據。緩存會對于前端呈現相關的磁盤設備的的Track給前端主機,直到該Slot被釋放或者被重用。并且對于DMX-3或者更高版本的陣列,User Data是以鏡像的方式存儲的(DMX是兩塊內存卡,VMAX的話則是兩個Director)。

•系統數據區域(Global System Data):緩存中除了存放用戶數據以外,還會存放一些供Director使用的系統數據,例如磁盤設備列表(Device Table)列出了每個Slot對應的磁盤設備位置,可以讓Director在緩存中找到對應的數據。Director Mailboxes存放了各個Director相互通訊的命令集。對于DMX陣列,Global System Data會以條帶的方式存放在每個物理內存板中。

緩存區域大?。?/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中文支持論壇參與討論。

[責任編輯:楓林]
楓林
PowerPath家族是業內第一個針對開放系統的存儲多路控制軟件,它誕生于1998年。PowerPath最大功能是實現了主機與存儲之間的多路徑支持,負載均衡與自動故障切換
官方微信
weixin
精彩專題更多
華為OceanStor V3系列存儲系統是面向企業級應用的新一代統一存儲產品。在功能、性能、效率、可靠性和易用性上都達到業界領先水平,很好的滿足了大型數據庫OLTP/OLAP、文件共享、云計算等各種應用下的數據存儲需求。
12月15日,中國閃存聯盟成立,同時IBM Flash System卓越中心正式啟動
DOIT、DOSTOR、易會移動客戶端播報中國存儲峰會盛況。
 

公司簡介 | 媒體優勢 | 廣告服務 | 客戶寄語 | DOIT歷程 | 誠聘英才 | 聯系我們 | 會員注冊 | 訂閱中心

Copyright © 2013 DOIT Media, All rights Reserved.

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