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í)間的快速寫入。