• / 20
  • 下載費用:30 金幣  

用來于一儲存系統中進行高速緩存管理的方法與裝置.pdf

摘要
申請專利號:

CN201610004663.X

申請日:

2016.01.05

公開號:

CN106257433A

公開日:

2016.12.28

當前法律狀態:

實審

有效性:

審中

法律詳情: 實質審查的生效IPC(主分類):G06F 12/0802申請日:20160105|||公開
IPC分類號: G06F12/0802(2016.01)I; G06F12/084(2016.01)I 主分類號: G06F12/0802
申請人: 群暉科技股份有限公司
發明人: 林奕君; 梁志成; 王鈺婷; 陳炫廷
地址: 中國臺灣
優先權: 2015.06.18 TW 104119728
專利代理機構: 深圳新創友知識產權代理有限公司 44223 代理人: 江耀純
PDF完整版下載: PDF下載
法律狀態
申請(專利)號:

CN201610004663.X

授權公告號:

|||

法律狀態公告日:

2017.01.25|||2016.12.28

法律狀態類型:

實質審查的生效|||公開

摘要

本發明公開了一種用來于一儲存系統進行高速緩存管理的方法與裝置,其中所述儲存系統包括多個儲存裝置。所述方法包括:利用所述多個儲存裝置中的一儲存裝置作為所述多個儲存裝置中的另一儲存裝置的一高速緩存,其中所述儲存裝置的訪問速度大于所述另一儲存裝置的訪問速度,且所述高速緩存包括多個高速緩存區塊;以及當發生所述高速緩存的一讀取失敗時,自所述另一儲存裝置讀取對應于至少一高速緩存區塊的數據,以將所述數據儲存于所述高速緩存中,其中對應于所述讀取失敗的數據量小于所述多個高速緩存區塊中的每一高速緩存區塊的數據量。本發明的有益效果在于,可在不浪費高速緩存空間的狀況下提高高速緩存效能。

權利要求書

