專利名稱:利用高速緩存器管理raid存儲系統(tǒng)的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及具有直接存取存儲設(shè)備例如磁盤存儲器和高速緩存存儲器的存儲系統(tǒng)。具體地說,本發(fā)明是關(guān)于一種方法和一個系統(tǒng)的,該系統(tǒng)通過減少主計算機和信道對存儲系統(tǒng)的數(shù)據(jù)存取的等待時間而提供了增強的性能。
一個普通的計算機系統(tǒng)包括一個主計算機和一個直接存取存儲設(shè)備(DASD),例如一個或多個磁盤。在主計算機上運行的應(yīng)用程序訪問DASD上的尋址單元來讀寫數(shù)據(jù)。這種存取過程被稱為磁盤輸入/輸出(I/O)操作。由于主計算機的運行速度比DASD的運行速度要高得多,因此,I/O磁盤操作導(dǎo)致正在運行的應(yīng)用程序等待I/O操作被執(zhí)行完成。其結(jié)果是抑制了主計算機的吞吐量。為了避免這種情況的發(fā)生,利用獨立的高速緩存存儲器來存儲被應(yīng)用程序最頻繁使用的數(shù)據(jù)。
存儲系統(tǒng)管理器被用來管理I/O磁盤操作和對高速緩沖存儲器的存取。通常,數(shù)據(jù)被組織成數(shù)據(jù)對象,例如記錄。當(dāng)正在運行的應(yīng)用程序要求存取一條記錄時,存儲系統(tǒng)管理器首先在高速緩沖存儲器中查找這條記錄。如果在高速緩沖存儲器中查找到這條所要求的記錄(即“命中”),那么可快速地存取這條記錄而不必去執(zhí)行耗費時間的磁盤I/O操作。如果在高速緩沖存儲器中沒有查找到這條所要求的記錄(即“未命中”),那么存儲系統(tǒng)管理器需要執(zhí)行一個磁盤I/O操作以便從DASD中獲得這條所要求的記錄并將其寫到高速緩沖存儲器中。
通常,存儲系統(tǒng)管理器使用一種最近最少使用(LRU)的技術(shù)管理高速緩沖存儲器中的記錄存儲。LRU技術(shù)使用一個由多個控制塊組成的鏈或隊列。每一個控制塊標(biāo)識出(a)一條記錄的地址,(b)一個用來標(biāo)識該鏈中下一條相鄰記錄的地址的前向鏈指針,(c)一個用來標(biāo)識該鏈中前一條記錄的地址的后向指針。存儲系統(tǒng)管理器維護用來標(biāo)識LRU記錄的第一定位指針,例如鏈的首端。存儲系統(tǒng)管理器也維護用來標(biāo)識最近最常使用(MRU)的記錄的第二定位指針,例如鏈的尾端。
每當(dāng)高速緩沖器被命中時,被命中記錄的控制塊被從隊列中取出,然后作為MRU記錄被排列在LRU鏈的尾端。每當(dāng)高速緩沖器未被命中時,LRU控制塊被從該鏈的首端取出。最近被請求的記錄被從DASD中升級到高速緩沖存儲器中的一個指定的地址。利用被升級的記錄及指定的地址的標(biāo)識符來修改從隊列中被取出的控制塊,并將其作為MRU控制塊排列在LRU鏈的尾部。
在設(shè)計存儲系統(tǒng)的高速緩沖存儲器中,大部分的注意力都被集中于提高被請求的數(shù)據(jù)記錄在高速緩沖存儲器中會被找到的概率。例如,專利號為5,717,893的美國專利描述了一個被分成一個全局高速緩沖器和大量的本地高速緩沖器的高速緩沖存儲器,每個本地高速緩沖器被分配來存儲一種指定類型的數(shù)據(jù)記錄。各種類型的數(shù)據(jù)記錄被從本地高速緩沖器中或從磁盤存儲系統(tǒng)中降級到全局高速緩沖器中。根據(jù)LRU算法,一條LRU數(shù)據(jù)記錄被從全局高速緩沖器中降級到數(shù)據(jù)類型與這條被取出的LRU記錄的數(shù)據(jù)類型相匹配的本地高速緩沖器中。當(dāng)本地高速緩沖器存儲滿了時,LRU記錄被降級到存儲系統(tǒng)中。由于設(shè)計時采用了給較常使用的數(shù)據(jù)記錄類型分配較多的高速緩沖器的分配方案,因此提高了高速緩沖器的命中率。而且也具有允許邏輯地和動態(tài)地調(diào)整分配大小的特征,以便能夠針對較常使用的數(shù)據(jù)類型增加高速緩沖器的大小,同時針對不常使用的數(shù)據(jù)類型減小高速緩沖器的大小。
其它現(xiàn)有的技術(shù)方案通過消除高速緩沖器中的數(shù)據(jù)記錄的重復(fù)來增加高速緩沖器的命中率。這類典型的方案在專利號為5,802,572和5,627,990的美國專利中被描述。
DASD系統(tǒng)通過利用在出現(xiàn)故障的情況下確保數(shù)據(jù)恢復(fù)的幾何結(jié)構(gòu)中所配置的多個小存儲模塊而已得到改進。
這些已被改進的系統(tǒng)通常被稱為廉價(或獨立)冗余陣列磁盤機(RAID)。在這樣的一些幾何結(jié)構(gòu)中,一個數(shù)據(jù)對象被分成數(shù)據(jù)部分,而每一個數(shù)據(jù)部分被存儲在這些磁盤中的不同的一個磁盤上。在一個已知為RAID4級的幾何結(jié)構(gòu)中,這些磁盤中的一個磁盤專門被用來存儲這些數(shù)據(jù)部分的奇偶校驗部分。該奇偶校驗部分在出現(xiàn)故障時被用來重新生成數(shù)據(jù)部分。對于寫操作,這個幾何結(jié)構(gòu)要求兩個不同的寫訪問,一個寫訪問是對存儲數(shù)據(jù)部分的磁盤的寫訪問,另一個是對存儲奇偶校驗部分的磁盤的寫訪問。
在另一個已知為RAID5級的幾何結(jié)構(gòu)中,這些磁盤被分割以在陣列中的現(xiàn)用磁盤組上分配數(shù)據(jù)信息和奇偶校驗信息。每個被分割的部分通常被稱為一個數(shù)據(jù)條。一個數(shù)據(jù)條的奇偶校驗信息通常被存放在一個磁盤上,數(shù)據(jù)被存放在該數(shù)據(jù)條的其余的磁盤上。包含奇偶校驗信息的磁盤隨數(shù)據(jù)條的不同而各不相同。這就允許并行地管理多個數(shù)據(jù)條,從而使得大的數(shù)據(jù)塊能夠升級或降級。
上面所提到的增加高速緩沖器命中率的方案針對相當(dāng)小的數(shù)據(jù)對象,例如頁、表等。它們并不采用RAID系統(tǒng)的功能來處理大得多的數(shù)據(jù)對象,例如包含許多較小的頁對象的數(shù)據(jù)條。
因此,需要一個具有已被提高高速緩沖命中概率的高速緩沖存儲器。特別是需要一個采用RAID存儲設(shè)備的數(shù)據(jù)條存取功能的高速緩沖存儲器。
本發(fā)明使用一臺運行著應(yīng)用程序的主計算機,這些應(yīng)用程序從存儲系統(tǒng)中請求數(shù)據(jù)對象。這個存儲系統(tǒng)有一個存儲設(shè)備,例如磁盤存儲設(shè)備,和一個高速緩沖存儲器。被主計算機頻繁使用的數(shù)據(jù)對象被存儲在高速緩沖存儲器中。數(shù)據(jù)對象也可被存儲在邏輯上按數(shù)據(jù)的段和段的分組被排列的存儲設(shè)備上。高速緩沖存儲器邏輯上被分成第一高速緩沖器和第二高速緩沖器。
本發(fā)明的方法利用第一高速緩沖器存儲具有小的粒度的段,利用第二高速緩沖器存儲具有大的粒度的段的分組。當(dāng)主計算機請求存取數(shù)據(jù)時,本發(fā)明的方法判斷被請求的數(shù)據(jù)是否被存儲在第一高速緩沖器。如果被請求的數(shù)據(jù)沒有被存儲在第一高速緩沖器中,那么本發(fā)明的方法判斷被請求的數(shù)據(jù)是否被存儲在第二高速緩沖器中。如果被請求的數(shù)據(jù)沒有被存儲在第二高速緩沖器中,那么被存儲在存儲設(shè)備中的一個段的分組被訪問,在這些段的某一個段中包含了被請求的數(shù)據(jù)。接著,這個段的分組被存儲在第二高速緩沖器中,而包含了被請求數(shù)據(jù)的第一段被存儲在第一高速緩沖器中。然后,從第一高速緩沖器中存取被請求的數(shù)據(jù)。
如果本方法判斷出被請求的數(shù)據(jù)被存儲在第二高速緩沖器中而不是在第一高速緩沖器中,那么包含了被請求數(shù)據(jù)的段的一個副本被傳送給第一高速緩沖器。
本方法利用不同的LRU方法管理來自第一高速緩沖器中的最近最少使用的段的降級以及來自第二高速緩沖器中的段的分組的降級,為沒有被存儲在第一高速緩沖器和第二高速緩沖器中的被請求的數(shù)據(jù)分配存儲空間。
將高速緩沖存儲器分成第一高速緩沖器和第二高速緩沖器以及在第一高速緩沖器中存儲段和在第二高速緩沖器中存儲組是本發(fā)明的一個重要特征。該特征利用了一個請求組中的一個數(shù)據(jù)對象的應(yīng)用程序也會需要在同一個組中但不必是在同一個段中的其他數(shù)據(jù)對象的這種可能性。
本發(fā)明的高速緩沖存儲器系統(tǒng)利用了一個包含上面所描述的有關(guān)本發(fā)明的方法的過程的多粒度高速緩沖器管理程序。
按照本發(fā)明,存儲器媒質(zhì)控制高速緩沖存儲器執(zhí)行上面所描述的本發(fā)明的方法的過程。
本發(fā)明的其他更多的目的、優(yōu)點及特征將根據(jù)后附的圖并參照下列的詳細(xì)描述得到理解,其中相同的參考字符表示相同的結(jié)構(gòu)構(gòu)件,以及
圖1是按照本發(fā)明的包括一個多粒度高速緩沖存儲器的一個計算機系統(tǒng)的方框圖;圖2是按照本發(fā)明的一個多粒度的程序的讀過程的流程圖;以及圖3~圖5是按照本發(fā)明描繪一個多粒度的程序的寫過程的流程圖。
參照圖1,圖中給出了一個計算機系統(tǒng)10。計算機系統(tǒng)10包括一個主計算機12和一個存儲系統(tǒng)14。存儲系統(tǒng)14包括一個主適配器16、一個存儲設(shè)備18和一個按照本發(fā)明的多粒度高速緩沖存儲器30。多粒度高速緩沖存儲器30與主適配器16一同被耦合在主計算機12和存儲設(shè)備18之間的一條數(shù)據(jù)路徑上。
主計算機12通常包含了一個或多個運行應(yīng)用程序的處理器。這些處理器可以并行地運行一個單獨的應(yīng)用程序、或在不同時間運行不同的應(yīng)用程序、或并發(fā)地運行應(yīng)用程序、或按照由此任意組合的方式運行應(yīng)用程序。這些應(yīng)用程序使用構(gòu)成邏輯數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)對象。一個邏輯數(shù)據(jù)結(jié)構(gòu)通常可以是例如頁或表等的一條記錄。為了存儲的目的,多個數(shù)據(jù)對象邏輯上被安排在一個段中,多個段邏輯上被安排在一個組中。
在一個RAID-5陣列的首選實施例中,一個組對應(yīng)著一個數(shù)據(jù)條(即,有時在該領(lǐng)域也被稱為一個陣列柱面),一個段對應(yīng)著一個數(shù)據(jù)條的一個盤(即,有時在該領(lǐng)域也被稱為一個陣列道)。然而,本發(fā)明認(rèn)為對象的邏輯數(shù)據(jù)結(jié)構(gòu)、段和組可以用一種靈活的方式被定義。同樣,熟知本領(lǐng)域的那些人將會認(rèn)為對應(yīng)于這些邏輯數(shù)據(jù)結(jié)構(gòu)的其他的物理布局是可行的。
主適配器16適當(dāng)?shù)乜梢允且粋€在存儲系統(tǒng)14和主計算機12之間用來交換數(shù)據(jù)記錄的具有發(fā)送和接收功能的傳統(tǒng)設(shè)備。
存儲設(shè)備18適當(dāng)?shù)乜梢允且粋€具有多個磁盤19的磁盤存儲設(shè)備。最好地,存儲設(shè)備18使用RAID存儲方案中的磁盤19,以便多粒度高速緩沖存儲器30能夠利用RAID的功能并發(fā)地管理相當(dāng)大(一個或多個粒面)的數(shù)據(jù)塊。
根據(jù)本發(fā)明,高速緩沖存儲器30包括一個多粒度管理器36。按照本發(fā)明的方法,管理器36邏輯上將高速緩沖存儲器30分成第一高速緩沖器32和第二高速緩沖器34。管理器36對來自主計算機12的數(shù)據(jù)存取請求作出響應(yīng)以產(chǎn)生一個較低粒度的數(shù)據(jù)結(jié)構(gòu),例如被存儲在第一高速緩沖器32中的段。管理器36對來自主計算機12的數(shù)據(jù)存取請求作出響應(yīng)以產(chǎn)生一個較高粒度的數(shù)據(jù)結(jié)構(gòu),例如被存儲在第二高速緩沖器34中的組。第一高速緩沖器32和第二高速緩沖器34既可以被設(shè)計成高速緩沖存儲器30的物理區(qū)域,也可以被設(shè)計成高速緩沖存儲器30的邏輯區(qū)域。
邏輯上將高速緩沖存儲30分成第一高速緩沖器32和第二高速緩沖器34、以及在第一高速緩沖器32中存儲段和在第二高速緩沖器34中存儲組是本發(fā)明的一個重要特征。它利用了一個請求組中數(shù)據(jù)對象的應(yīng)用也需要在同一個組中但不必要在同一個段中的其它數(shù)據(jù)對象的可能性。預(yù)計高速緩沖器未命中率將會減少到原來的1/4。
管理器36包括一個段的LRU列表35和用傳統(tǒng)的LRU方法來管理第一高速緩沖器32的段的LRU列表35的第一高速緩沖器管理器37。管理器36也包括一個組的LRU列表38和一個用傳統(tǒng)的LRU方法來管理第二高速緩沖器32的組的LRU列表38的組管理器39。管理器36還包括一個讀過程50、一個段的寫過程60和一個組的寫過程80。
參照圖2,當(dāng)主計算機12針對讀操作請求一個數(shù)據(jù)存取操作時,讀過程50便開始了。步驟51判斷被請求的數(shù)據(jù)是否在段的LRU列表35中。如果被請求的數(shù)據(jù)是在段的LRU列表35中,那么步驟57將被請求的數(shù)據(jù)的一個副本從第一高速緩沖器32中傳送到主計算機12。
如果被請求的數(shù)據(jù)不在段的LRU列表35中(第一高速緩沖器未命中),那么步驟52判斷被請求的數(shù)據(jù)是否在組的LRU列表38中。如果被請求的數(shù)據(jù)是在組的LRU列表38中,那么步驟54將包含了被請求的數(shù)據(jù)的該段的一個副本從第二高速緩沖器34中升級到第一高速緩沖器32中。步驟54也與第一高速緩沖器管理器37一同來修改段的LRU列表35,以在該列表的MRU部分中包括該升級段的地址。然后,步驟57將被請求的數(shù)據(jù)的一個副本傳送到主計算機12中。
如果被請求的數(shù)據(jù)不在組的LRU列表38中(第二高速緩沖器未被命中),步驟55將包含了被請求的數(shù)據(jù)的一個組的副本從磁盤存儲設(shè)備18中升級到第二高速緩沖器34中。步驟55也與第二高速緩沖器管理器一同來修改組的LRU列表38,以在該列表的MRU部分中包括該升級組的地址。然后,步驟54按照上面所描述的將包含了被請求的數(shù)據(jù)的這個段從第二高速緩沖器34升級到第一高速緩沖器32中。然后,步驟57將被請求的記錄的一個副本傳送到主計算機12。
參照圖3和圖4,段的寫過程60包括圖3所示的一個同步過程61和圖4所示的一個異步過程70。首先,參照圖3,當(dāng)主計算機12針對寫操作請求一個數(shù)據(jù)存取操作時,同步過程61便開始了。步驟62判斷被請求的數(shù)據(jù)是否已經(jīng)存在于段的LRU列表35中。如果已經(jīng)存在,那么步驟64將這個被寫的數(shù)據(jù)傳送到段的LRU高速緩沖器32中,以便修改這個已經(jīng)存在的數(shù)據(jù)。步驟64也修改段的LRU列表35。步驟64也將這個段的一個段等待標(biāo)志設(shè)置為0。
如果步驟62判斷出這個被請求的數(shù)據(jù)不存在于段的LRU列表35中,那么步驟63在第一高速緩沖器32中分配一個地址。然后,除去被寫的這個數(shù)據(jù)不對以前存在的版本進行修改外,步驟64按照上面所描述的步驟被執(zhí)行。
參照圖4,異步過程70通常是處于睡眠狀態(tài),當(dāng)在第一高速緩沖器32中有一個被修改的段需要被降級到第二高速緩沖器34和/或磁盤存儲設(shè)備18中時,由步驟71喚醒它。當(dāng)步驟71判斷出有降級任務(wù)需要被執(zhí)行時,步驟72在段的LRU列表35中查找下一個被修改的段。步驟73判斷這個段是否在組的LRU列表38中。如果不在,步驟74判斷段的等待標(biāo)志是否被設(shè)置為0。如果已被設(shè)置為0,那么步驟77將段的等待標(biāo)志設(shè)置為1。此時,如果異步過程70已經(jīng)完成了對它當(dāng)前的工作的掃描任務(wù),那么異步過程70要么進到段的LRU列表35中的下一個被修改的段,要么進入短時間的睡眠狀態(tài)。這樣提供了一個在存儲到磁盤存儲設(shè)備18中之前允許對段進行其它的修改的等待特征。
然后,步驟71再次喚醒異步過程70并重復(fù)執(zhí)行步驟72~74?,F(xiàn)在步驟74將判斷出段的等待標(biāo)志沒有被設(shè)置為0。然后,步驟76將把被修改的段降級到磁盤存儲設(shè)備18中。此時,如果異步過程70已經(jīng)完成了它當(dāng)前的工作的掃描任務(wù),那么異步過程70要么進到段的LRU列表35中的下一個被修改的段,要么進入短時間的睡眠狀態(tài)。
如果步驟73判斷出被修改的段是在組的LRU列表38中,那么步驟75將被修改的段傳送到第二高速緩沖器34中;以便修改已存在的組。步驟75也修改組的LRU列表38。步驟75也將這個組的組等待標(biāo)志設(shè)置為0。然后,異步過程70進入其睡眠狀態(tài)。
參照圖5,組的寫過程80也是一個異步過程,當(dāng)有組的降級工作要被執(zhí)行時,在步驟81喚醒它。當(dāng)組的寫過程80被步驟81喚醒時,步驟82在組的LRU列表38中查找下一個被修改的組。步驟83判斷該組的等待標(biāo)志是否被設(shè)置為0。如果為0,那么,步驟84將該組的等待標(biāo)志設(shè)置為1。然后,組的寫過程80進入短時間的睡眠狀態(tài)。這樣提供了一個在存儲到磁盤存儲設(shè)備18中之前允許對組進行其它的修改的等待特征。
然后,步驟81再次喚醒組的寫過程80,并重復(fù)執(zhí)行步驟82和83?,F(xiàn)在步驟83將判斷出組的等待標(biāo)志沒有被設(shè)置為0。此時,步驟85將把被修改的組降級到磁盤存儲設(shè)備18中。然后,組的寫過程80進入睡眠狀態(tài)。
本發(fā)明已被參照著其首選格式進行了具體描述,很明顯,在不背離后附的權(quán)利要求書中所定義的本發(fā)明的精神及范圍的情況下,對它進行各種改變和修改是可能的。
權(quán)利要求
1.一種用來管理高速緩沖存儲器的方法,該高速緩沖存儲器邏輯上被分成第一高速緩沖器和第二高速緩沖器,所述高速緩沖存儲器被放置在主計算機和存儲設(shè)備之間的數(shù)據(jù)路徑上,所述方法包括(a)響應(yīng)于來自所述主計算機的存取數(shù)據(jù)的請求,判斷所述被請求的數(shù)據(jù)是否被存儲在所述第一高速緩沖器中,如果所述被請求的數(shù)據(jù)沒有被存儲在所述第一高速緩沖器中,那么判斷所述被請求的數(shù)據(jù)是否被存儲在所述第二高速緩沖器中;(b)如果所述被請求的數(shù)據(jù)沒有被存儲在所述第二高速緩沖器中,那么存取被存儲在所述存儲設(shè)備中的段的一個組,在所述段的這個組中的第一段包含所述被請求的數(shù)據(jù);(c)在所述第二高速緩沖器中存儲所述段的這個組,在所述第一高速緩沖器中存儲包含了所述被請求的數(shù)據(jù)的所述第一段;以及(d)如果步驟(a)判斷出所述被請求的數(shù)據(jù)被存儲在所述第一高速緩沖器中,或者當(dāng)步驟(c)已經(jīng)在所述第一高速緩沖器中存儲了所述第一段時,那么從所述第一高速緩沖器中存取所述被請求的數(shù)據(jù)。
2.權(quán)利要求1的方法,還包括(e)如果步驟(a)判斷出被請求的數(shù)據(jù)被存儲在所述第二高速緩沖器中而不是被存儲在所述第一高速緩沖器中,那么在所述第二高速緩沖器中存取包含了所述被請求的數(shù)據(jù)的第二段,并在所述第一高速緩沖器中存儲所述第二段;以及(f)當(dāng)步驟(e)已經(jīng)在所述第一高速緩沖器中存儲了所述第二段時,從所述第一高速緩沖器中存取所述被請求的數(shù)據(jù)。
3.權(quán)利要求2的方法,還包括(g)如果步驟(a)判斷出被請求的數(shù)據(jù)沒有被存儲在所述第一高速緩沖器中,那么按照一個最近最少使用的方法,把最近最少使用的段從所述第一高速緩沖器降級;以及(h)如果步驟(a)判斷出被請求的數(shù)據(jù)沒有被存儲在所述第二高速緩沖器中,那么按照一個最近最少使用的方法,把最近最少使用的所述段的這個組從所述第二高速緩沖器降級。
4.權(quán)利要求3的方法,還包括(i)維護被步驟(g)所使用的所述第一高速緩沖器的第一最近最少使用的列表;以及(j)維護被步驟(h)所使用的所述第二高速緩沖器的第二最近最少使用的列表。
5.權(quán)利要求2的方法,還包括(g)如果所述存取請求是一個用來寫所述被請求的數(shù)據(jù)的被修改的版本的請求,那么將所述被修改的版本傳送到所述第一高速緩沖器中;以及(h)通過所述第二高速緩沖器直接地或間接地從所述第一高速緩沖器中將所述被修改的版本的一個副本傳送到所述存儲設(shè)備中。
6.權(quán)利要求5的方法,其中如果所述被請求的數(shù)據(jù)不在所述第二高速緩沖器中,那么步驟(h)采用直接地方式傳送,而如果所述被請求的數(shù)據(jù)是在所述第二高速緩沖器中,那么步驟(h)采用間接地方式傳送。
7.權(quán)利要求6的方法,其中所述存儲設(shè)備是一個RAID存儲設(shè)備,以及其中所述每一個段是一個邏輯陣列道,和所述每一個組是一個邏輯陣列柱面。
8.一個位于主計算機和存儲設(shè)備之間的數(shù)據(jù)路徑上的多粒度高速緩沖存儲器系統(tǒng),所述多粒度高速緩沖存儲器系統(tǒng)包括一個邏輯上被分為第一高速緩沖器和第二高速緩沖器的高速緩沖存儲器;以及一個用來處理來自所述主計算機的用于數(shù)據(jù)存取的請求的多粒度管理器,所述多粒度管理器執(zhí)行一個過程,該過程包括(a)響應(yīng)于來自所述主計算機的存取數(shù)據(jù)的請求,判斷所述被請求的數(shù)據(jù)是否被存儲在所述第一高速緩沖器中,如果所述被請求的數(shù)據(jù)沒有被存儲在所述第一高速緩沖器中,那么判斷所述被請求的數(shù)據(jù)是否被存儲在所述第二高速緩沖器中;(b)如果所述被請求的數(shù)據(jù)沒有被存儲在所述第二高速緩沖器中,那么存取被存儲在所述存儲設(shè)備中的段的一個組,在所述段的這個組中的第一段包含所述被請求的數(shù)據(jù);(c)在所述第二高速緩沖器中存儲所述段的這個組,在所述第一高速緩沖器中存儲包含了所述被請求的數(shù)據(jù)的所述第一段;以及(d)如果步驟(a)判斷出所述被請求的數(shù)據(jù)被存儲在所述第一高速緩沖器中,或者當(dāng)步驟(c)已經(jīng)在所述第一高速緩沖器中存儲了所述第一段時,那么從所述第一高速緩沖器中存取所述被請求的數(shù)據(jù)。
9.權(quán)利要求8的多粒度存儲器系統(tǒng),其中所述過程還包括(e)如果步驟(a)判斷出被請求的數(shù)據(jù)被存儲在所述第二高速緩沖器中而不是被存儲在所述第一高速緩沖器中,那么在所述第二高速緩沖器中存取包含了所述被請求的數(shù)據(jù)的第二段,并在所述第一高速緩沖器中存儲所述第二段;以及(f)當(dāng)步驟(e)已經(jīng)在所述第一高速緩沖器中存儲了所述第二段時,從所述第一高速緩沖器中存取所述被請求的數(shù)據(jù)。
10.權(quán)利要求9的多粒度存儲器系統(tǒng),其中所述過程還包括(g)如果步驟(a)判斷出被請求的數(shù)據(jù)沒有被存儲在所述第一高速緩沖器中,那么按照一個最近最少使用的方法,把最近最少使用的段從所述第一高速緩沖器降級;以及(h)如果步驟(a)判斷出被請求的數(shù)據(jù)沒有被存儲在所述第二高速緩沖器中,那么按照一個最近最少使用的方法,把最近最少使用的所述段的這個組從所述第二高速緩沖器降級。
11.權(quán)利要求10的多粒度存儲器系統(tǒng),其中所述過程還包括(i)維護被步驟(g)所使用的所述第一高速緩沖器的第一最近最少使用的列表;以及(j)維護被步驟(h)所使用的所述第二高速緩沖器的第二最近最少使用的列表。
12.權(quán)利要求9的多粒度存儲器系統(tǒng),其中所述過程還包括(g)如果所述存取請求是一個用來寫所述被請求的數(shù)據(jù)的被修改的版本的請求,那么將所述被修改的版本傳送到所述第一高速緩沖器中;以及(h)通過所述第二高速緩沖器直接地或間接地從所述第一高速緩沖器中將所述被修改的版本的一個副本傳送到所述存儲設(shè)備中。
13.權(quán)利要求12的多粒度存儲器系統(tǒng),其中如果所述被請求的數(shù)據(jù)不在所述第二高速緩沖器中,那么步驟(h)采用直接地方式傳送,而如果所述被請求的數(shù)據(jù)是在所述第二高速緩沖器中,那么步驟(h)采用間接地方式傳送。
14.權(quán)利要求13的多粒度存儲器系統(tǒng),其中所述存儲設(shè)備是一個RAID存儲設(shè)備,以及其中所述每一個段是一個邏輯陣列道,和所述每一個組是一個邏輯陣列柱面。
15.一個用來管理位于主計算機和存儲設(shè)備之間的數(shù)據(jù)路徑上的多粒度高速緩沖存儲器系統(tǒng)的存儲器媒質(zhì),所述高速緩沖存儲器系統(tǒng)包括一個高速緩沖器管理器和一個邏輯上被分為第一高速緩沖器和第二高速緩沖器的高速緩沖存儲器,所述存儲器媒質(zhì)包括利用一個過程來管理所述多粒度高速緩沖存儲器系統(tǒng)的方法,該過程包括(a)響應(yīng)于來自所述主計算機的存取數(shù)據(jù)的請求,判斷所述被請求的數(shù)據(jù)是否被存儲在所述第一高速緩沖器中,如果所述被請求的數(shù)據(jù)沒有被存儲在所述第一高速緩沖器中,那么判斷所述被請求的數(shù)據(jù)是否被存儲在所述第二高速緩沖器中;(b)如果所述被請求的數(shù)據(jù)沒有被存儲在所述第二高速緩沖器中,那么存取被存儲在所述存儲設(shè)備中的段的一個組,在所述段的這個組中的第一段包含所述被請求的數(shù)據(jù);(c)在所述第二高速緩沖器中存儲所述段的這個組,在所述第一高速緩沖器中存儲包含了所述被請求的數(shù)據(jù)的所述第一段;以及(d)如果步驟(a)判斷出所述被請求的數(shù)據(jù)被存儲在所述第一高速緩沖器中,或者當(dāng)步驟(c)已經(jīng)在所述第一高速緩沖器中存儲了所述第一段時,那么從所述第一高速緩沖器中存取所述被請求的數(shù)據(jù)。
16.權(quán)利要求15的存儲器媒質(zhì),其中所述過程還包括(e)如果步驟(a)判斷出被請求的數(shù)據(jù)被存儲在所述第二高速緩沖器中而不是被存儲在所述第一高速緩沖器中,那么在所述第二高速緩沖器中存取包含了所述被請求的數(shù)據(jù)的第二段,并在所述第一高速緩沖器中存儲所述第二段;以及(f)當(dāng)步驟(e)已經(jīng)在所述第一高速緩沖器中存儲了所述第二段時,從所述第一高速緩沖器中存取所述被請求的數(shù)據(jù)。
17.權(quán)利要求16的存儲器媒質(zhì),其中所述過程還包括(g)如果步驟(a)判斷出被請求的數(shù)據(jù)沒有被存儲在所述第一高速緩沖器中,那么按照一個最近最少使用的方法,把最近最少使用的段從所述第一高速緩沖器降級;以及(h)如果步驟(a)判斷出被請求的數(shù)據(jù)沒有被存儲在所述第二高速緩沖器中,那么按照一個最近最少使用的方法,把最近最少使用的所述段的這個組從所述第二高速緩沖器降級。
18.權(quán)利要求17的存儲器媒質(zhì),其中所述過程還包括(i)維護被步驟(g)所使用的所述第一高速緩沖器的第一最近最少使用的列表;以及(j)維護被步驟(h)所使用的所述第二高速緩沖器的第二最近最少使用的列表。
19.權(quán)利要求16的存儲器媒質(zhì),其中所述過程還包括(g)如果所述存取請求是一個用來寫所述被請求的數(shù)據(jù)的被修改的版本的請求,那么將所述被修改的版本傳送到所述第一高速緩沖器中;以及(h)通過所述第二高速緩沖器直接地或間接地從所述第一高速緩沖器中將所述被修改的版本的一個副本傳送到所述存儲設(shè)備中。
20.權(quán)利要求19的存儲器媒質(zhì),其中如果所述被請求的數(shù)據(jù)不在所述第二高速緩沖器中,那么步驟(h)采用直接地方式傳送,而如果所述被請求的數(shù)據(jù)是在所述第二高速緩沖器中,那么步驟(h)采用間接地方式傳送。
21.權(quán)利要求20的存儲器媒質(zhì),其中所述存儲設(shè)備是一個RAID存儲設(shè)備,以及其中所述每一個段是一個邏輯陣列磁道,和所述每一個組是一個邏輯陣列柱面。
全文摘要
一臺計算機系統(tǒng)包括一臺運行著應(yīng)用程序的主計算機,這些應(yīng)用程序從存儲系統(tǒng)中請求數(shù)據(jù)對象。這個存儲系統(tǒng)有一個存儲設(shè)備,例如磁盤存儲設(shè)備,和一個高速緩沖存儲器。被主計算機頻繁使用的數(shù)據(jù)對象被存儲在高速緩沖存儲器中。數(shù)據(jù)對象也被存儲在邏輯上按照數(shù)據(jù)對象的段和段的組排列的存儲設(shè)備上。高速緩沖存儲器邏輯上被分成一個段高速緩沖器和一個組高速緩沖器。小粒度特征的數(shù)據(jù),即段,被存儲在這個段高速緩沖器中。
文檔編號G06F12/08GK1290890SQ0012921
公開日2001年4月11日 申請日期2000年9月28日 優(yōu)先權(quán)日1999年10月1日
發(fā)明者布魯斯·邁克紐特 申請人:國際商業(yè)機器公司