專利名稱:存儲系統和存儲控制器以及存儲系統中的緩存實現方法
技術領域:
本發明涉及緩存技術,特別涉及一種存儲系統、 一種存儲系統中的存儲
控制器(Storage Controller, SC )、以及一種存儲系統中的緩存實現方法。
背景技術:
用于向網絡主機提供服務的存儲系統通常由SC和磁盤拒這兩部分組 成,其中,》茲盤拒中設置了由多個成員》茲盤組成的獨立》茲盤冗余陣列 (Redundant Array of Independent Disks, RAID )。
圖1為現存儲系統的結構示意圖。如圖l所示,SC通過因特網小型計 算機接口 (Internet Small Computer System Interface, iSCSI)或者光纖通道 (Fibre Channel, FC)接口連接磁盤拒,存儲系統中的SC包括主板芯片 組(Chip Set),以及與主板芯片組相連的中央處理器(CPU) 、 RAID控制 器、系統盤、用作緩存的內存。
其中,RAID控制器可以是一獨立的硬件,稱為硬RAID控制器,也可 以是運行于CPU中的一軟件程序,稱為軟RAID控制器;系統盤可看作本 地磁盤,其中承載了 SC提供服務所需的軟件和數據,例如操作系統;本文 所述的內存是指物理內存,例如,雙倍速率同步動態隨機存儲器(Double Data RateSDRAM, DDR)等內存條,用以提升對網絡主才幾的響應速度。
SC還具有與主板芯片組相連的業務接口 ,例如千兆以太網(GE )接口 、 光纖通道(Fibre Channel, FC)接口,業務接口用于外部客戶端訪問存儲系 統。其中,客戶端可以是通過網絡與存儲系統相連的主機,可簡稱為網絡主 機。
SC中的CPU根據業務接口接收到客戶端的寫請求或讀請求,調用RAID控制器并向RAID控制器發出寫請求以將某些數據寫入至RAID中,或發出 讀請求以獲耳又RAID中存儲的數據。
對于CPU發出的寫請求,RAID控制器先將待寫入RAID的寫數據寫入 到內存中,實現對寫數據的緩存,然后在預設的刷新時刻到來時,將內存中 的所有寫數據批量刷新至RAID中。
對于CPU發出的讀請求,RAID控制器先在內存中查找,如果找到對應 的數據,即命中,則能夠非常快速地直接讀取,否則,從RAID中查找并讀 取對應的數據。
在如圖l所示的存儲系統中,緩存算法合理、訪問規則合理,那么緩存 大小就成為了決定存儲系統性能的主要因素。
然而現有存儲系統SC中的內存的槽位數量是有限的、且每根內存條的 容量也是有限的,因而使得存儲系統中由內存構成的緩存容量有限,從而限 制了存儲系統的性能。
假設CPU和主板芯片組所能夠支持的內存槽位數最多為4個,則存儲 系統所能夠支持的最大緩存容量-內存槽位數x每根內存條的最大容量。目
前每根DDRII內存的最大容量是2GB,則圖1所示的存儲系統支持的最大 緩存容量就是8GB,無法再進一步地擴容。
為了再進一步地提高緩存容量以提高存儲系統性能,現有技術中還可以 將RAID中的部分成員磁盤作為緩存。參見圖1,磁盤柜中的每一個圓形圖 案表示RAID中的一個成員磁盤,其中的深色實心圓形圖案表示作為緩存的 成員磁盤。該方案雖然能夠實現緩存容量的進一步擴容,但卻存在以下問題
1 、緩存的數據傳輸通路過長。對于寫請求,所有的寫數據都必須由R AID 控制器通過iSCSI接口或者FC接口寫入在RAID中用作緩存的成員磁盤中, 然后在刷新時刻到來時,已緩存的寫數據通過iSCSI接口或者FC接口被讀 回到RAID控制器后,再次通過iSCSI接口或者FC接口寫入在RAID中的 對應成員磁盤中,使得FC/iSCSI數據通路的開銷很大。同理,預先將RAID 中的數據讀取至用作緩存的成員磁盤中以便后續根據讀請求讀取數據時,也存在同樣的問題。在這樣的開銷下,即使用作緩存的成員磁盤為串行SCSI (SAS)磁盤、或固態磁盤(Solid State Disks, SSD)等高速^茲盤,其高速 的優勢也會被抵消掉。
2、 緩存和RAID竟爭資源緩存和RAID共用相同的RAID控制器和 FC/iSCSI數據通路,會出現竟爭資源的情況,從而降低存儲系統的性能。
3、 數據安全性存在隱患。如果系統中有多個磁盤拒,用作緩存的成員 磁盤所處的磁盤柜掉電時,緩存中的數據會丟失,且無法對其他磁盤拒中 RAID的讀寫數據實現緩存,從而降低存儲系統的性能。
可見,緩存擴容的目的是為了提高存儲系統的性能,而現有將RAID中 的成員磁盤用作緩存以實現緩存擴容的方案,會導致各種降低存儲系統性能 的問題出現,因而該方案并未通過緩存的擴容提高存儲系統的性能。
發明內容
有鑒于此,本發明提供了一種存儲系統、 一種存儲系統中的SC、以及 一種存儲系統中的緩存實現方法,能夠通過靈活的緩存擴容提高存儲系統的性能。
本發明提供的一種存儲系統,用于向網絡主機提供服務,該系統包括 存儲控制器SC、包括至少一個低速磁盤的磁盤陣列,
其特征在于,所述SC中包括用作虛擬緩存的高速磁盤,其讀寫速度大 于所述低速磁盤,用于緩存所述網絡主機讀/寫所述磁盤陣列的數據。
所述SC中還包括讀寫速度小于所述高速磁盤的本地磁盤,用于存放所 述存儲系統用以提供服務的軟件和數據。
所述SC中還包括用作緩存的物理內存,其讀寫速度大于所述高速磁盤。
所述SC中還包括虛擬緩存啟動裝置,用于控制所述虛擬緩存的開啟 和關閉。
本發明提供的一種存儲系統中的SC,應用于網絡主機與包括至少一個 低速磁盤的磁盤陣列之間,并向網絡主機提供服務,其特征在于,
6所述SC包括用作虛擬緩存的高速磁盤,其讀寫速度大于所述低速磁 盤,用于緩存所述網絡主機讀/寫所述磁盤陣列的數據。
所述SC中還包括讀寫速度小于所述高速磁盤的本地磁盤,用于存放所 述SC用以提供服務的軟件和數據。
所述SC中還包括用作緩存的物理內存,其讀寫速度大于所述高速磁盤。
所述SC中還包括虛擬緩存啟動裝置,用于控制所述虛擬緩存的開啟 和關閉。
所述虛擬緩存啟動裝置在所述網絡主機通過隨機讀取模式訪問所述磁 盤陣列時,關閉所述虛擬緩存;在所述網絡主機通過順序讀取模式訪問所述 磁盤陣列時,開啟所述虛擬內存。
所述用作虛擬緩存的高速磁盤多于一個,所述多于一個的高速磁盤構成 第0級別的獨立》茲盤冗余陣列RAIDO。
本發明提供的 一種存儲系統中的緩存實現方法,所述存儲系統用于向網 絡主機提供服務,該系統包括存儲控制器SC、包括至少一個低速磁盤的 ;茲盤陣列,該方法包括
在所述存儲系統的存儲控制器SC設置讀寫速度大于所述低速磁盤、且 用作虛擬緩存的高速磁盤,
將網絡主機讀/寫所述磁盤陣列的數據緩存在所述高速磁盤中。
如果所述網絡主機通過隨機讀取模式訪問所述磁盤陣列,則關閉所述虛 擬緩存;
如果所述網絡主機通過順序讀取模式訪問所述^f茲盤陣列,則開啟所述虛 擬內存。
本發明還公開了一種網絡存儲控制器,包括 前端接口 ,通過網絡與網絡主機相耦合; 后端接口,與^f茲盤陣列相耦合; 緩存,用以提升對網絡主機請求的響應速度; 本地磁盤,用以存儲網絡控制器運行必須的軟件;所述網絡存儲控制器還包括作為虛擬緩存的磁盤,用以提升對網絡主機 請求的響應速度,其中該^磁盤的讀寫通道與本地^磁盤的讀寫通道相互獨立。
所述作為虛擬緩存的磁盤,其接口類型不同于本地磁盤接口的接口類 型,其讀寫速度大于本地磁盤讀寫速度。
所述作為虛擬緩存的磁盤,其讀寫速度大于磁盤陣列的讀寫速度。
由上述技術方案可見,本發明在SC內部設置高速磁盤,將設置的高速 磁盤用作虛擬緩存,使得緩存容量可通過增加高速磁盤容量、以及所配置的 虛擬緩存的大小而無限擴容。這樣,可以不受系統硬件的限制靈活地擴充緩
存的容量,同時由于緩存的數據不經過FC/iSCSI數據通路,而不會出現在 讀寫緩存過程中反復進行數據讀寫而導致FC/iSCSI數據通路開銷很大的問 題,也不會出現緩存和RAID竟爭資源的問題,數據安全性存在的隱患也能 夠被消除。也就是說,本發明能夠在實現緩存擴容的同時,避免現有方案中 可能導致的各種降低存儲系統性能的問題,因而能夠通過緩存擴容來提高存 儲系統性能。
而且,讀寫緩存完全在SC內部實現,SC中的各元器件之間也不會存 在相互干擾;SC還可以根據客戶端的訪問模式選擇開啟或關閉虛擬緩存, 使得虛擬緩存的使用狀態能夠自適應于不同的訪問模式;用作虛擬緩存的高 速》茲盤還可以多于一個,并構成第0級別的RAID (RAIDO),從而能夠進 一步提高讀寫緩存的速度,以進一步提高存儲系統的性能。
圖1為現有存儲系統的結構示意圖。
圖2為本發明中存儲系統的結構示意圖。
圖3為本發明存儲系統中的緩存實現方法的示例性流程圖。
具體實施例方式
為使本發明的目的、技術方案及優點更加清楚明白,以下參照附圖并舉實施例,對本發明進一步詳細說明。
本發明在SC內部設置高速磁盤,將設置的高速磁盤用作虛擬緩存,使 得緩存容量可通過增加高速磁盤容量、以及所配置的虛擬緩存的大小而無限 擴容。
這樣,既不會出現現有將RAID中的成員磁盤用作緩存以實現緩存擴容 的方案中,在讀寫緩存過程中數據反復經過而導致FC/iSCSI數據通路開銷 很大的問題,也不會出現緩存和RAID竟爭資源的問題,數據安全性存在的 隱患也能夠被消除。也就是說,本發明能夠在實現緩存擴容的同時,避免現 有方案中可能導致的各種降低存儲系統性能的問題,因而能夠通過緩存擴容 來提高存儲系統的帶寬和IOPS (I/O Per Second),即提高存儲系統性能。
需要說明的是,本發明所述高速磁盤為非易失性的存儲介質,所述的"高 速",并非基于絕對標準而確定的。所述"高速"實際上是指相對于看作本 地磁盤的系統盤、以及RAID中各成員磁盤來說,讀寫速度更快,讀寫速度 的高低通常可以依據磁盤的轉速以及磁盤的接口速率來分辨。也就是說,相 對于所述的"高速",看作本地;茲盤的系統盤、以及RAID中各成員-茲盤則 可稱為低速磁盤。
而由于物理介質的原因,高速磁盤的讀寫速度通常會低于物理內存。但 為了保證讀寫緩存的效率,較佳地應當選擇讀寫速度最接近物理內存的高速 磁盤用作虛擬緩存。
當然,本發明并不僅僅是簡單地在SC中設置用作虛擬緩存的高速磁盤, 隨著SC中增加了高速磁盤,SC中各元器件間的交互方式及內部處理方式也 隨之改進,以下進行詳細說明。
圖2為本發明中存儲系統的結構示意圖。如圖2所示,用于為網絡主機 提供服務的存儲系統中的SC包括主板芯片組,以及與主板芯片組相連的 CPU、 RAID控制器、本地磁盤即系統盤、用作緩存的內存。設置于存儲系 統磁盤拒中的RAID由低速磁盤構成。
相比于圖l所示的現有存儲系統,本發明存儲系統中的SC還包括用作
9虛擬緩存的高速》茲盤,該高速》茲盤可以為SAS》茲盤、或SSD等任一種高速 》茲盤,其讀寫速度高于本地》茲盤、以及RAID中的成員,茲盤。
也就是說,本發明如圖2所示的存儲系統,相比于如圖1所示的現有存 儲系統的區別在于SC中包括用作虛擬緩存的高速磁盤,其讀寫速度大于 低速磁盤,用于緩存網絡主機讀/寫RAID的數據。
具體來說,SC中的CPU根據業務接口接收到客戶端、即網絡主機的寫 請求或讀請求,調用RAID控制器并向RAID控制器發出寫請求以將某些數 據寫入至RAID中,或發出讀請求以獲取RAID中存儲的數據。
對于CPU發出的寫請求,RAID控制器在內存具有空閑存儲空間時,將 待寫入RAID的寫數據寫入到內存中;在內存空間不足時,將待寫入RAID 的寫數據寫入到高速磁盤中;在預設的刷新時刻到來時,將內存和高速磁盤 中的寫數據批量刷新至RAID中。
上述優先將寫數據緩存至內存的原因是由于物理介質的不同,內存的 讀寫速度通常要快于高速磁盤,因此,將寫數據優先緩存至內存能夠最大限 度地保證寫緩存效率,從而最大限度地保證存儲系統的性能。當然,對于本 領域技術人員均可獲知,隨著硬件技術的發展,用作高速磁盤的物理介質有 可能使得高速磁盤的讀寫速度高于內存,因此,如果高速磁盤的讀寫速度高 于內存,則優先將寫數據緩存至高速磁盤。
當然,即便高速磁盤的讀寫速度不如內存,但由于其讀寫速度高于本地 磁盤以及RAID中的成員磁盤,因而也可以在系統中僅設置用作虛擬緩存的 高速磁盤,而不需要再設置內存。
對于CPU發出的讀請求,RAID控制器先在內存和/或高速磁盤中查找, 如果找到對應的數據,即命中,則能夠非常快速地直接讀取,否則,從RAID 中查找并讀取對應的數據。
如圖2所示的存儲系統中,本地磁盤、即系統盤可通過集成驅動電路設 備(Integrated Divers Electronics, IDE )接口與主板芯片組相連;高速磁盤 可以基于高速率的FC接口、或者串行ATA (Serial Advanced TechnologyAttachment, SATA )接口與主板芯片組相連;RAID控制器、業務接口等則 基于外設部件互連標準(PCI)總線與主板芯片組相連。由于各個元器件占 用不同的接口總線,因而可以保證用作虛擬緩存的高速磁盤有足夠的處理能
由此可見,本發明中用作虛擬緩存的高速^茲盤為獨立的物理》茲盤,且該 高速》茲盤與本地it盤等其他元器件的讀寫通道相互獨立,而不是將本地^磁盤 的一部分設置為虛擬緩存,除了考慮到本地磁盤的讀寫速度較低之外,還考 慮到將本地磁盤的一部分設置為虛擬緩存會導致CPU和RAID控制器通過 本地》茲盤的唯一接口、即通過唯一的讀寫通道同時對本地f茲盤進行訪問,從 而造成訪問沖突以影響系統性能。
實際應用中,由于CPU發送給RAID控制器的讀寫請求通常來自作為 客戶端的網絡主機,而網絡主機可能通過不同訪問模式來訪問存儲系統,因 而本發明還可以針對不同訪問模式進行對應的處理,以進一步提高存儲系統 的性能。
如果CPU發出的讀請求所表示的訪問模式為隨機讀取,則考慮到隨機 讀取的命中率較低,因而RAID控制器僅在內存中查找對應的數據,而關閉 高速磁盤的虛擬緩存,即屏蔽與高速磁盤之間的讀寫通道。
如果CPU發出的讀請求所表示的訪問模式為順序讀取,則RAID控制 器開啟高速磁盤的虛擬緩存,即選通與高速磁盤之間的讀寫通道,并在內存 和高速磁盤中查找對應的數據。在讀取時,還可以根據預設的預讀取策略進 行數據讀取,例如將與此次需讀取的數據相鄰的數據也讀取到緩存中,從而
提高后續的讀緩存命中率,即提高存儲系統響應讀緩存的速度,進一步提高 存儲系統性能。
也就是說,RAID即可看作是虛擬緩存的啟動裝置,用于控制虛擬緩存
的開啟和關閉。當然,也可以設置另一獨立的物理控制器、或在CPU中增
加 一軟件程序來實現對虛擬緩存的開啟和關閉的控制。
為了提高讀寫緩存的速度,以進一步提高存儲系統的性能,如圖2所示的存儲系統中,用作虛擬緩存的高速磁盤還可以多于一個,并構成RAIDO。 這樣,在寫入數據時,可以將寫數據劃分為與高速磁盤數量相等的數據塊后 分別寫入至不同的高速磁盤,從而使得寫操作由串行改為并行,提高寫緩存 的速度;同理,讀緩存也會由串行改為并行,從而提高讀緩存的速度。
當然為了保證虛擬緩存的可靠性,也可以由多個高速磁盤構成具有冗余 度的RAID,例如第1級別的RAID (RAID1 )、第5級別的RAID5、第6 級別的RAID6等。
實際應用中,磁盤拒中也可以設置不具有冗余度的普通磁盤陣列,即 RAID并非必要條件,因此,本發明存儲系統中的RA1D也可以替換為不具 有冗余度的、包括至少一個低速磁盤的普通磁盤陣列,此時,存儲系統的 SC中的RAID控制器即可替換為相應的實現對磁盤陣列進行讀寫的控制器。
以上是對本發明存儲系統以及存儲系統中SC的詳細說明。下面,再對 本發明存儲系統中的緩存實現方法進行說明。
本發明存儲系統中的緩存實現方法包括在存儲系統的SC設置讀寫速 度大于構成RAID的低速磁盤、且用作虛擬緩存的高速磁盤,并將網絡主機 讀/寫RAID的數據緩存在高速磁盤中。
圖3為本發明存儲系統中的緩存實現方法的示例性流程圖。如圖3所示, 本發明存儲系統中的緩存實現方法包括
步驟301,在存儲系統的SC中設置與主板芯片組相連、且用作虛擬緩 存的高速磁盤,使得SC中包括用作緩存的內存、以及用作虛擬緩存的高速 磁盤。
步驟302,判斷接收到寫請求還是讀請求,如果是寫請求,則執行步驟 303,如果是讀請求則執行步驟304。
步驟303,根據接收到的寫請求,在內存具有空閑存儲空間時,將寫數 據寫入到內存中,在內存空間不足時,將寫數據寫入到所述高速磁盤中,并 結束本流程或返回步驟302繼續對下一次訪問的處理。
在本步驟之后,如果到達預設刷新時刻,則將內存和高速磁盤中的寫數
12據刷新至存儲系統中的RAID。
步驟304,根據接收到的讀請求,在內存和/或所述高速磁盤中查找,如 果找到對應的數據則直接讀取,否則,從存儲系統中的RAID中查找并讀取 對應的數據,并結束本流程或返回步驟302繼續對下一次訪問的處理。
本步驟中,如果讀請求所表示的訪問模式為隨機讀取,則僅在所述內存 中查找對應的數據;如果讀請求所表示的訪問模式為順序讀取,則在所述內 存和所述高速磁盤中查找對應的數據。
至此,本流程結束。
由上述流程可見,該方法在讀寫緩存時,既不會出現FC/iSCSI數據通 路開銷很大的問題,也不會出現緩存和RAID竟爭資源的問題,數據安全性 存在的隱患也能夠被消除,因而在實現緩存擴容的同時,避免現有方案中可 能導致的各種降低存儲系統性能的問題,提高了存儲系統性能。
以上所述僅為本發明的較佳實施例而已,并非用于限定本發明的保護范 圍。凡在本發明的精神和原則之內,所作的任何修改、等同替換以及改進等, 均應包含在本發明的保護范圍之內。
權利要求
1、一種存儲系統,用于向網絡主機提供服務,該系統包括存儲控制器SC、包括至少一個低速磁盤的磁盤陣列,其特征在于,所述SC中包括用作虛擬緩存的高速磁盤,其讀寫速度大于所述低速磁盤,用于緩存所述網絡主機讀/寫所述磁盤陣列的數據。
2、 如權利要求1所述的系統,其特征在于,所述SC中還包括讀寫速 度小于所述高速磁盤的本地磁盤,用于存放所述存儲系統用以提供服務的軟 件和數據。
3、 如權利要求1或2所述的系統,其特征在于,所述SC中還包括用 作緩存的物理內存,其讀寫速度大于所述高速磁盤。
4、 如權利要求3所述的系統,其特征在于,所述SC中還包括虛擬 緩存啟動裝置,用于控制所述虛擬緩存的開啟和關閉。
5、 一種存儲系統中的存儲控制器SC,應用于網絡主機與包括至少一個 低速磁盤的磁盤陣列之間,并向網絡主機提供服務,其特征在于,所述SC包括用作虛擬緩存的高速磁盤,其讀寫速度大于所述低速磁 盤,用于緩存所述網絡主機讀/寫所述磁盤陣列的數據。
6、 如權利要求5所述的SC,其特征在于,所述SC中還包括讀寫速度 小于所述高速磁盤的本地磁盤,用于存放所述SC用以提供服務的軟件和數 據。
7、 如權利要求5或6所述的SC,其特征在于,所述SC中還包括用作 緩存的物理內存,其讀寫速度大于所述高速磁盤。
8、 如權利要求7所述的SC,其特征在于,所述SC中還包括虛擬緩 存啟動裝置,用于控制所述虛擬緩存的開啟和關閉。
9、 如權利要求8所述的系統,其特征在于,所述虛擬緩存啟動裝置在所述網絡主機通過隨機讀取模式訪問所述磁 盤陣列時,關閉所述虛擬緩存;在所述網絡主機通過順序讀取模式訪問所述》茲盤陣列時,開啟所述虛擬內存。
10、 如權利要求5所述的SC,其特征在于,所述用作虛擬緩存的高速磁盤多于一個,所述多于一個的高速磁盤構成第o級別的獨立磁盤冗余陣列RA訓。
11、 一種存儲系統中的緩存實現方法,所述存儲系統用于向網絡主機提 供服務,該系統包括存儲控制器SC、包括至少一個低速磁盤的磁盤陣列, 其特征在于,該方法包括在所述存儲系統的存儲控制器SC設置讀寫速度大于所述低速磁盤、且 用作虛擬緩存的高速磁盤,將網絡主機讀/寫所述磁盤陣列的數據緩存在所述高速磁盤中。
12、 如權利要求11所述的方法,其特征在于,如果所述網絡主機通過隨機讀取模式訪問所述it盤陣列,則關閉所述虛 擬緩存;如果所述網絡主機通過順序讀取模式訪問所述磁盤陣列,則開啟所 述虛擬內存。
13、 一種網絡存儲控制器,包括 前端接口,通過網絡與網絡主機相耦合; 后端接口,與^f茲盤陣列相耦合;緩存,用以提升對網絡主機請求的響應速度;本地磁盤,用以存儲網絡控制器運行必須的軟件;其特征在于,所述網絡存儲控制器還包括作為虛擬緩存的磁盤,用以提 升對網絡主機請求的響應速度,其中該/磁盤的讀寫通道與本地>磁盤的讀寫通 道相互獨立。
14、 如權利要求13所述的控制器,其特征在于,所述作為虛擬緩存的 磁盤,其接口類型不同于本地磁盤接口的接口類型,其讀寫速度大于本地磁 盤讀寫速度。
15、 如權利要求13或14所述的控制器,其特征在于,所述作為虛擬緩 存的磁盤,其讀寫速度大于磁盤陣列的讀寫速度。
全文摘要
本發明公開了一種存儲系統。本發明在存儲控制器(SC)內部設置高速磁盤,將設置的高速磁盤用作虛擬緩存,使得緩存容量可通過增加高速磁盤容量、以及所配置的虛擬緩存的大小而無限擴容。這樣,可以不受系統硬件的限制而靈活地擴充緩存的容量,同時不會出現在讀寫緩存過程中反復進行數據讀寫導致數據通路開銷很大的問題,也不會出現緩存和磁盤柜中的磁盤陣列競爭資源的問題,數據安全性存在的隱患也能夠被消除。也就是說,本發明能夠在實現緩存擴容的同時,避免現有方案中可能導致的各種降低存儲系統性能的問題,因而能夠通過緩存擴容來提高存儲系統性能。本發明還公開了一種存儲系統中的SC、以及一種存儲系統中的緩存實現方法。
文檔編號G06F12/08GK101493795SQ20081005680
公開日2009年7月29日 申請日期2008年1月24日 優先權日2008年1月24日
發明者上官應蘭, 微 胡 申請人:杭州華三通信技術有限公司