1.一種用來于一儲存系統中進行高速緩存管理的方法,所述儲存系統包括多個儲存裝
置,其特征在于,所述方法包括:
利用所述多個儲存裝置中的一儲存裝置作為所述多個儲存裝置中的另一儲存裝置的
一高速緩存,其中所述儲存裝置的訪問速度大于所述另一儲存裝置的訪問速度,且所述高
速緩存包括多個高速緩存區塊;以及
當發生所述高速緩存的一讀取失敗時,自所述另一儲存裝置讀取對應于至少一高速緩
存區塊的數據,以將所述數據儲存于所述高速緩存中,其中對應于所述讀取失敗的數據量
小于所述多個高速緩存區塊中的每一高速緩存區塊的數據量。
2.如權利要求1所述的方法,其特征在于,自所述另一儲存裝置讀取對應于所述至少一
高速緩存區塊的所述數據以將所述數據儲存于所述高速緩存中的步驟還包括:
當發生所述讀取失敗時,自所述另一儲存裝置讀取對應于所述讀取失敗的一組目標讀
取數據、且自所述另一儲存裝置預先讀取至少一組額外數據,并且利用所述組目標讀取數
據與所述至少一組額外數據作為對應于所述至少一高速緩存區塊的所述數據。
3.如權利要求2所述的方法,其特征在于,自所述另一儲存裝置讀取對應于所述至少一
高速緩存區塊的所述數據以將所述數據儲存于所述高速緩存中的步驟還包括:
當發生所述讀取失敗時,自所述另一儲存裝置預先讀取所述至少一組額外數據,以供
后續讀取、并且避免在所述高速緩存中的所述至少一高速緩存區塊中產生任何高速緩存空
洞。
4.如權利要求2所述的方法,其特征在于,對應于所述讀取失敗的數據量等于所述組目
標讀取數據的數據量。
5.如權利要求1所述的方法,其特征在于,在所述另一儲存裝置中,對應于所述至少一
高速緩存區塊的所述數據是連續數據;以及所述方法還包括:
檢查對應于所述讀取失敗的一讀取數據范圍是否符合一預定高速緩存規則,其中自所
述另一儲存裝置讀取對應于所述至少一高速緩存區塊的所述數據以將所述數據儲存于所
述高速緩存中的運作是在所述讀取數據范圍不符合所述預定高速緩存規則的狀況下進行,
以避免在所述高速緩存中的所述至少一高速緩存區塊中產生任何高速緩存空洞。
6.如權利要求5所述的方法,其特征在于,還包括:
當發生所述高速緩存的另一讀取失敗時,自所述另一儲存裝置讀取對應于一個或多個
高速緩存區塊的其它數據,以將所述其它數據儲存于所述高速緩存中,其中對應于所述另
一讀取失敗的數據量等于所述其它數據的數據量。
7.如權利要求6所述的方法,其特征在于,自所述另一儲存裝置讀取所述其它數據以將
所述其它數據儲存于所述高速緩存中的運作是在對應于所述另一讀取失敗的一讀取數據
范圍符合所述預定高速緩存規則的狀況下進行。
8.如權利要求1所述的方法,其特征在于,所述高速緩存是一讀寫高速緩存;以及所述
方法還包括:
觸發一同步程序,其中所述同步程序是用來將所述高速緩存中的一組新寫入數據同步
至所述另一儲存裝置;以及
于所述同步程序中,在將所述高速緩存中的所述組新寫入數據同步至所述另一儲存裝
置之前,檢查所述高速緩存中用來儲存所述組新寫入數據的一個或多個高速緩存區塊是否
存在至少一高速緩存空洞,以選擇性地填滿所述至少一高速緩存空洞。
9.如權利要求8所述的方法,其特征在于,還包括:
于所述同步程序中,當偵測到所述高速緩存中用來儲存所述組新寫入數據的所述一個
或多個高速緩存區塊存在所述至少一高速緩存空洞時,先自所述另一儲存裝置讀取對應于
所述至少一高速緩存空洞的數據以填滿所述至少一高速緩存空洞,然后將所述高速緩存的
所述一個或多個高速緩存區塊中的全部數據同步至所述另一儲存裝置。
10.如權利要求8所述的方法,其特征在于,還包括:
于所述同步程序中,當偵測到所述高速緩存中用來儲存所述組新寫入數據的所述一個
或多個高速緩存區塊不存在任何高速緩存空洞時,直接將所述高速緩存的所述一個或多個
高速緩存區塊中的全部數據同步至所述另一儲存裝置。
11.一種用來于一儲存系統中進行高速緩存管理的裝置,所述裝置包括所述儲存系統
的至少一部分,所述儲存系統包括多個儲存裝置,其特征在于,所述裝置包括:
所述多個儲存裝置中的一儲存裝置,用來儲存信息,其中所述儲存裝置的訪問速度大
于所述多個儲存裝置中的另一儲存裝置的訪問速度;以及
一控制電路,設置于所述儲存系統中、且耦接至所述儲存裝置,用來控制所述儲存系統
的運作、且利用所述儲存裝置作為所述另一儲存裝置的一高速緩存,其中所述高速緩存包
括多個高速緩存區塊,以及當發生所述高速緩存的一讀取失敗時,所述控制電路自所述另
一儲存裝置讀取對應于至少一高速緩存區塊的數據,以將所述數據儲存于所述高速緩存
中,其中對應于所述讀取失敗的數據量小于所述多個高速緩存區塊中的每一高速緩存區塊
的數據量。
12.如權利要求11所述的裝置,其特征在于,當發生所述讀取失敗時,所述控制電路自
所述另一儲存裝置讀取對應于所述讀取失敗的一組目標讀取數據、且自所述另一儲存裝置
預先讀取至少一組額外數據,并且利用所述組目標讀取數據與所述至少一組額外數據作為
對應于所述至少一高速緩存區塊的所述數據。
13.如權利要求12所述的裝置,其特征在于,當發生所述讀取失敗時,所述控制電路自
所述另一儲存裝置預先讀取所述至少一組額外數據,以供后續讀取、并且避免在所述高速
緩存中的所述至少一高速緩存區塊中產生任何高速緩存空洞。
14.如權利要求12所述的裝置,其特征在于,對應于所述讀取失敗的所述數據量等于所
述組目標讀取數據的數據量。
15.如權利要求11所述的裝置,其特征在于,在所述另一儲存裝置中,對應于所述至少
一高速緩存區塊的所述數據是連續數據;以及所述控制電路檢查對應于所述讀取失敗的一
讀取數據范圍是否符合一預定高速緩存規則,其中自所述另一儲存裝置讀取對應于所述至
少一高速緩存區塊的所述數據以將所述數據儲存于所述高速緩存中的運作是在所述讀取
數據范圍不符合所述預定高速緩存規則的狀況下進行,并且避免在所述高速緩存中的所述
至少一高速緩存區塊中產生任何高速緩存空洞。
16.如權利要求15所述的裝置,其特征在于,當發生所述高速緩存的另一讀取失敗時,
所述控制電路自所述另一儲存裝置讀取對應于一個或多個高速緩存區塊的其它數據,以將
所述其它數據儲存于所述高速緩存中,其中對應于所述另一讀取失敗的數據量等于所述其
它數據的數據量。
17.如權利要求16所述的裝置,其特征在于,自所述另一儲存裝置讀取所述其它數據以
將所述其它數據儲存于所述高速緩存中的運作是在對應于所述另一讀取失敗的一讀取數
據范圍符合所述預定高速緩存規則的狀況下進行。
18.如權利要求11所述的裝置,其特征在于,所述高速緩存是一讀寫高速緩存;所述控
制電路觸發一同步程序,其中所述同步程序是用來將所述高速緩存中的一組新寫入數據同
步至所述另一儲存裝置;以及于所述同步程序中,在將所述高速緩存中的所述組新寫入數
據同步至所述另一儲存裝置之前,所述控制電路檢查所述高速緩存中用來儲存所述組新寫
入數據的一個或多個高速緩存區塊是否存在至少一高速緩存空洞,以選擇性地填滿所述至
少一高速緩存空洞。
19.如權利要求18所述的裝置,其特征在于,于所述同步程序中,當偵測到所述高速緩
存中用來儲存所述組新寫入數據的所述一個或多個高速緩存區塊存在所述至少一高速緩
存空洞時,所述控制電路先自所述另一儲存裝置讀取對應于所述至少一高速緩存空洞的數
據以填滿所述至少一高速緩存空洞,然后將所述高速緩存的所述一個或多個高速緩存區塊
中的全部數據同步至所述另一儲存裝置。
20.如權利要求18所述的裝置,其特征在于,于所述同步程序中,當偵測到所述高速緩
存中用來儲存所述組新寫入數據的所述一個或多個高速緩存區塊不存在任何高速緩存空
洞時,所述控制電路直接將所述高速緩存的所述一個或多個高速緩存區塊中的全部數據同
步至所述另一儲存裝置。

