處理快速的非同步串流的方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明有關(guān)于一種電腦數(shù)據(jù)儲存系統(tǒng),尤指一種有效率處理存儲控制器快取記憶體內(nèi)的主機寫入數(shù)據(jù),使得寫入串流效率可以最大化。
【背景技術(shù)】
[0002]在數(shù)據(jù)存儲系統(tǒng)內(nèi),藉由利用已知的數(shù)據(jù)快取技術(shù)(包含重新寫入快取記憶體技術(shù))來提升寫入效能。當存儲控制器接收到主機電腦的寫入請求時,存儲控制器將寫入數(shù)據(jù)儲存于寫入快取記憶體。如果寫入快取記憶體內(nèi)仍有可用的空間,則會通知主機電腦此完成寫入請求已經(jīng)完成。接著開放主機電腦以允許額外的讀取或?qū)懭胝埱?。如果沒有可用的寫入快取記憶體空間,存儲控制器必須直接移轉(zhuǎn)此寫入請求至較慢的存儲元件,如此會降低寫入效能。
[0003]一旦寫入數(shù)據(jù)位于寫入快取記憶體內(nèi),存儲控制器建立多種方式來判斷何時以及多少數(shù)量的寫入數(shù)據(jù)傳送至目標的存儲元件。與如此移轉(zhuǎn)相關(guān)的動作通常稱為自寫入快取記憶體釋出數(shù)據(jù)。釋出寫入數(shù)據(jù)是很重要的因為其釋放出寫入快取記憶體的空間以接收來自主機電腦的新寫入請求,且數(shù)據(jù)是以冗余磁盤陣列(RAID)架構(gòu)存儲于存儲元件中。當單一或數(shù)個存儲元件失效時,冗余RAID架構(gòu)可以對數(shù)據(jù)進行保存。因此有需要一種有效率處理主機寫入請求以及將存儲控制器寫入快取記憶體的寫入數(shù)據(jù)傳送至存儲元件的方法。
【發(fā)明內(nèi)容】
[0004]本發(fā)明解決現(xiàn)有技術(shù)的缺點。依據(jù)本發(fā)明的數(shù)個實施例,提供一種可以有效率地將寫入數(shù)據(jù)由存儲控制器傳送至條紋存儲區(qū)域。該方法包含有接收一主機寫入請求,其中該主機寫入請求包含一主機寫入請求大??;計算出填滿一包含主機寫入請求的一條紋的時間小于一主機保證寫入時間;以及處理該主機寫入請求以作為一寫回主機寫入請求。存儲控制器將數(shù)個寫回主機寫入請求存儲于一寫入快取記憶體,以及填滿該條紋的時間為該條紋的大小除以包含該主機寫入請求的對應(yīng)的主機寫入串流的數(shù)據(jù)速率。該主機保證寫入時間是該存儲控制器保證主機寫入請求送進于寫入快取記憶體以及條紋存儲區(qū)域之一者的最大時間區(qū)間。
[0005]在本發(fā)明的一實施例中,提供一種存儲控制器,該存儲控制器可以有效率處理自一個或多個主機電腦寫入數(shù)據(jù)至一包含一個或多個存儲元件的條紋存儲區(qū)域。該存儲控制器包含一處理器與一記憶體,該記憶體親接于該處理器。該記憶體包含一寫入快取記憶體以及一主機保證寫入時間。該主機保證寫入時間是該存儲控制器保證主機寫入請求送進于寫入快取記憶體以及條紋存儲區(qū)域之一者的最大時間區(qū)間。存儲控制器接收一主機寫入請求,該主機寫入請求包含有一主機寫入請求大小。該存儲控制器計算出填滿一包含有該主機寫入請求的條紋的時間小于該主機保證寫入時間,以及該存儲控制器處理該主機寫入請求作為一寫回主機寫入請求。填滿該條紋的時間是該條紋的大小除以包含該主機寫入請求的對應(yīng)的主機寫入串流的數(shù)據(jù)速率。
[0006]在本發(fā)明的另一實施例中,提供一種可以有效率地將寫入數(shù)據(jù)傳送至存儲元件的系統(tǒng)。該系統(tǒng)包含一主機電腦、一親接于主機電腦的存儲控制器、以及一包含有一個或多個的存儲元件且與存儲控制器耦接的條紋區(qū)域。該存儲控制器包含一處理器以及一耦接于處理器的記憶體。該記憶體包含一寫入快取記憶體。該主機電腦將一主機寫入請求傳送至存儲控制器,該主機寫入請求送進于條紋存儲區(qū)域之中的一條紋。當主機電腦將主機寫入請求傳送至存儲控制器時,該存儲控制器計算出填滿該條紋的時間未大于一主機保證寫入時間以及處理主機寫入請求以作為一寫回主機寫入請求。填滿條紋的時間為包含有主機寫入請求的條紋的大小除以包含該主機寫入請求的對應(yīng)的主機寫入串流的數(shù)據(jù)速率。
[0007]本發(fā)明的優(yōu)點在于針對快速串流與慢速串流,優(yōu)先將快速串流寫入至快取記憶體,藉此提升主機寫入串流的寫入效能??焖俅鲗懭霐?shù)據(jù)至存儲控制器的速度快于慢速串流,因此將整個條紋填滿于寫入快取記憶體的速度快于慢速串流。當數(shù)據(jù)從整個條紋釋出而非從部分條紋釋出,數(shù)據(jù)將依據(jù)最大效率從寫入快取記憶體釋出至存儲元件的條紋區(qū)域。通過將自整個條紋釋出的頻率最大化,使得寫入快取記憶體的使用率最大化以及存儲控制器的網(wǎng)狀與入效能最大化。
[0008]本發(fā)明的其他優(yōu)點在于使得具有相對較小的寫入快取記憶體的存儲控制器優(yōu)于具有相對較大的寫入快取記憶體的存儲控制器,其中較大的寫入快取記憶體沒有利用本發(fā)明。存儲控制器的成本部分決定于機上快取記憶體的速度與大小。因此,希望利用較小且更有效率的存儲控制器快取記憶體,以便維持存儲控制器的成本有效性。
[0009]本發(fā)明還有其他優(yōu)點在于存儲控制器維持來自主機電腦較快的寫入數(shù)據(jù)速率。在其他實施例中,允許主機電腦在沒有數(shù)據(jù)溢位以及遺漏客戶數(shù)據(jù)的可能性的情形之下,維持高的客戶數(shù)據(jù)速率。
[0010]本發(fā)明的實施例的附加特征與優(yōu)點明顯地揭露于說明書,特別是可與附圖共同參酌。
【附圖說明】
[0011]圖1a繪示本發(fā)明第一實施例的非主機型數(shù)據(jù)存儲系統(tǒng)的方塊圖;
[0012]圖1b繪示本發(fā)明第二實施例的非主機型數(shù)據(jù)存儲系統(tǒng)的方塊圖;
[0013]圖1c繪示本發(fā)明第三實施例的非主機型數(shù)據(jù)存儲系統(tǒng)的方塊圖;
[0014]圖2a繪示本發(fā)明第一實施例的主機型數(shù)據(jù)存儲系統(tǒng)的方塊圖;
[0015]圖2b繪示本發(fā)明第二實施例的主機型數(shù)據(jù)存儲系統(tǒng)的方塊圖;
[0016]圖2c繪示本發(fā)明第三實施例的主機型數(shù)據(jù)存儲系統(tǒng)的方塊圖;
[0017]圖3繪示本發(fā)明一實施例的數(shù)據(jù)存儲系統(tǒng)的方塊圖;
[0018]圖4a繪示本發(fā)明一實施例的單一存儲元件組成的條紋區(qū)域的示意圖;
[0019]圖4b繪示本發(fā)明一實施例的復(fù)數(shù)個存儲元件組成的條紋區(qū)域的示意圖;
[0020]圖5a繪示本發(fā)明一實施例的寫入數(shù)據(jù)串流的示意圖;
[0021]圖5b繪示本發(fā)明一實施例的爆發(fā)參數(shù)的示意圖;
[0022]圖6繪示本發(fā)明一實施例的主機數(shù)據(jù)串流的示意圖;
[0023]圖7繪示本發(fā)明一實施例的針對快速串流與慢速串流來填滿條紋的時間示意圖;
[0024]圖8繪示本發(fā)明一實施例的所有主機寫入串流的總體大數(shù)據(jù)的參數(shù)的示意圖;
[0025]圖9繪示本發(fā)明一實施例的預(yù)先主機寫入串流的參數(shù)的示意圖;
[0026]圖10繪示本發(fā)明一實施例的主機寫入請求程序的流程圖;
[0027]圖11繪示本發(fā)明一實施例的串流分析程序的流程圖;
[0028]圖12繪示本發(fā)明一實施例的快速串流的新的主機寫入請求程序的流程圖;以及
[0029]圖13繪示本發(fā)明一實施例的較少最近使用串流序列的管理步驟的流程圖。
[0030]其中,附圖標記說明如下:
[0031]100數(shù)據(jù)存儲系統(tǒng)104主機電腦
[0032]108存儲控制器108a冗余存儲控制器
[0033]108b冗余存儲控制器112主機匯流排
[0034]116、116a_116n存儲元件120存儲元件匯流排
[0035]124、132存儲子系統(tǒng)128、136數(shù)據(jù)存儲系統(tǒng)
[0036]140控制器間通訊鏈路
[0037]200、204、208數(shù)據(jù)存儲系統(tǒng)
[0038]224應(yīng)用程序
[0039]300數(shù)據(jù)存儲系統(tǒng)308、308a、308b主機數(shù)據(jù)串流
[0040]312中央處理器316記憶體
[0041 ]324讀取數(shù)據(jù)快取記憶體328寫入數(shù)據(jù)快取記憶體
[0042]320數(shù)據(jù)串流大數(shù)據(jù)332主機輸入/輸出請求
[0043]340計時器
[0044]400條紋區(qū)域401條紋N
[0045]408 條紋 N+1 412 條紋 N+2
[0046]416條紋N+3 4沈區(qū)塊A
[0047]424 區(qū)塊 B 428 區(qū)塊 C
[0048]432區(qū)塊D 434條紋區(qū)域
[0049]434 條紋 M 440 條紋 M+1
[0050]444 條紋 M+2 448 條紋 M+3
[0051]452 區(qū)塊 E 456 區(qū)塊 F
[0052]460 區(qū)塊 G 464 區(qū)塊 H
[0053]468 區(qū)塊 I 472 區(qū)塊 J
[0054]488 區(qū)塊 K 480 區(qū)塊 L
[0055]484 區(qū)塊 M 488 區(qū)塊 N
[0056]492 區(qū)塊 O 496 區(qū)塊 P
[0057]512時段516爆發(fā)
[0058]516a 爆發(fā) O 516b 爆發(fā) I
[0059]516c 爆發(fā) 2 516d 爆發(fā) 3
[0060]516e 爆發(fā) 4 516f 爆發(fā) 5
[0061]520爆發(fā)長度
[0062]604邏輯區(qū)塊地址608指定時間
[0063]612a_612m主機寫入請求616主機寫入請求大小
[0064]620起始邏輯區(qū)塊地址624結(jié)束邏輯區(qū)塊地址
[0065]632 串流窗口
[0066]704寫入快取708回寫快取
[0067]712透寫快取716填滿條紋的時間
[0068]720主機保證寫入時間804主機保證寫入時間
[0069]808較少最近使用串流序列812原始容器表
[0070]816條紋大小904串流標識
[0071]908上次選中的串流時間912串流數(shù)據(jù)速率
[0072]916主機寫入序列920主機寫入請求
[0073]924主機寫入請求大小928主機寫入請求之起始邏輯區(qū)塊地址
[0074]932爆發(fā)取樣序列940上次爆發(fā)后的時間的取樣序列
【具體實施方式】
[0075]本案的發(fā)明人觀察到從主機電腦至存儲控制器的輸入/輸出工作量有多種效能問題。特別是指當有需要許多具有不同數(shù)據(jù)速率的大量的循序?qū)懭氪鞯拇鎯刂破鲗懭肟烊∮洃涹w時,有效率地管理存儲控制器寫入快取記憶體是困難的。例如,將所有的主機寫入串流被同樣地處理的話,存儲控制器寫入快取記憶體將會快速地被來自于慢速串流的部分條紋填滿。如此會使得存儲控制器將部分串流自寫入快取記憶體釋出而傳送至存儲元件,以便釋放更多的寫入快取記憶體空間,或者一旦沒有可使用的寫入快取記憶體空間時,快速串流必須使用連續(xù)寫入模式。部分條紋寫入包含少于在完整條紋內(nèi)的所有數(shù)據(jù)。任何一種結(jié)果都是高度沒有效率。因此有需要針對每一個串流的數(shù)據(jù)速率進行追蹤,以及允許對于快速串流優(yōu)先進行寫入快取記憶體,以便將釋出至存儲元件的完整條紋的數(shù)目極大化。
[0076]圖1a繪示本發(fā)明第一實施例的非主機為基礎(chǔ)型的數(shù)據(jù)存儲系統(tǒng)100的方塊圖。
[0077]數(shù)據(jù)存儲系統(tǒng)100包含一個或數(shù)個主機電腦104。主機電腦104—般為伺服器,但是也可為桌上型電腦或行動型電腦。主機電腦104執(zhí)行應(yīng)用程序而產(chǎn)生讀取請求以及寫入請求,通過主機匯流排112(或網(wǎng)絡(luò))將讀取請求以及寫入請求傳送至存儲控制器108。在本實施例中,主機匯流排(或網(wǎng)絡(luò))112可為SCS1、FC-AL、USB、火線(Firewire)、SSA、SAS、SATA或高速匯流排(Infiniband)。在其他實施例中,主機匯流排(或網(wǎng)絡(luò))112可為乙太網(wǎng)絡(luò)、iSCS1、光纖通道、SSA、ESCON、ATM、FICON、NVMe 或高速匯流排(Infiniband)。
[0078]主機電腦104可與