專利名稱:Raid1設備的讀取方法及裝置的制作方法
技術領域:
本發(fā)明涉及磁盤陣列技術,尤其涉及一種RAIDl設備的讀取方法及裝置。
背景技術:
RAIDl磁盤陣列一般通過鏡像技術實現(xiàn)。很多公司使用RAIDl實現(xiàn)無中斷的備份 工作,借以保護關鍵數據。使用RAIDl時候,寫入磁盤冗余陣列(RAID,redundant arrays of inexpensive disks)設備的數據將寫入每一個成員磁盤,并且寫入位置相同。這樣,磁 盤陣列中出現(xiàn)磁盤損壞不會影響陣列的正常工作,即使陣列中僅留一塊磁盤,也可以正常 處理RAID設備上的讀寫請求。RAIDl通常應用在需要提供較高數據冗余保護,對讀寫效能要求不高的場合。向 RAID設備寫入數據時候,數據會寫入每一個成員磁盤,這就延長了寫請求響應時間。許多公 司通過軟硬件來優(yōu)化寫入效能,但是效果不甚理想。從RAID設備讀取數據時候,讀取效能 也不高,一般接近單個磁盤讀取的效能。這是因為雖然每個成員磁盤上數據一致,但是很難 控制成員磁盤間并發(fā)讀取,讀取時一般就是單個磁盤在工作。即在讀取RAIDl設備時,在磁 盤陣列內基本上是讀取同一塊磁盤,其它成員磁盤處于閑置狀態(tài)。在現(xiàn)有RAIDl技術中,有些方法是固定讀取一塊磁盤,有些方法主要考慮磁盤當 前I/O位置來選擇讀取目標盤,但讀取效能一般接近單個磁盤的效能。圖1描述了現(xiàn)在典 型的讀取算法的流程圖,從這個流程圖的步驟102到步驟106可以看出,每次新的讀取請求 到來時候都會檢查成員磁盤的當前I/O位置,讀取請求處理完成后更新I/O位置。這樣在 順序讀取情況下,絕大多數讀請求都會使用到同一個目標磁盤,其它成員磁盤則處于閑置 狀態(tài)。
發(fā)明內容
本發(fā)明的目的旨在至少解決現(xiàn)有技術中的上述問題之一。為此,本發(fā)明的實施例提出一種RAIDl設備讀取方法及裝置,實現(xiàn)多個成員磁盤 能夠高效協(xié)同工作,提高RAIDl設備的讀取效能。根據本發(fā)明的一個方面,本發(fā)明實施例提出了一種RAIDl設備的讀取裝置,所述 讀取裝置包括信息統(tǒng)計模塊,所述信息統(tǒng)計模塊在接收到RAIDl設備數據的讀取請求時 統(tǒng)計RAIDl設備所包含的各個成員磁盤的當前狀態(tài)信息;讀取塊劃分模塊,所述讀取塊劃 分模塊根據所述請求讀取的數據的大小,劃分成員磁盤的讀取塊區(qū)間大小;以及讀請求處 理模塊,所述讀請求處理模塊根據各個成員磁盤的當前狀態(tài)信息以及讀取塊區(qū)間大小,將 所述讀取請求分配到成員磁盤上執(zhí)行并行數據讀取。根據本發(fā)明進一步的實施例,所述成員磁盤的當前狀態(tài)信息包括成員磁盤的繁忙 程度和/或當前I/O位置。所述當前I/O位置根據上一個讀寫請求的位置確定,或者根據 元數據的更新請求確定。根據本發(fā)明進一步的實施例,所述讀取塊劃分模塊還根據成員磁盤的設備類型及
3/或成員磁盤的預讀設置來確定所述讀取塊區(qū)間大小。根據本發(fā)明的另一方面,本發(fā)明的實施例提出一種RAIDl設備的讀取方法,所述 讀取方法包括以下步驟a)在接收到RAIDl設備數據的讀取請求時,統(tǒng)計RAIDl設備所包 含的各個成員磁盤的當前狀態(tài)信息;b)根據請求讀取的數據大小,劃分成員磁盤的讀取區(qū) 間大??;以及c)根據各個成員磁盤的當前狀態(tài)信息以及讀取區(qū)間大小,將所述讀取請求分 配到成員磁盤上執(zhí)行并行數據讀取。根據本發(fā)明進一步的實施例,所述成員磁盤的當前狀態(tài)信息包括成員磁盤的繁忙 程度和/或當前I/O位置。所述當前I/O位置根據上一個讀寫請求的位置確定,或者根據 元數據的更新請求確定。根據本發(fā)明進一步的實施例,所述讀取區(qū)間大小還進一步根據成員磁盤的設備類 型及/或成員磁盤的預讀設置來確定。根據本發(fā)明進一步的實施例,所述步驟c包括在接收到所述讀取請求時,檢查各 個成員磁盤的繁忙程度;若存在空閑的成員磁盤時,根據所述讀取請求的位置選擇一個空 閑的成員磁盤作為第一目標磁盤以執(zhí)行所述讀取區(qū)間大小的數據讀??;在執(zhí)行所述數據讀 取的同時再次檢查其它成員磁盤的繁忙程度;若存在空閑的成員磁盤時,選擇另一個空閑 的成員磁盤作為第二目標磁盤執(zhí)行所述讀取區(qū)間大小的下一個區(qū)間的數據讀取,并放入緩 存中;以及在接到新的讀取請求時,若所述新的讀取請求的位置位于所述第二目標磁盤的 讀取區(qū)間范圍內,則從所述緩存中讀取對應的數據。本發(fā)明考慮成員磁盤當前I/O位置,磁盤效能,磁盤繁忙程度、用戶讀請求連續(xù)性 等等各種因素,從而控制多個成員磁盤并發(fā)高效地協(xié)同工作。這樣,讀取數據時候將不再有 閑置磁盤,尤其是順序讀大文件情況下。從而提高了 RAIDl設備的讀取效能,縮短用戶讀請 求響應時間。本發(fā)明附加的方面和優(yōu)點將在下面的描述中部分給出,部分將從下面的描述中變 得明顯,或通過本發(fā)明的實踐了解到。以下結合附圖和具體實施例對本發(fā)明進行詳細描述,但不作為對本發(fā)明的限定。
圖1為現(xiàn)有技術的RAIDl設備的讀取方法流程圖;圖2為本發(fā)明實施例的RAIDl設備的讀取裝置結構原理圖;圖3為本發(fā)明的RAIDl設備的讀取方法流程圖;圖4為本發(fā)明一個實施例的RAIDl設備的讀取方法流程圖;以及圖5為本發(fā)明實施例的數據讀取示意圖。
具體實施例方式下面詳細描述本發(fā)明的實施例,所述實施例的示例在附圖中示出,其中自始至終 相同或類似的標號表示相同或類似的組件或具有相同或類似功能的組件。下面通過參考附 圖描述的實施例是示例性的,僅用于解釋本發(fā)明,而不能解釋為對本發(fā)明的限制。首先參考圖2,該圖顯示了本發(fā)明實施例的RAIDl設備的讀取裝置結構原理圖。如 圖2所示,針對由多個成員磁盤,成員磁盤1,成員磁盤2,......成員磁盤η構成的RAIDl設備10,本發(fā)明實施例的讀取裝置20包括信息統(tǒng)計模塊22、讀取塊劃分模塊沈以及讀請 求處理模塊觀。信息統(tǒng)計模塊22在接收到RAIDl設備數據的讀取請求時,統(tǒng)計RAIDl設 備所包含的各個成員磁盤1 η的當前狀態(tài)信息。讀取塊劃分模塊沈根據請求對應讀取 的數據的大小,劃分成員磁盤的讀取塊區(qū)間大小,以及讀請求處理模塊觀則根據各個成員 磁盤的當前狀態(tài)信息以及讀取塊區(qū)間大小,將讀取請求分配到成員磁盤上執(zhí)行并行數據讀 取。在讀請求處理模塊觀內,處理當前讀請求同時,發(fā)現(xiàn)控制器內存在空閑磁盤,則將從空 閑磁盤提前讀取下一個區(qū)間數據進入緩存。這樣,順序讀情況下會有較高效能。在一個實施例中,信息統(tǒng)計模塊22統(tǒng)計的各個成員磁盤的當前狀態(tài)信息包括成 員磁盤的繁忙程度和/或當前I/O位置。其中,對于統(tǒng)計磁盤繁忙程度,可以根據操作系統(tǒng) 記錄的磁盤自開機以來讀寫請求總數,統(tǒng)計磁盤讀寫請求變化情況,并且動態(tài)更新數據。根 據操作系統(tǒng)提供的這些信息,可以統(tǒng)計磁盤一個時間段到現(xiàn)在的繁忙程度。如果這個時間 比較短,例如前10秒,30秒的歷史數據統(tǒng)計等,這個繁忙程度可以反映當前磁盤的狀態(tài)。另外,對于成員磁盤的當前I/O位置統(tǒng)計,在RAIDl控制器內,成員磁盤上包括兩 種類型讀寫請求用戶下發(fā)的請求以及控制器自身更新元數據的請求。一般通過記錄上 一個用戶讀寫請求位置來保存當前磁盤的I/O位置,這種方式僅適用于追蹤用戶下發(fā)的請 求。除了用戶下發(fā)的讀寫請求,成員磁盤上還有元數據更新請求,處理這些請求時候同樣要 記錄當前I/O位置。在本發(fā)明一個實施例中,可以兼顧成員磁盤上全部I/O請求,準確標示 當前I/O位置。讀取塊劃分模塊觀劃分成員磁盤的讀取塊區(qū)間大小是為了實現(xiàn)多個成員磁盤并 發(fā)讀取,由讀取塊劃分模塊觀自動設置。在自動設置時候,讀取塊劃分模塊觀列舉一些區(qū) 間值,分別測試這些區(qū)間值,選擇并發(fā)效能最好的(如64k,32k)。測試區(qū)間值時候,順序讀 取成員磁盤,從一個成員磁盤上讀取一定區(qū)間大小的數據,從另一塊成員磁盤上讀取下一 個區(qū)間大小的數據,如果采用該區(qū)間大小,另一塊成員磁盤讀取的下一個區(qū)間數據在緩存 中被大部分命中,且兩塊磁盤讀效能接近,說明采用該區(qū)間大小比較合適。因此,可以據此 將成員磁盤的讀取塊區(qū)間設大小置為該固定值。另外,在劃分成員磁盤的讀取塊區(qū)間大小時,讀取塊劃分模塊觀還可以考慮磁盤 設備類型,不同類型具有不同的讀寫效能。在RAIDl中,處理寫請求時候數據會平行寫入每 個磁盤,因此數據塊(CHUNK)大小對寫效能沒有影響;處理讀請求時候CHUNK是從磁盤讀取 的最小單位,CHUNK大小對設備效能影響非常明顯,因此需要設置合適的CHUNK大小。一般 而言,大塊文件讀寫時讀取塊劃分模塊觀采用較大CHUNK大小系統(tǒng)消耗會小點,而小文件 讀寫時讀取塊劃分模塊觀采用較小CHUNK比較適宜。其次,還可以考慮到磁盤設備的預讀設置,為了提高讀取時候在緩存中的命中率, 一般系統(tǒng)都會提前把一定區(qū)間數據讀進緩存。從而,計算成員磁盤合適的讀取區(qū)間大小。這 樣當一塊成員磁盤讀取同時,其它成員磁盤才能準確定位并讀取其它區(qū)間。再者,設定合適的CHUNK大小,需要綜合考慮文件系統(tǒng),磁盤類型,系統(tǒng)配置等多 重因素。因此,讀取塊劃分模塊觀還可以為用戶設置CHUNK大小留下接口。S卩,讀取塊區(qū) 間大小也可以根據訪問特點,作為效能調節(jié)的一個參數供用戶設置或指定。讀請求處理模塊觀則綜合考慮上述統(tǒng)計信息,把讀取請求分散到多個成員磁盤 上,動態(tài)平衡各個成員磁盤間負擔,可以達到優(yōu)化RAIDl讀效能的目的。
5
具體來說,在每次讀取請求到來時,讀請求處理模塊觀首先判斷請求位于的當前 CHUNK是否已經被某個成員磁盤提前讀出,如果是就把請求分配給這個成員磁盤。如果沒有 被提前讀出,根據成員磁盤的繁忙程度來選擇目標磁盤若存在空閑的成員磁盤時,根據讀 取請求的位置選擇一個空閑的成員磁盤作為目標磁盤以執(zhí)行讀取區(qū)間大小的數據讀取。在 選擇目標磁盤讀取的同時,讀請求處理模塊觀再次檢查其它磁盤的繁忙程度。如果存在空 閑磁盤,將這個空閑磁盤設置為新的目標磁盤,通知其讀取下一個CHUNK數據。這樣,實際上就有兩個磁盤在并發(fā)讀取,并且讀取的區(qū)間位置前后連續(xù)。新的目標 磁盤讀取出的數據將放入緩存,并會記錄下新的目標磁盤在陣列中的順序與讀取的位置。 這樣,當新的讀取請求到來時,讀請求處理模塊觀判斷新請求是否位于新的目標磁盤讀取 出的區(qū)間范圍內。如果位于,將這些請求發(fā)送給新的目標磁盤,因為這些數據已經讀入緩 存,讀請求將從緩存中獲取數據并很快返回。若新的讀取請求的位置不在新的目標磁盤的 讀取區(qū)間范圍內,則繼續(xù)根據成員磁盤的繁忙程度選擇一個空閑成員磁盤作為目標磁盤以 分配該新的讀取請求。讀請求處理模塊觀這種讀取當前目標磁盤同時尋找新的目標磁盤 動作會繼續(xù)下去。在一個實施例中,讀請求處理模塊觀還可以進一步結合空閑成員磁盤中距離讀 取請求的位置最近的當前I/O位置選擇對應的目標磁盤。也就是說,如果I/O位置最接近, 且磁盤不處于繁忙狀態(tài),選擇當前磁盤作為目標磁盤;如果I/O位置最接近,但磁盤處于繁 忙狀態(tài),選擇其它磁盤中當前I/O位置比較接近的作為目標磁盤。圖3給出了本發(fā)明RAIDl設備的讀取方法流程圖,如圖所示,包括以下步驟在 接收到RAIDl設備數據的讀取請求時,統(tǒng)計RAIDl設備所包含的各個成員磁盤的當前狀態(tài) 信息(步驟20 ;然后,根據請求讀取的數據大小,劃分成員磁盤的讀取區(qū)間大小(步驟 204);最后,根據各個成員磁盤的當前狀態(tài)信息以及讀取區(qū)間大小,將讀取請求分配到成員 磁盤上執(zhí)行并行數據讀取(步驟208)。在一個實施例中,所統(tǒng)計的各個成員磁盤的當前狀態(tài)信息包括成員磁盤的繁忙 程度和/或當前I/O位置。成員磁盤繁忙程度可以根據操作系統(tǒng)記錄的磁盤自開機以來讀 寫請求總數,統(tǒng)計磁盤讀寫請求變化情況,并且動態(tài)更新數據。根據操作系統(tǒng)提供的這些信 息,可以統(tǒng)計磁盤一個時間段到現(xiàn)在的繁忙程度。另外,對于成員磁盤的當前I/O位置統(tǒng)計,在RAIDl控制器內,成員磁盤上可以包 括兩種類型讀寫請求用戶下發(fā)的請求以及控制器自身更新元數據的請求。因此,成員磁盤 的當前I/O位置可以根據上一個讀寫請求的位置確定。在存在元數據更新請求時,當前I/ 0位置則根據元數據的更新請求確定。劃分成員磁盤的讀取塊區(qū)間大小是為了實現(xiàn)多個成員磁盤并發(fā)讀取,可由RAIDl 控制器自動設置。在自動設置時候,列舉一些區(qū)間值,分別測試這些區(qū)間值,選擇并發(fā)效能 最好的(如64k,32k)。測試區(qū)間值時候,順序讀取成員磁盤,從一個成員磁盤上讀取一定區(qū) 間大小的數據,從另一塊成員磁盤上讀取下一個區(qū)間大小的數據,如果采用該區(qū)間大小,另 一塊成員磁盤讀取的下一個區(qū)間數據在緩存中被大部分命中,且兩塊磁盤讀效能接近,說 明采用該區(qū)間大小比較合適。因此,可以據此將各個成員磁盤的讀取塊區(qū)間設大小置為該 固定值。另外,在劃分各個成員磁盤的讀取塊區(qū)間大小時,還可以考慮磁盤設備類型,不同類型具有不同的讀寫效能。處理讀請求時候CHUNK是從磁盤讀取的最小單位,CHUNK大小 對設備效能影響非常明顯,因此需要設置合適的CHUNK大小。一般而言,大塊文件讀寫時采 用較大CHUNK大小系統(tǒng)消耗會小點,而小文件讀寫時采用較小CHUNK比較適宜。其次,還可以考慮到磁盤設備的預讀設置,為了提高讀取時候在緩存中的命中率, 一般系統(tǒng)都會提前把一定區(qū)間數據讀進緩存。從而,計算成員磁盤合適的讀取區(qū)間大小。這 樣當一塊成員磁盤讀取同時,其它成員磁盤才能準確定位并讀取其它區(qū)間。再者,設定合適的CHUNK大小,需要綜合考慮文件系統(tǒng),磁盤類型,系統(tǒng)配置等多 重因素。因此,本方法還可以包括為用戶設置CHUNK大小留下接口的步驟。即,讀取塊區(qū)間 大小也可以根據訪問特點,作為效能調節(jié)的一個參數供用戶設置或指定。通過綜合考慮上述統(tǒng)計信息以及合適大小的成員磁盤讀取區(qū)間,把讀取請求分散 到多個成員磁盤上,動態(tài)平衡各個成員磁盤間負擔,可以達到優(yōu)化RAIDl讀效能的目的。具體來說,在每次讀取請求到來時,對于沒有被提前讀出的數據,根據成員磁盤的 繁忙程度來選擇目標磁盤若存在空閑的成員磁盤時,根據讀取請求的位置選擇一個空閑 的成員磁盤作為目標磁盤以執(zhí)行讀取區(qū)間大小的數據讀取。在選擇目標磁盤讀取的同時, 再次檢查其它磁盤的繁忙程度。如果存在空閑磁盤,將這個空閑磁盤設置為新的目標磁盤, 通知其讀取下一個CHUNK數據。這樣,兩個磁盤并發(fā)讀取,并且讀取的區(qū)間位置前后連續(xù)。新的目標磁盤讀取出的 數據將放入緩存,并會記錄下新的目標磁盤在陣列中的順序與讀取的位置。這樣,當新的讀 取請求到來時,首先判斷新請求是否位于新的目標磁盤讀取出的區(qū)間范圍內。如果位于,將 這些請求發(fā)送給新的目標磁盤,因為這些數據已經讀入緩存,讀請求將從緩存中獲取數據 并很快返回。若新的讀取請求的位置不在新的目標磁盤的讀取區(qū)間范圍內,則繼續(xù)根據成 員磁盤的繁忙程度選擇一個空閑成員磁盤作為目標磁盤以分配該新的讀取請求。這種讀取 當前目標磁盤同時尋找新的目標磁盤動作會繼續(xù)下去。當前I/O位置關系來選擇目標磁盤如果I/O位置最接近,且磁盤不處于繁忙狀 態(tài),選擇當前磁盤作為目標磁盤;如果I/O位置最接近,但磁盤處于繁忙狀態(tài),選擇其它磁 盤中當前I/O位置比較接近的作為目標磁盤。圖4給出了本發(fā)明一個實施例的RAIDl設備的讀取方法流程圖,在該實施例中,本 發(fā)明的讀取方法同時考慮了成員磁盤的當前I/O位置與繁忙程度等當前狀態(tài)信息。具體來說,RAIDl設備首先接收到新的讀請求以讀取其中的數據(步驟30 ,之后 會判斷讀請求的數據是否被某個成員磁盤預先讀出(步驟304),這里的預先讀出是針對之 前存在讀請求的數據緩存讀取操作,在接收的讀請求為首次請求時,該步驟則可以略去。如果沒有被提前讀出,則根據讀請求的位置和成員磁盤當前I/O位置關系以及成 員磁盤當前繁忙程度來選擇目標磁盤處理讀請求(步驟306)如果I/O位置最接近,且磁 盤不處于繁忙狀態(tài),選擇當前磁盤作為目標磁盤;如果I/O位置最接近,但磁盤處于繁忙狀 態(tài),選擇其它磁盤中當前I/O位置比較接近的作為目標磁盤。然后,在步驟306中選擇目標磁盤讀取的同時,再次檢查其它成員磁盤的繁忙程 度。如果存在空閑磁盤,將這個空閑磁盤設置為新的目標磁盤,并從該空閑成員磁盤上讀取 與該請求相鄰的下一個區(qū)間數據(步驟308),并將讀取出的數據將放入緩存。最后,將讀請求對應的直接讀取數據或者緩存讀取數據返回(步驟310)。重復上
7述步驟,即能夠不斷地處理每次的RAIDl數據讀取請求。圖5給出了利用本發(fā)明對由兩塊成員磁盤組成的RAIDl進行數據讀取的例子,其 中成員磁盤30、40上分別存儲了相同的數據A,B, C,D。假定每個數據對應一個讀取區(qū)間, 這四個數據連續(xù)存儲,用戶需要讀取數據A時,首先選擇成員磁盤30作為目標磁盤讀取數 據A,讀取同時檢查成員磁盤40的狀態(tài)。如果設備處于閑置狀態(tài),則選擇成員磁盤40作為新的目標磁盤,通知其讀取數據 B,這樣當用戶需要讀取數據B時候,把成員磁盤40作為目標磁盤,因為數據已經讀出,可以 直接返給用戶。這個動作會持續(xù)下去直至完成相應的讀請求。由于RAIDl采用鏡像技術,成員磁盤上保存的數據一致,因此本發(fā)明綜合考慮多 方面因素,例如成員磁盤當前I/O位置,磁盤效能,磁盤繁忙程度,用戶讀請求連續(xù)性等等, 從而控制多個成員磁盤并發(fā)高效地協(xié)同工作。這樣,讀取數據時候將不再有閑置磁盤,尤其 是順序讀大文件情況下。從而提高了 RAIDl設備的讀取效能,縮短用戶讀請求響應時間。當然,本發(fā)明還可有其它多種實施例,在不背離本發(fā)明精神及其實質的情況下,熟 悉本領域的技術人員當可根據本發(fā)明作出各種相應的改變和變形,但這些相應的改變和變 形都應屬于本發(fā)明所附的權利要求的保護范圍。
權利要求
1.一種RAIDl設備的讀取裝置,其特征在于,所述讀取裝置包括信息統(tǒng)計模塊,所述信息統(tǒng)計模塊在接收到RAIDl設備數據的讀取請求時統(tǒng)計RAIDl 設備所包含的各個成員磁盤的當前狀態(tài)信息;讀取塊劃分模塊,所述讀取塊劃分模塊根據所述請求讀取的數據的大小,劃分成員磁 盤的讀取塊區(qū)間大?。灰约白x請求處理模塊,所述讀請求處理模塊根據各個成員磁盤的當前狀態(tài)信息以及讀取塊 區(qū)間大小,將所述讀取請求分配到成員磁盤上執(zhí)行并行數據讀取。
2.如權利要求1所述的RAIDl設備的讀取裝置,其特征在于,所述成員磁盤的當前狀態(tài) 信息包括成員磁盤的繁忙程度和/或當前I/O位置。
3.如權利要求2所述的RAIDl設備的讀取裝置,其特征在于,所述當前I/O位置根據上 一個讀寫請求的位置和/或根據元數據的更新請求確定。
4.如權利要求1所述的RAIDl設備的讀取裝置,其特征在于,所述讀取塊劃分模塊還根 據成員磁盤的設備類型及/或成員磁盤的預讀設置來確定所述讀取塊區(qū)間大小。
5.一種RAIDl設備的讀取方法,其特征在于,所述讀取方法包括以下步驟a)在接收到RAIDl設備數據的讀取請求時,統(tǒng)計RAIDl設備所包含的各個成員磁盤的 當前狀態(tài)信息;b)根據請求讀取的數據大小,劃分成員磁盤的讀取區(qū)間大??;以及c)根據各個成員磁盤的當前狀態(tài)信息以及讀取區(qū)間大小,將所述讀取請求分配到成員 磁盤上執(zhí)行并行數據讀取。
6.如權利要求5所述的RAIDl設備的讀取方法,其特征在于,所述成員磁盤的當前狀態(tài) 信息包括成員磁盤的繁忙程度和/或當前I/O位置。
7.如權利要求6所述的RAIDl設備的讀取方法,其特征在于,所述當前I/O位置根據上 一個讀寫請求的位置和/或根據元數據的更新請求確定。
8.如權利要求5所述的RAIDl設備的讀取方法,其特征在于,所述讀取區(qū)間大小還進一 步根據成員磁盤的設備類型及/或成員磁盤的預讀設置來確定。
9.如權利要求6所述的RAIDl設備的讀取方法,其特征在于,所述步驟c包括在接收到所述讀取請求時,檢查各個成員磁盤的繁忙程度;若存在空閑的成員磁盤時,根據所述讀取請求的位置選擇一個空閑的成員磁盤作為第 一目標磁盤以執(zhí)行所述讀取區(qū)間大小的數據讀取;在執(zhí)行所述數據讀取的同時再次檢查其它成員磁盤的繁忙程度;若存在空閑的成員磁盤時,選擇另一個空閑的成員磁盤作為第二目標磁盤執(zhí)行所述讀 取區(qū)間大小的下一個區(qū)間的數據讀取,并放入緩存中;以及在接到新的讀取請求時,若所述新的讀取請求的位置位于所述第二目標磁盤的讀取區(qū) 間范圍內,則從所述緩存中讀取對應的數據。
10.如權利要求9所述的RAIDl設備的讀取方法,其特征在于,進一步根據空閑成員磁 盤中距離所述讀取請求的位置最近的當前I/O位置選擇所述目標磁盤。
全文摘要
本發(fā)明公開了一種RAID1設備的讀取方法及裝置,該裝置包括信息統(tǒng)計模塊,在接收到RAID1設備數據的讀取請求時統(tǒng)計RAID1設備所包含的各個成員磁盤的當前狀態(tài)信息;讀取塊劃分模塊,根據所述請求讀取的數據的大小,劃分成員磁盤的讀取塊區(qū)間大??;以及讀請求處理模塊,根據各個成員磁盤的當前狀態(tài)信息以及讀取塊區(qū)間大小,將所述讀取請求分配到成員磁盤上執(zhí)行并行數據讀取,通知空閑成員磁盤將下一個區(qū)間數據提前讀入緩存。本發(fā)明能夠提高了RAID1設備的讀取效能。
文檔編號G06F12/08GK102081509SQ20091025332
公開日2011年6月1日 申請日期2009年11月30日 優(yōu)先權日2009年11月30日
發(fā)明者姚海挺, 陳玄同 申請人:英業(yè)達股份有限公司