說明書

用來于一儲存系統中進行高速緩存管理的方法與裝置

技術領域

本發明涉及數據儲存系統的效能管理,尤其涉及一種用來于一儲存系統中進行高
速緩存管理的方法與相關裝置。

背景技術

依據相關技術,一傳統的儲存系統可采用某些傳統的高速緩存(或稱快取
(Cache))運作機制,以提升讀寫效能。然而,所述傳統的高速緩存運作機制有些問題。例如:
一傳統的高速緩存運作機制所采用的高速緩存區塊的大小等于所述傳統的儲存系統中的
塊設備(Block Device)的存取單位。為了記錄每個高速緩存區塊對應到的塊設備位置,所
述傳統的高速緩存運作機制需要大量的存儲器資源。以EXT4文件系統為例,其存取請求是
以4096字節(4Kilobyte,以下簡稱為「4KB」)為最小單位。在所述傳統的高速緩存運作機制
采用4KB作為每個高速緩存區塊的大小、且所述塊設備的儲存容量通常遠大于4KB的狀況
下,用來記錄每個高速緩存區塊對應到的塊設備位置的存儲器的總量相當可觀。

相關技術中提出一些傳統的方案,其通過加大高速緩存區塊大小以試圖減少存儲
器的使用量,卻帶來其它問題諸如一些副作用。例如:另一傳統的高速緩存運作機制在處理
小于高速緩存區塊大小的存取請求時,常常繞過(Bypass)高速緩存、且直接存取硬式磁盤
驅動器,這會導致多數的存取都沒辦法被高速緩存住,使所述另一傳統的高速緩存運作機
制無法發揮效果。于是,高速緩存效能降低。又一傳統的高速緩存運作機制在處理小于高速
緩存區塊大小的存取請求時,復制所述存取請求的數據至高速緩存區塊,并使用一結構來
記錄所述數據位于所述高速緩存區塊的位置。然而,所述傳統的高速緩存區塊中典型地
(Typically)存在高速緩存空洞,這導致讀取和寫入運作都會受到影響。以EXT4文件系統為
例,經過一段時間的隨機存取后,由于數據不連續,會造成高速緩存區塊中存在大量的高速
緩存空洞,而高速緩存中的有效數據少,將導致大部分的存取請求都需從所述塊設備讀取,
使效能下降。舉例來說,假設此傳統的高速緩存運作機制要讀取所述塊設備上某一區塊中
的數據。雖然所述區塊已對應到高速緩存中的某一高速緩存區塊,但由于所要讀取的數據
不在高速緩存上,此傳統的高速緩存運作機制還是要從所述塊設備讀取,這造成高速緩存
空間的浪費與效能的下降。

由以上可知,相關技術無法在不造成額外的問題(諸如上述的副作用)的狀況下,
妥善地解決既有的問題。因此,需要一種新穎的方法及相關的架構,以在較少副作用、或不
造成副作用的狀況下,妥善地解決既有的問題。

發明內容

本發明的目的之一在于公開一種用來于一儲存系統中進行高速緩存管理的方法
與相關裝置,以解決上述問題。

