專利名稱:一種磁盤io請求隊列調度的方法
技術領域:
本發(fā)明涉及計算機存儲器技術領域,尤其涉及一種磁盤 ο請求隊列調度的方法。
背景技術:
當磁盤驅動器接到操作系統(tǒng)的讀IO操作指令的時候,就會給磁盤發(fā)出一個讀數(shù)據(jù)的指令,并同時將要讀取的數(shù)據(jù)塊的地址傳遞給磁盤,然后磁盤會將讀取到的數(shù)據(jù)傳給磁盤驅動器,并由磁盤驅動器返回給操作系統(tǒng),完成一個讀IO的操作;同樣的,一個寫IO的操作也類似,磁盤驅動器接到寫的IO操作的指令和要寫入的數(shù)據(jù),并將其傳遞給磁盤,磁盤在數(shù)據(jù)寫入完成之后將操作結果傳遞回磁盤驅動器,再由磁盤驅動器返回給操作系統(tǒng), 完成一個寫IO的操作。單個IO操作指的就是完成一個寫IO或者是讀IO的操作。磁盤驅動器可能會一次對磁盤組發(fā)出一連串的多個IO指令,這多個IO指令不能立即執(zhí)行,而是以隊列的形式緩存起來,稱之為IO請求隊列。傳統(tǒng)的磁盤IO隊列排列主要都是依據(jù)IO數(shù)據(jù)在磁盤中扇區(qū)的先后順序,按照從前到后的順序從IO請求隊列中提取出 IO指令依次執(zhí)行。但是在實際應用中,不同IO指令的實時性要求是不一樣的。當有大量的磁盤IO讀寫請求時,可能讀寫一般的文件中數(shù)據(jù)要求寫入存儲設備實時性并不那么高,但有時也存在對某些關鍵數(shù)據(jù)(比如元數(shù)據(jù),配置信息)都要求盡快實時寫入存儲系統(tǒng),甚至業(yè)務在確保數(shù)據(jù)實時寫入磁盤之前,業(yè)務進程一直處于等待狀態(tài),嚴重影響了業(yè)務性能。
發(fā)明內容
本發(fā)明提供了一種磁盤IO請求隊列調度的方法,可以保證實時性要求高的數(shù)據(jù)優(yōu)先執(zhí)行。本發(fā)明實施例提供一種磁盤IO請求隊列調度的方法,包括如下步驟α、文件系統(tǒng)在生成IO請求時,判斷該IO請求是否為高實時性IO請求,若是,執(zhí)行步驟B,否則執(zhí)行步驟C;B、對該IO請求分配一個高優(yōu)先級指示,然后執(zhí)行步驟C ;C、將該IO請求發(fā)送至磁盤驅動器;D、磁盤驅動器收到IO請求后,判斷IO請求是否含有高優(yōu)先級指示,若是,執(zhí)行步驟E,否則執(zhí)行步驟F;E、將該IO請求送入IO請求隊列的最前位置,并返回步驟A ;F、將該IO請求按照扇區(qū)位置排序,送入IO請求隊列,并返回步驟A。較佳地,步驟A所述判斷結果為否,則進一步包括對該IO請求分配默認優(yōu)先級指示,然后執(zhí)行步驟C。較佳地,步驟D所述磁盤驅動器收到IO請求后進一步包括磁盤驅動器給每個IO 請求分配一個計時器,如果計時器超時該計時器對應的IO請求還未執(zhí)行,則直接執(zhí)行該IO 請求。從以上技術方案可以看出,針對每個IO請求增加一個優(yōu)先級屬性,對于個別關鍵10,可以設置較高的優(yōu)先級屬性,優(yōu)先級高的IO請求會相對優(yōu)先處理。本發(fā)明方案在IO隊列調度中同時考慮IO數(shù)據(jù)重要性,優(yōu)先處理實時性要求高的關鍵數(shù)據(jù)。本發(fā)明對于關鍵的數(shù)據(jù)比較少,但是這些關鍵實時性、安全性要求非常高的業(yè)務應用,作用較為明顯。
圖1為本發(fā)明實施例提供的一種磁盤IO請求隊列調度的流程圖。
具體實施例方式本發(fā)明提出針對每個IO請求增加一個優(yōu)先級屬性,對于個別關鍵10,可以設置較高的優(yōu)先級屬性,優(yōu)先級高的IO請求會相對優(yōu)先處理。業(yè)務數(shù)據(jù)讀寫時候,可以標示一下該IO的優(yōu)先級,默認的IO優(yōu)先級屬性是最低“0”或者不標示優(yōu)先級,同等優(yōu)先級的IO依然按照扇區(qū)位置排序。另外為了防止某些低優(yōu)先級的IO長時間得不到處理,可以設置一個時間閾值,某些IO長時間得不到處理時候,會適當處理一下。為使本發(fā)明技術方案的原理、特點以及技術效果更加清楚,以下通過具體實施例對本發(fā)明方案進行詳細闡述。圖1示出了本發(fā)明實施例提供的一種磁盤IO請求隊列調度的流程,包括如下步驟步驟101 文件系統(tǒng)在生成IO請求時,判斷該IO請求是否為高實時性IO請求,若是,執(zhí)行步驟102,否則執(zhí)行步驟103。較佳地,將關鍵數(shù)據(jù)(比如元數(shù)據(jù),配置信息)的IO請求作為高實時性IO請求。步驟102 對該IO請求分配一個高優(yōu)先級指示,然后執(zhí)行步驟104 ;步驟103 對該IO請求分配默認優(yōu)先級指示,然后執(zhí)行步驟104?;蛘?,不分配默認優(yōu)先級指示,直接執(zhí)行步驟104。步驟104 將該IO請求發(fā)送至磁盤驅動器。步驟105 磁盤驅動器收到IO請求后,判斷IO請求的優(yōu)先級指示是高優(yōu)先級指示還是默認優(yōu)先級指示,若是高優(yōu)先級指示執(zhí)行步驟106,若是默認優(yōu)先級指示執(zhí)行步驟 107。所述判斷也可以是判斷IO請求是否具有優(yōu)先級指示,若有則執(zhí)行步驟106,否則執(zhí)行步驟107。步驟106 將該IO請求送入IO請求隊列的最前位置,并返回步驟101。步驟107 將該IO請求按照扇區(qū)位置排序,送入IO請求隊列,并返回步驟101。較佳地,磁盤驅動器收到IO請求后,還會給每個IO請求分配一個計時器,如果計時器超時該計時器對應的IO請求還未執(zhí)行,則直接執(zhí)行該IO請求。本發(fā)明提出的磁盤IO請求隊列調度的方法,在IO隊列調度中同時考慮IO數(shù)據(jù)重要性,優(yōu)先處理實時性要求高的關鍵數(shù)據(jù)。本發(fā)明對于關鍵的數(shù)據(jù)比較少,但是這些關鍵實時性、安全性要求非常高的業(yè)務應用,作用較為明顯。以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本發(fā)明保護的范圍之內。
權利要求
1.一種磁盤IO請求隊列調度的方法,其特征在于,包括如下步驟A、文件系統(tǒng)在生成IO請求時,判斷該IO請求是否為高實時性IO請求,若是,執(zhí)行步驟 B,否則執(zhí)行步驟C;B、對該IO請求分配一個高優(yōu)先級指示,然后執(zhí)行步驟C;C、將該IO請求發(fā)送至磁盤驅動器;D、磁盤驅動器收到IO請求后,判斷IO請求是否含有高優(yōu)先級指示,若是,執(zhí)行步驟E, 否則執(zhí)行步驟F;E、將該IO請求送入IO請求隊列的最前位置,并返回步驟A;F、將該IO請求按照扇區(qū)位置排序,送入IO請求隊列,并返回步驟A。
2.根據(jù)權利要求1所述的方法,其特征在于,步驟A所述判斷結果為否,則進一步包括 對該IO請求分配默認優(yōu)先級指示,然后執(zhí)行步驟C。
3.根據(jù)權利要求1所述的方法,其特征在于,步驟D所述磁盤驅動器收到IO請求后進一步包括磁盤驅動器給每個IO請求分配一個計時器,如果計時器超時該計時器對應的IO 請求還未執(zhí)行,則直接執(zhí)行該IO請求。
全文摘要
本發(fā)明提供了一種磁盤IO請求隊列調度的方法,包括如下步驟A、文件系統(tǒng)在生成IO請求時,判斷該IO請求是否為高實時性IO請求,若是,執(zhí)行步驟B,否則執(zhí)行步驟C;B、對該IO請求分配一個高優(yōu)先級指示,然后執(zhí)行步驟C;C、將該IO請求發(fā)送至磁盤驅動器;D、磁盤驅動器收到IO請求后,判斷IO請求是否含有高優(yōu)先級指示,若是,執(zhí)行步驟E,否則執(zhí)行步驟F;E、將該IO請求送入IO請求隊列的最前位置,并返回步驟A;F、將該IO請求按照扇區(qū)位置排序,送入IO請求隊列,并返回步驟A。
文檔編號G06F3/06GK102402401SQ20111041619
公開日2012年4月4日 申請日期2011年12月13日 優(yōu)先權日2011年12月13日
發(fā)明者金振成 申請人:云海創(chuàng)想信息技術(無錫)有限公司, 深圳市創(chuàng)新科信息技術有限公司