本發明的另一目的在于公開一種用來于一儲存系統中進行高速緩存管理的方法
與相關裝置,以提升數據存取(Access)的效能。

本發明的至少一較佳實施例中公開一種用來于一儲存系統中進行高速緩存管理
的方法,其中所述儲存系統包括多個儲存裝置。所述方法包括:利用所述多個儲存裝置中的
一儲存裝置作為所述多個儲存裝置中的另一儲存裝置的一高速緩存(Cache),其中所述儲
存裝置的訪問速度大于所述另一儲存裝置的訪問速度,且所述高速緩存包括多個高速緩存
區塊;以及當發生所述高速緩存的一讀取失敗(Read Miss)時,自所述另一儲存裝置讀取對
應于至少一高速緩存區塊的數據,以將所述數據儲存于所述高速緩存中,其中對應于所述
讀取失敗的數據量小于所述多個高速緩存區塊中的每一高速緩存區塊的數據量。

本發明在公開上述方法的同時,也對應地公開一種用來于一儲存系統中進行高速
緩存管理的裝置,其中所述裝置可包括所述儲存系統的至少一部分(例如:一部分或全部),
而所述儲存系統包括多個儲存裝置。所述裝置可包括:所述多個儲存裝置中的一儲存裝置,
其中所述儲存裝置是用來儲存信息;以及一控制電路,設置于所述儲存系統中、且耦接至所
述儲存裝置。例如:所述儲存裝置的訪問速度大于所述多個儲存裝置中的另一儲存裝置的
訪問速度。另外,所述控制電路是用來控制所述儲存系統的運作、且利用所述儲存裝置作為
所述另一儲存裝置的一高速緩存,其中所述高速緩存包括多個高速緩存區塊。此外,當發生
所述高速緩存的一讀取失敗時,所述控制電路自所述另一儲存裝置讀取對應于至少一高速
緩存區塊的數據,以將所述數據儲存于所述高速緩存中,其中對應于所述讀取失敗的數據
量小于所述多個高速緩存區塊中的每一高速緩存區塊的數據量。

本發明的有益效果之一是,本發明的方法與相關裝置可在較少副作用、或不造成
副作用的狀況下,妥善地解決既有的問題。另外,本發明的方法與相關裝置可有效提高高速
緩存效能,并且不會有浪費高速緩存空間的問題。

附圖說明

圖1為依據本發明一實施例的一種儲存系統的示意圖。

圖2繪示圖1所示的儲存系統于一實施例中所涉及的實施細節。

圖3為依據本發明一實施例的一種用來于一儲存系統中進行高速緩存管理的方法
的流程圖。

圖4繪示圖3所示的方法于一實施例中所涉及的目標讀取數據。

圖5繪示圖3所示的方法于圖4所示實施例中所涉及的一控制方案。

圖6繪示圖3所示的方法于一實施例中所涉及的工作流程。

圖7繪示圖3所示的方法于一實施例中所涉及的工作流程。

圖8繪示圖3所示的方法于一實施例中所涉及的目標寫入數據。

圖9繪示圖3所示的方法于圖8所示實施例中所涉及的一控制方案。

其中,附圖標記說明如下:

100,200 儲存系統

110 控制電路

120-1,120-2,…,120-N, 儲存裝置

220

122,222 高速緩存

221 塊設備

300 方法

310,320,510~560 步驟

610~630

411,412,413,414,711, 存儲索引

712,713,714

421,422,423,424,721, 高速緩存區塊

722,723,724

431,432,433,434,731, 區塊群組

732,733,734

605 同步程序

具體實施方式

圖1為依據本發明一實施例的一種儲存系統100的示意圖。儲存系統100可包括一
控制電路110,且可包括多個儲存裝置,諸如N個儲存裝置{120-1,120-2,…,120-N},其中控
制電路110耦接至所述多個儲存裝置。符號「N」可代表大于1的正整數。例如:當N=2時,所述
多個儲存裝置可包括兩個儲存裝置120-1與120-2。又例如:當N>2時,所述多個儲存裝置可
包括三個或三個以上的儲存裝置,諸如儲存裝置120-1、120-2、…、120-N。所述N個儲存裝置
{120-1,120-2,…,120-N}中的任一儲存裝置120-n(符號「n」可代表落入區間[1,N]的范圍
的任一正整數)的例子可包括(但不限于):固態硬盤(Solid State Drive,SSD)、硬式磁盤
驅動器(Hard Disk Drive,HDD)。

依據本實施例,控制電路110是用來控制儲存系統100的運作,而所述N個儲存裝置
{120-1,120-2,…,120-N}中的每一儲存裝置可用來儲存信息。另外,控制電路110可利用所
述N個儲存裝置{120-1,120-2,…,120-N}中的某一儲存裝置的至少一部分(例如:一部分或
全部)作為其它儲存裝置的一高速緩存(Cache)。例如:控制電路110可利用儲存裝置120-1
來實施高速緩存122。

在實施例中,所述N個儲存裝置{120-1,120-2,…,120-N}中的任一儲存裝置120-n
可代表一個實體儲存裝置、或由多個實體儲存裝置所組成的一個邏輯儲存裝置。尤其是,在
所述N個儲存裝置{120-1,120-2,…,120-N}中的任一儲存裝置120-n代表由多個實體儲存
裝置所組成的一個邏輯儲存裝置的狀況下,所述N個儲存裝置{120-1,120-2,…,120-N}中
的每一儲存裝置可為容錯式磁盤陣列(Redundant Array of Independent Disks,以下簡
稱為「RAID」)。例如:儲存裝置120-1可為由多個固態硬盤所組成的RAID,以供實施高速緩存
122。又例如:其它儲存裝置{120-2,…,120-N}中的某一儲存裝置可為多個硬式磁盤驅動器
所組成的RAID,以供儲存數據,諸如文件系統中的數據或檔案、或用戶數據。另外,控制電路
110可實施成執行一程序模塊的一處理電路。例如:所述程序模塊可包括韌體碼(Firmware
Code)。這只是為了說明的目的而已,并非對本發明的限制。例如:所述程序模塊可包括軟件
碼(Software Code)。

在某些實施例中,用來于儲存系統100中進行高速緩存管理的裝置可包括儲存系
統100的至少一部分(例如:一部分或全部)。例如:此裝置可包括儲存系統100的一部分,諸
如控制電路110。又例如:此裝置可包括儲存系統100的一部分,諸如控制電路110以及所述N
個儲存裝置{120-1,120-2,…,120-N}中的至少一儲存裝置(例如:一個或多個儲存裝置)。
又例如:此裝置可包括儲存系統100的一部分,諸如控制電路110、以及設置于儲存裝置120-
1中的高速緩存122。又例如:此裝置可包括儲存系統100的整體。所述儲存系統100的例子可
包括(但不限于):服務器、網絡附加儲存(Network Attached Storage,NAS)。

圖2繪示圖1所示的儲存系統100于一實施例中所涉及的實施細節。于本實施例中,
上述高速緩存122的大小可擴展至整個儲存裝置120-1,而儲存裝置120-1的訪問速度可大
于所述N個儲存裝置{120-1,120-2,…,120-N}中的任一其它儲存裝置的訪問速度。例如:儲
存裝置120-1可為固態硬盤,而所述其它儲存裝置可為塊設備(Block Device)221,諸如硬
式磁盤驅動器。因應在架構上的這些限制條件,高速緩存122、儲存系統100于本實施例中分
別改稱為高速緩存222、儲存系統200。

依據本實施例,塊設備221可用來儲存用戶數據,而高速緩存222可用于儲存一部
分塊設備數據(例如:所述用戶數據的一部分)的副本。高速緩存222上所述儲存哪些數據的
副本,可依高速緩存222的類別而予以變化。例如:在控制電路110的控制下,高速緩存222可
為一只讀高速緩存(Read-Only Cache)。又例如:在控制電路110的控制下,高速緩存222可
為一讀寫高速緩存(Read-Write Cache)。不論高速緩存222為只讀高速緩存或讀寫高速緩
存,高速緩存222的數據管理單位可稱為高速緩存區塊(Cache Block)。在實施例中,高速緩
存222中的每個高速緩存區塊可對應到塊設備221上的一段連續數據,其中不同高速緩存區
塊之間的關系則不必是連續數據。控制電路110可配置一段存儲器來記錄高速緩存區塊以
及塊設備221中的區塊群組之間的對應關系,以供進行高速緩存管理運作。

例如:在高速緩存222為只讀高速緩存的狀況下,高速緩存222中儲存的內容可為
最近讀取的數據。當收到讀取指令或讀取請求(Request)時,控制電路110會先至高速緩存
222中查看欲讀取的數據是否存在。若高速緩存命中(Cache Hit),則控制電路110直接從高
速緩存222中取出并回傳數據;否則,控制電路110從塊設備221讀取、并儲存一份副本
(Copy)于高速緩存222中,以供后續讀取之用。另外,在高速緩存222為讀寫高速緩存的狀況
下,高速緩存222中儲存的內容可為最近讀寫過的數據。除了讀取的運作方式與只讀高速緩
存相同之外,還有寫入控制機制。當有新的寫入指令或寫入請求時,控制電路110會先寫入
高速緩存222中,待達到某些條件(例如:儲存系統200閑暇、或高速緩存222已滿)再將高速
緩存222中的數據寫入塊設備221中。

圖3為依據本發明一實施例的一種用來于一儲存系統中進行高速緩存管理的方法
300的流程圖。所述方法可應用于圖1所示的儲存系統100與圖2所示的儲存系統200中的任
一者,尤其是上述的控制電路110。所述方法說明如下。

于步驟310中,控制電路110利用所述多個儲存裝置中的一儲存裝置作為所述多個
儲存裝置中的另一儲存裝置的一高速緩存,其中所述儲存裝置的訪問速度大于所述另一儲
存裝置的訪問速度,且所述高速緩存包括多個高速緩存區塊。為了便于理解,以儲存系統
200為例來說明。例如:控制電路110利用儲存裝置120-1作為塊設備221的高速緩存222。這
只是為了說明的目的而已,并非對本發明的限制。例如:所述儲存裝置可代表儲存裝置120-
1,而所述另一儲存裝置可代表所述N個儲存裝置{120-1,120-2,…,120-N}中的任一其它儲
存裝置,且高速緩存122可作為步驟310中所述的高速緩存的一例。

于步驟320中,當發生所述高速緩存(也就是說,步驟310中所述的高速緩存,以下
同)的一讀取失敗(Read Miss)時,控制電路110自所述另一儲存裝置讀取對應于至少一高
速緩存區塊的數據,以將此數據儲存于所述高速緩存中,其中對應于所述讀取失敗的數據
量小于所述多個高速緩存區塊中的每一高速緩存區塊的數據量。例如:當發生高速緩存222
的所述讀取失敗時,控制電路110自塊設備221讀取對應于上述至少一高速緩存區塊的所述
數據,以將此數據儲存于高速緩存222中。

依據本實施例,當發生所述讀取失敗時,控制電路110可自所述另一儲存裝置(諸
如塊設備221)讀取對應于所述讀取失敗的一組目標讀取數據、且自所述另一儲存裝置預先
讀取至少一組額外數據(諸如一或多組額外數據),并且利用所述組目標讀取數據與上述的
至少一組額外數據作為對應于上述至少一高速緩存區塊的所述數據。例如:當發生所述讀
取失敗時,控制電路110可自所述另一儲存裝置預先讀取上述的至少一組額外數據,以供后
續讀取、并且避免在所述高速緩存(諸如高速緩存222)中的上述至少一高速緩存區塊中產
生任何高速緩存空洞,其中對應于所述讀取失敗的所述數據量可等于所述組目標讀取數據
的數據量。另外,在所述另一儲存裝置中,對應于上述至少一高速緩存區塊的所述數據可為
連續數據。控制電路110可檢查對應于所述讀取失敗的一讀取數據范圍是否符合一預定高
速緩存規則,其中(步驟320)自所述另一儲存裝置讀取對應于上述至少一高速緩存區塊的
所述數據以將所述數據儲存于所述高速緩存中的運作是在所述讀取數據范圍不符合所述
預定高速緩存規則的狀況下進行,以避免在所述高速緩存(諸如高速緩存222)中的上述至
少一高速緩存區塊中產生任何高速緩存空洞。例如:所述預定高速緩存規則可代表「所述讀
取數據范圍對齊一個或多個高速緩存區塊」。于是,當所述讀取數據范圍對齊一個或多個高
速緩存區塊時,控制電路110可判斷所述讀取數據范圍符合所述預定高速緩存規則;否則,
控制電路110可判斷所述讀取數據范圍不符合所述預定高速緩存規則。

請注意,針對不同的狀況,控制電路110的高速緩存管理運作可予以改變。依據一
實施例,當發生所述高速緩存的另一讀取失敗時,控制電路110可自所述另一儲存裝置(諸
如塊設備221)讀取對應于一個或多個高速緩存區塊的其它數據,以將所述其它數據儲存于
所述高速緩存(諸如高速緩存222)中,其中對應于所述另一讀取失敗的數據量等于所述其
它數據的數據量。例如:(此實施例中所述)自所述另一儲存裝置讀取所述其它數據以將所
述其它數據儲存于所述高速緩存中的運作是在對應于所述另一讀取失敗的一讀取數據范
圍符合所述預定高速緩存規則的狀況下進行。由于本實施例的所述另一讀取失敗所對應的
所述讀取數據范圍本來就符合所述預定高速緩存規則(尤其是,對齊一個或多個高速緩存
區塊),故所述另一讀取失敗所對應的讀取指令根本就不可能導致在所述高速緩存(諸如高
速緩存222)中產生任何高速緩存空洞。

依據某些實施例,步驟320中所述的高速緩存(諸如高速緩存222)是讀寫高速緩
存。控制電路110可觸發一同步程序(Synchronization Procedure),其中所述同步程序是
用來將所述高速緩存中的一組新寫入數據同步(Synchronize)至所述另一儲存裝置(諸如
塊設備221)。于所述同步程序中,在將所述高速緩存中的所述組新寫入數據同步至所述另
一儲存裝置之前,控制電路110可檢查所述高速緩存中用來儲存所述組新寫入數據的一個
或多個高速緩存區塊是否存在至少一高速緩存空洞,以選擇性地填滿上述至少一高速緩存
空洞。例如:于所述同步程序中,當偵測到所述高速緩存中用來儲存所述組新寫入數據的所
述一個或多個高速緩存區塊存在上述至少一高速緩存空洞時,控制電路110可先自所述另
一儲存裝置讀取對應于上述至少一高速緩存空洞的數據以填滿上述至少一高速緩存空洞,
然后將所述高速緩存的所述一個或多個高速緩存區塊中的全部數據同步至所述另一儲存
裝置。又例如:于所述同步程序中,當偵測到所述高速緩存中用來儲存所述組新寫入數據的
所述一個或多個高速緩存區塊不存在任何高速緩存空洞時,控制電路110可直接將所述高
速緩存的所述一個或多個高速緩存區塊中的全部數據同步至所述另一儲存裝置。

圖4繪示圖3所示的方法300于一實施例中所涉及的目標讀取數據,諸如塊設備221
中的所述區塊群組431、432、433與434中的任一區塊群組內以陰影表示的小方塊。例如:塊
設備221中的最小存取單位(也就是說,塊設備221中的區塊)的大小為4096字節
(4Kilobyte,以下簡稱為「4KB」),此即塊設備221的區塊大小。另外,高速緩存222中的每一
高速緩存區塊的大小可為65536字節(64Kilobyte,以下簡稱為「64KB」)。相似地,塊設備221
中的每一區塊群組(諸如區塊群組431、432、433與434)的大小可為64KB,以便于進行高速緩
存管理。尤其是,控制電路110可于儲存系統200的存儲器中存儲索引411、412、413與414,諸
如數值2、5、7與4,以分別指出所述高速緩存區塊421、422、423與424以及所述區塊群組431、
432、433與434之間的映射(Mapping)關系。

圖5繪示圖3所示的方法300于圖4所示實施例中所涉及的一控制方案。依據此控制
方案,控制電路110可自所述另一儲存裝置預先讀取上述的至少一組額外數據。此狀況下,
所述高速緩存區塊421、422、423與424內的陰影可代表所述區塊群組431、432、433與434中
的全部數據(其于所述區塊群組431、432、433與434中以陰影表示)的副本。

圖6繪示圖3所示的方法300于一實施例中所涉及的工作流程。

于步驟510中,控制電路110接收讀取請求。

于步驟520中,控制電路110檢查欲讀取的數據是否在高速緩存222中。當所述數據
在高速緩存222中,進入步驟550;否則,進入步驟530。

于步驟530中,控制電路110檢查讀取數據范圍是否對齊高速緩存區塊。例如:控制
電路110可進行計算以判斷所述讀取數據范圍(也就是說,欲讀取的數據的地址范圍)是否
對齊高速緩存222中的高速緩存區塊。當所述讀取數據范圍對齊高速緩存區塊,進入步驟
560;否則,進入步驟540。

于步驟540中,控制電路110將讀取數據范圍擴大至與一個或多個高速緩存區塊對
齊。于是,最新的讀取數據范圍變成步驟540當中擴大后的讀取范圍。

于步驟550中,控制電路110從高速緩存222讀取數據。

于步驟560中,依據最新的讀取數據范圍,控制電路110從塊設備221讀取數據、并
將讀取的數據寫入高速緩存222。

例如:若于步驟530中已判斷對齊,則控制電路110直接于步驟560中從塊設備221
讀取;否則,控制電路110于步驟540中將讀取范圍擴大至與所述一個或多個高速緩存區塊
對齊,再于步驟560中從塊設備221預先讀取出對齊高速緩存區塊的數據,并將讀取的數據
寫入高速緩存222中。如此可以確保每次發生高速緩存讀取失敗后,新寫入的高速緩存區塊
是沒有空洞的。

依據某些實施例,預先讀取的范圍并不限制在一個高速緩存區塊。例如:控制電路
110可依儲存系統上所執行的應用的存取特性,將對應于相鄰的高速緩存區塊的數據都預
先讀取至高速緩存222中,以進一步提升高速緩存命中率。又例如:控制電路110可檢查塊設
備221當中某一區塊群組中的一區塊以及另一區塊群組中的一區塊是否為連續數據。當偵
測到這兩個區塊群組各自的這兩個區塊所述連續數據時,控制電路110可于步驟540中將讀
取數據范圍擴大至包括這兩個區塊群組。于是,控制電路110可將塊設備221中的讀取數據
范圍(諸如欲讀取的數據的區塊的范圍)擴大到整段連續數據所對應的區塊的范圍。

以EXT4文件系統,其最小的讀寫單位為4KB,高速緩存區塊大小為64KB,當發生高
速緩存讀取失敗時,若讀取請求有未滿64KB的部份,則一律讀滿64KB,再寫回高速緩存222
中。通過此預先讀取機制,能減少高速緩存中的空洞。若短時間內又存取到同一高速緩存區
塊中的其它數據時,由于數據已預先讀取并儲存于高速緩存222中,故高速緩存命中的機率
便可增加。因此,控制電路110可常常直接從高速緩存讀取,并讀取塊設備221的次數可減
少,進而提升儲存系統200的整體效能。

圖7繪示圖3所示的方法300于一實施例中所涉及的工作流程,其中同步程序605可
作為上述所述同步程序的一例。此工作流程說明如下。

于步驟610中,控制電路110檢查某(些)高速緩存區塊上的數據是否完整。例如:上
述的某(些)高速緩存區塊可代表一個或多個高速緩存區塊。當新數據占滿所述(些)高速緩
存區塊(這可表示所述(些)高速緩存區塊上的數據完整),進入步驟630;否則(這可表示,所
述(些)高速緩存區塊上有缺數據之處,也就是說,高速緩存空洞),進入步驟620。

于步驟620中,控制電路110從塊設備221讀取對應的數據(諸如對應于所述(些)高
速緩存區塊的塊設備區塊當中,所述(些)高速緩存區塊所缺的數據),并將所述對應的數據
和高速緩存222上的新數據合并。于是,所述(些)高速緩存區塊不存在任何高速緩存空洞。

于步驟630中,控制電路110將整個高速緩存區塊的數據寫入塊設備221。

在實施例中,不需要針對寫入請求(或寫入指令)套用預讀機制。于寫入時,若還要
耗費額外的硬盤讀取時間,會影響當下的寫入效能。因此,儲存了寫入數據的高速緩存區塊
中,可能會有高速緩存空洞,其中這個部分的高速緩存空洞可于同步程序605中被填滿。

圖8繪示圖3所示的方法300于一實施例中所涉及的目標寫入數據,諸如高速緩存
222中的所述高速緩存區塊721、722、723與724中的任一高速緩存區塊內以陰影表示的小方
塊。例如:塊設備221中的最小存取單位(也就是說,塊設備221中的區塊)的大小為4KB,此即
塊設備221的區塊大小。另外,高速緩存222中的每一高速緩存區塊的大小可為64KB。相似
地,塊設備221中的每一區塊群組(諸如區塊群組731、732、733與734)的大小可為64KB,以便
于進行高速緩存管理。尤其是,控制電路110可于儲存系統200的存儲器中存儲索引711、
712、713與714,諸如數值2、5、7與4,以分別指出所述高速緩存區塊721、722、723與724以及
所述區塊群組731、732、733與734之間的映射關系。

為了便于理解,于一實施例中,假設:控制電路110的一部分高速緩存管理運作可
被暫時地禁能、或被暫時地擱置,以致控制電路110尚未執行步驟620的運作。此狀況下,所
述高速緩存區塊721、722、723與724內沒有陰影的區域可代表高速緩存空洞。這只是為了說
明的目的而已,并非對本發明的限制。

圖9繪示圖3所示的方法300于圖8所示實施例中所涉及的一控制方案。依據此控制
方案,控制電路110可執行步驟620的運作。此狀況下,所述高速緩存區塊721、722、723與724
內的陰影可代表控制電路110于步驟620中所備妥的合并數據,以供進一步寫入。例如:于步
驟630中,控制電路110可將所述合并數據寫入所述區塊群組731、732、733與734,其中所述
區塊群組731、732、733與734內的陰影可代表被寫入的數據。

以上所述僅為本發明的優選實施例而已,并不用于限制本發明,對于本領域的技
術人員來說,本發明可以有各種更改和變化。凡在本發明的精神和原則之內,所作的任何修
改、等同替換、改進等,均應包含在本發明的保護范圍之內。

關 鍵 詞:
用來 儲存 系統 進行 高速緩存 管理 方法 裝置
  專利查詢網所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
關于本文
本文標題:用來于一儲存系統中進行高速緩存管理的方法與裝置.pdf
鏈接地址:http://www.rgyfuv.icu/p-6100763.html
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服客服 - 聯系我們

[email protected] 2017-2018 zhuanlichaxun.net網站版權所有
經營許可證編號:粵ICP備17046363號-1 
 


收起
展開
山东11选5中奖结果走势图