本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,特別涉及一種磁盤管理方法及裝置。
背景技術(shù):
為了提高業(yè)務(wù)數(shù)據(jù)的安全性,通常采用冗余磁盤陣列存儲(chǔ)業(yè)務(wù)數(shù)據(jù),當(dāng)存儲(chǔ)業(yè)務(wù)數(shù)據(jù)的磁盤故障時(shí),可根據(jù)冗余磁盤陣列中未發(fā)生故障的磁盤中存儲(chǔ)的數(shù)據(jù)將故障磁盤中存儲(chǔ)的業(yè)務(wù)數(shù)據(jù)重建至一塊新的磁盤中。為了確保上層應(yīng)用能夠正常使用磁盤,在磁盤重建過程中,內(nèi)部重建請(qǐng)求和上層應(yīng)用提供的業(yè)務(wù)數(shù)據(jù)需要共享磁盤帶寬。
目前,在磁盤的各個(gè)存儲(chǔ)地址下分別寫入對(duì)應(yīng)的業(yè)務(wù)數(shù)據(jù)時(shí),通常根據(jù)接收各個(gè)業(yè)務(wù)數(shù)據(jù)的時(shí)間順序,依次將各個(gè)業(yè)務(wù)數(shù)據(jù)寫入對(duì)應(yīng)的存儲(chǔ)地址。但是,當(dāng)磁盤處于重建狀態(tài),且重建區(qū)域和各個(gè)存儲(chǔ)地址之間的位置距離較遠(yuǎn)時(shí),磁頭在重建區(qū)域以及各個(gè)存儲(chǔ)地址之間發(fā)生移動(dòng),需要占用較長的響應(yīng)時(shí)間,使得磁盤無法在較短的時(shí)間內(nèi)完成重建,磁盤重建效率極低。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供了一種磁盤管理方法及裝置,可提高磁盤重建的效率。
第一方面,本發(fā)明提供了一種磁盤管理方法,包括:
預(yù)先設(shè)置緩存單元;
接收并解析訪問請(qǐng)求,以獲取業(yè)務(wù)數(shù)據(jù)及存儲(chǔ)地址,并將所述業(yè)務(wù)數(shù)據(jù)及存儲(chǔ)地址存儲(chǔ)至所述緩存單元;
確定所述緩存單元中存儲(chǔ)的所述存儲(chǔ)地址的當(dāng)前數(shù)量,在所述當(dāng)前數(shù)量達(dá)到預(yù)設(shè)數(shù)量時(shí),檢測是否存在重建進(jìn)程重建待管理磁盤;
當(dāng)存在重建進(jìn)程重建所述待管理磁盤時(shí),對(duì)所述重建進(jìn)程進(jìn)行掛起處理,并確定所述待管理磁盤中正在重建的數(shù)據(jù)對(duì)應(yīng)的重建區(qū)域;
從各個(gè)所述存儲(chǔ)地址中,確定出至少一個(gè)距離所述重建區(qū)域的地址偏移量不大于預(yù)設(shè)閾值的目標(biāo)存儲(chǔ)地址;
將各個(gè)所述目標(biāo)存儲(chǔ)地址分別對(duì)應(yīng)的業(yè)務(wù)數(shù)據(jù)寫入所述待管理磁盤,并重啟所述重建進(jìn)程。
優(yōu)選地,
所述將各個(gè)所述目標(biāo)存儲(chǔ)地址分別對(duì)應(yīng)的業(yè)務(wù)數(shù)據(jù)寫入所述待管理磁盤,包括:
按照地址先后順序,利用各個(gè)所述目標(biāo)存儲(chǔ)地址形成第一順序隊(duì)列;
根據(jù)所述第一順序隊(duì)列,依次將各個(gè)所述目標(biāo)存儲(chǔ)地址分別對(duì)應(yīng)的業(yè)務(wù)數(shù)據(jù)寫入所述待管理磁盤。
優(yōu)選地
當(dāng)不存在重建進(jìn)程重建所述待管理磁盤時(shí),利用各個(gè)所述存儲(chǔ)地址形成第二順序隊(duì)列;
根據(jù)所述第二順序隊(duì)列,依次將各個(gè)所述存儲(chǔ)地址分別對(duì)應(yīng)的業(yè)務(wù)數(shù)據(jù)寫入所述待管理磁盤中。
優(yōu)選地,
所述待管理磁盤包括:設(shè)定數(shù)量個(gè)獨(dú)立存儲(chǔ)區(qū)域,且每一個(gè)所述存儲(chǔ)區(qū)域分別對(duì)應(yīng)一個(gè)順序號(hào);
所述存儲(chǔ)地址,包括:順序號(hào)。
優(yōu)選地,
所述獨(dú)立存儲(chǔ)區(qū)域的大小,包括:128K;
和/或,
所述預(yù)設(shè)閾值,包括:800。
第二方面,本發(fā)明實(shí)施例提供了一種磁盤管理裝置,包括:
設(shè)置模塊,用于預(yù)先設(shè)置緩存單元;
緩存處理模塊,用于接收并解析訪問請(qǐng)求,以獲取業(yè)務(wù)數(shù)據(jù)及存儲(chǔ)地址,并將所述業(yè)務(wù)數(shù)據(jù)及存儲(chǔ)地址存儲(chǔ)至所述緩存單元;
檢測模塊,用于確定所述緩存單元中存儲(chǔ)的所述存儲(chǔ)地址的當(dāng)前數(shù)量,在所述當(dāng)前數(shù)量達(dá)到預(yù)設(shè)數(shù)量時(shí),檢測是否存在重建進(jìn)程重建待管理磁盤;
重建處理模塊,用于當(dāng)存在重建進(jìn)程重建所述待管理磁盤時(shí),對(duì)所述重建進(jìn)程進(jìn)行掛起處理,并確定所述待管理磁盤中正在重建的數(shù)據(jù)對(duì)應(yīng)的重建區(qū)域;
確定模塊,用于從各個(gè)所述存儲(chǔ)地址中,確定出至少一個(gè)距離所述重建區(qū)域的地址偏移量不大于預(yù)設(shè)閾值的目標(biāo)存儲(chǔ)地址;
第一數(shù)據(jù)處理模塊,用于將各個(gè)所述目標(biāo)存儲(chǔ)地址分別對(duì)應(yīng)的業(yè)務(wù)數(shù)據(jù)寫入所述待管理磁盤,并重啟所述重建進(jìn)程。
優(yōu)選地,
所述第一數(shù)據(jù)處理模塊,包括:隊(duì)列構(gòu)建單元和數(shù)據(jù)處理單元;其中,
所述隊(duì)列構(gòu)建單元,用于按照地址先后順序,利用各個(gè)所述目標(biāo)存儲(chǔ)地址形成第一順序隊(duì)列;
所述數(shù)據(jù)處理單元,用于根據(jù)所述第一順序隊(duì)列,依次將各個(gè)所述目標(biāo)存儲(chǔ)地址分別對(duì)應(yīng)的業(yè)務(wù)數(shù)據(jù)寫入所述待管理磁盤。
優(yōu)選地,
還包括:隊(duì)列構(gòu)建模塊和第二數(shù)據(jù)處理模塊,其中,
所述隊(duì)列構(gòu)建模塊,用于當(dāng)不存在重建進(jìn)程重建所述待管理磁盤時(shí),利用各個(gè)所述存儲(chǔ)地址形成第二順序隊(duì)列;
所述第二數(shù)據(jù)處理模塊,用于根據(jù)所述第二順序隊(duì)列,依次將各個(gè)所述存儲(chǔ)地址分別對(duì)應(yīng)的業(yè)務(wù)數(shù)據(jù)寫入所述待管理磁盤中。
第三方面,本發(fā)明實(shí)施例提供了一種可讀介質(zhì),包括執(zhí)行指令,當(dāng)存儲(chǔ)控制器的處理器執(zhí)行所述執(zhí)行指令時(shí),所述存儲(chǔ)控制器執(zhí)行第一方面中任一項(xiàng)所述的方法。
第四方面,本發(fā)明實(shí)施例提供了一種存儲(chǔ)控制器,包括:處理器、存儲(chǔ)器和總線;
所述處理器和所述存儲(chǔ)器通過所述總線連接;
所述存儲(chǔ)器,當(dāng)所述存儲(chǔ)控制器運(yùn)行時(shí),所述處理器執(zhí)行所述存儲(chǔ)器存儲(chǔ)的所述執(zhí)行指令,以使所述存儲(chǔ)控制器執(zhí)行第一方面中任一項(xiàng)所述的方法。
本發(fā)明實(shí)施例提供了一種磁盤管理方法及裝置,通過緩存單元緩存多個(gè)業(yè)務(wù)數(shù)據(jù)及每一個(gè)業(yè)務(wù)數(shù)據(jù)分別對(duì)應(yīng)的存儲(chǔ)地址,當(dāng)存在重建進(jìn)程正在重建待管理磁盤時(shí),對(duì)重建進(jìn)程進(jìn)行掛起處理,并確定出正在重建的數(shù)據(jù)對(duì)應(yīng)的重建區(qū)域,然后從緩存單元存儲(chǔ)的各個(gè)存儲(chǔ)地址中確定出至少一個(gè)距離重建區(qū)域的地址偏移量不大于預(yù)設(shè)閾值的目標(biāo)存儲(chǔ)地址,進(jìn)而將各個(gè)目標(biāo)存儲(chǔ)地址分別對(duì)應(yīng)的業(yè)務(wù)數(shù)據(jù)寫入待管理磁盤,然后再重啟重建進(jìn)程。如此,通過將緩存單元存儲(chǔ)的多個(gè)業(yè)務(wù)數(shù)據(jù)中,距離重建區(qū)域較近的各個(gè)目標(biāo)存儲(chǔ)地址分別對(duì)應(yīng)的業(yè)務(wù)數(shù)據(jù)優(yōu)先寫入磁盤,磁頭在重建區(qū)域以及各個(gè)目標(biāo)存儲(chǔ)地址之間發(fā)生移動(dòng),移動(dòng)距離較近,不會(huì)占用較長的響應(yīng)時(shí)間,可提高磁盤重建效率。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本發(fā)明一實(shí)施例提供的一種磁盤管理方法的流程圖;
圖2是本發(fā)明一實(shí)施例提供的另一種磁盤管理方法的流程圖;
圖3是本發(fā)明一實(shí)施例提供的一種磁盤管理裝置的結(jié)構(gòu)示意圖;
圖4是本發(fā)明一實(shí)施例提供的磁盤管理裝置的結(jié)構(gòu)示意圖。
具體實(shí)施方式
為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例,基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)的前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
如圖1所示,本發(fā)明實(shí)施例提供了一種磁盤管理方法,包括:
步驟101,預(yù)先設(shè)置緩存單元;
步驟102,接收并解析訪問請(qǐng)求,以獲取業(yè)務(wù)數(shù)據(jù)及存儲(chǔ)地址,并將所述業(yè)務(wù)數(shù)據(jù)及存儲(chǔ)地址存儲(chǔ)至所述緩存單元;
步驟103,確定所述緩存單元中存儲(chǔ)的所述存儲(chǔ)地址的當(dāng)前數(shù)量,在所述當(dāng)前數(shù)量達(dá)到預(yù)設(shè)數(shù)量時(shí),檢測是否存在重建進(jìn)程重建待管理磁盤;
步驟104,當(dāng)存在重建進(jìn)程重建所述待管理磁盤時(shí),對(duì)所述重建進(jìn)程進(jìn)行掛起處理,并確定所述待管理磁盤中正在重建的數(shù)據(jù)對(duì)應(yīng)的重建區(qū)域;
步驟105,從各個(gè)所述存儲(chǔ)地址中,確定出至少一個(gè)距離所述重建區(qū)域的地址偏移量不大于預(yù)設(shè)閾值的目標(biāo)存儲(chǔ)地址;
步驟106,將各個(gè)所述目標(biāo)存儲(chǔ)地址分別對(duì)應(yīng)的業(yè)務(wù)數(shù)據(jù)寫入所述待管理磁盤,并重啟所述重建進(jìn)程。
本發(fā)明上述實(shí)施例中,通過緩存單元緩存多個(gè)業(yè)務(wù)數(shù)據(jù)及每一個(gè)業(yè)務(wù)數(shù)據(jù)分別對(duì)應(yīng)的存儲(chǔ)地址,當(dāng)存在重建進(jìn)程正在重建待管理磁盤時(shí),對(duì)重建進(jìn)程進(jìn)行掛起處理,并確定出正在重建的數(shù)據(jù)對(duì)應(yīng)的重建區(qū)域,然后從緩存單元存儲(chǔ)的各個(gè)存儲(chǔ)地址中確定出至少一個(gè)距離重建區(qū)域的地址偏移量不大于預(yù)設(shè)閾值的目標(biāo)存儲(chǔ)地址,進(jìn)而將各個(gè)目標(biāo)存儲(chǔ)地址分別對(duì)應(yīng)的業(yè)務(wù)數(shù)據(jù)寫入待管理磁盤,然后再重啟重建進(jìn)程。如此,通過將緩存單元存儲(chǔ)的多個(gè)業(yè)務(wù)數(shù)據(jù)中,距離重建區(qū)域較近的各個(gè)目標(biāo)存儲(chǔ)地址分別對(duì)應(yīng)的業(yè)務(wù)數(shù)據(jù)優(yōu)先寫入磁盤,磁頭在重建區(qū)域以及各個(gè)目標(biāo)存儲(chǔ)地址之間發(fā)生移動(dòng),移動(dòng)距離較近,不會(huì)占用較長的響應(yīng)時(shí)間,可提高磁盤重建效率。
相應(yīng)的,當(dāng)緩存單元中存儲(chǔ)的預(yù)設(shè)數(shù)量n個(gè)業(yè)務(wù)數(shù)據(jù)中,僅存在m(m為小于n的整數(shù))個(gè)業(yè)務(wù)數(shù)據(jù)對(duì)應(yīng)的存儲(chǔ)地址與重建區(qū)域之間的地址偏移量不大于預(yù)設(shè)閾值時(shí),剩余的n-m個(gè)業(yè)務(wù)數(shù)據(jù)可繼續(xù)保留在緩存單元中,m個(gè)業(yè)務(wù)數(shù)據(jù)及對(duì)應(yīng)的目標(biāo)存儲(chǔ)地址可作清除處理。如此,直到緩存單元中累計(jì)的業(yè)務(wù)數(shù)據(jù)或存儲(chǔ)地址的個(gè)數(shù)再次達(dá)到預(yù)設(shè)數(shù)量時(shí),執(zhí)行與上述步驟103至步驟106的技術(shù)方案,直到檢測出不存在重建進(jìn)程重建待管理磁盤時(shí),才以相應(yīng)的處理規(guī)則將緩存單元中存儲(chǔ)的各個(gè)業(yè)務(wù)數(shù)據(jù)全部寫入磁盤。
具體地,當(dāng)檢測出不存在重建進(jìn)程重建待管理磁盤時(shí),為了節(jié)約移動(dòng)磁頭時(shí)占用的時(shí)間開銷,具體可以通過如下方式實(shí)現(xiàn)將各個(gè)所述存儲(chǔ)地址分別對(duì)應(yīng)的業(yè)務(wù)數(shù)據(jù)寫入所述待管理磁盤中:利用各個(gè)所述存儲(chǔ)地址形成第二順序隊(duì)列;根據(jù)所述第二順序隊(duì)列,依次將各個(gè)所述存儲(chǔ)地址分別對(duì)應(yīng)的業(yè)務(wù)數(shù)據(jù)寫入所述待管理磁盤中。
同時(shí),所述待管理磁盤可以包括:設(shè)定數(shù)量個(gè)獨(dú)立存儲(chǔ)區(qū)域,且每一個(gè)所述存儲(chǔ)區(qū)域分別對(duì)應(yīng)一個(gè)順序號(hào);所述存儲(chǔ)地址,包括:順序號(hào)。
例如,緩存單元中存儲(chǔ)有業(yè)務(wù)數(shù)據(jù)A、業(yè)務(wù)數(shù)據(jù)B和業(yè)務(wù)數(shù)據(jù)C,存儲(chǔ)區(qū)域有6個(gè)獨(dú)立存儲(chǔ)區(qū)域,其順序號(hào)分別為1-6,且三個(gè)業(yè)務(wù)數(shù)據(jù)A、B、C分別對(duì)應(yīng)的存儲(chǔ)地址為順序號(hào)1、順序號(hào)6和順序號(hào)3,則根據(jù)其順序號(hào),將業(yè)務(wù)數(shù)據(jù)A-業(yè)務(wù)數(shù)據(jù)C-業(yè)務(wù)數(shù)據(jù)B依次寫入待管理磁盤中,磁頭根據(jù)此順序,從順序號(hào)1對(duì)應(yīng)的獨(dú)立存儲(chǔ)區(qū)域移動(dòng)至順序號(hào)3對(duì)應(yīng)的獨(dú)立存儲(chǔ)區(qū)域,然后再移動(dòng)至順序號(hào)6對(duì)應(yīng)的獨(dú)立存儲(chǔ)區(qū)域,從而使磁頭移動(dòng)距離最短,節(jié)約移動(dòng)磁頭時(shí)占用的時(shí)間開銷,提高數(shù)據(jù)處理速度。
進(jìn)一步的,為了避免磁頭在各個(gè)目標(biāo)存儲(chǔ)地址之間發(fā)生往復(fù)運(yùn)動(dòng),進(jìn)一步節(jié)約移動(dòng)磁頭時(shí)占用的時(shí)間開銷,以進(jìn)一步提高磁盤重建效率,本發(fā)明一個(gè)實(shí)施例中,步驟106的具體實(shí)施方式,可以包括:
按照地址先后順序,利用各個(gè)所述目標(biāo)存儲(chǔ)地址形成第一順序隊(duì)列;
根據(jù)所述第一順序隊(duì)列,依次將各個(gè)所述目標(biāo)存儲(chǔ)地址分別對(duì)應(yīng)的業(yè)務(wù)數(shù)據(jù)寫入所述待管理磁盤。
這里以待管理磁盤包括設(shè)定數(shù)量個(gè)獨(dú)立存儲(chǔ)區(qū)域,且每一個(gè)獨(dú)立存儲(chǔ)區(qū)域分別對(duì)應(yīng)一個(gè)順序號(hào);且存儲(chǔ)地址包括順序號(hào)為例。舉例來說,待管理磁盤中設(shè)定有20個(gè)獨(dú)立存儲(chǔ)區(qū)域,其中,第10個(gè)獨(dú)立存儲(chǔ)區(qū)域?yàn)橹亟▍^(qū)域,在緩存單元中,業(yè)務(wù)數(shù)據(jù)包括:業(yè)務(wù)數(shù)據(jù)A、業(yè)務(wù)數(shù)據(jù)B、業(yè)務(wù)數(shù)據(jù)C、業(yè)務(wù)數(shù)據(jù)D和業(yè)務(wù)數(shù)據(jù)E,其分別對(duì)應(yīng)的存儲(chǔ)地址為順序號(hào)17、順序號(hào)7、順序號(hào)5、順序號(hào)13和順序號(hào)6,這里以預(yù)設(shè)位置為5進(jìn)行舉例,則目標(biāo)存儲(chǔ)地址包括:順序號(hào)7、順序號(hào)5、順序號(hào)13和順序號(hào)6,根據(jù)各個(gè)目標(biāo)存儲(chǔ)地址的地址先后順序,形成第一順序隊(duì)列為:業(yè)務(wù)數(shù)據(jù)C-業(yè)務(wù)數(shù)據(jù)E-業(yè)務(wù)數(shù)據(jù)B-業(yè)務(wù)數(shù)據(jù)D,在根據(jù)此順序隊(duì)列依次將各個(gè)業(yè)務(wù)數(shù)據(jù)寫入待管理磁盤時(shí),磁頭根據(jù)此順序,從重建區(qū)域出發(fā),在按照對(duì)應(yīng)順序號(hào)順序?yàn)?-6-7-13的各個(gè)獨(dú)立存儲(chǔ)區(qū)域中順序移動(dòng),從而避免磁頭在各個(gè)目標(biāo)存儲(chǔ)地址之間發(fā)生往復(fù)運(yùn)動(dòng),進(jìn)一步節(jié)約移動(dòng)磁頭時(shí)占用的時(shí)間開銷,進(jìn)而進(jìn)一步提高了磁盤重建效率。應(yīng)當(dāng)理解的是,業(yè)務(wù)數(shù)據(jù)A及其對(duì)應(yīng)的存儲(chǔ)地址(順序號(hào)17)可暫時(shí)保留在緩存單元中,業(yè)務(wù)數(shù)據(jù)B、業(yè)務(wù)數(shù)據(jù)C、業(yè)務(wù)數(shù)據(jù)D和業(yè)務(wù)數(shù)據(jù)E及其分別對(duì)應(yīng)的存儲(chǔ)地址均可做刪除處理。
應(yīng)當(dāng)理解的是,每一個(gè)獨(dú)立存儲(chǔ)區(qū)域的大小可結(jié)合實(shí)際業(yè)務(wù)需求進(jìn)行合理設(shè)置,比如,各個(gè)獨(dú)立存儲(chǔ)區(qū)域的大小均設(shè)置為128K,或各個(gè)獨(dú)立存儲(chǔ)區(qū)域的大小均設(shè)置為256K。
應(yīng)當(dāng)理解的是,預(yù)設(shè)閾值也可根據(jù)實(shí)際業(yè)務(wù)需求進(jìn)行合理設(shè)置,比如將預(yù)設(shè)閾值設(shè)置為800。
為了更加清楚的說明本發(fā)明的技術(shù)方案及優(yōu)點(diǎn),如圖2所示,本發(fā)明實(shí)施例提供了一種磁盤管理方法,該方法可以包括以下步驟:
步驟201,設(shè)置緩存單元。
步驟202,接收并解析訪問請(qǐng)求,以獲取業(yè)務(wù)數(shù)據(jù)及存儲(chǔ)地址,并將業(yè)務(wù)數(shù)據(jù)及存儲(chǔ)地址存儲(chǔ)至緩存單元。
本發(fā)明實(shí)施例以待管理磁盤被劃分為20個(gè)獨(dú)立存儲(chǔ)區(qū)域,每一個(gè)獨(dú)立村存儲(chǔ)區(qū)域按照地址先后順序分別對(duì)應(yīng)一個(gè)順序號(hào)為例,則當(dāng)前業(yè)務(wù)數(shù)據(jù)對(duì)應(yīng)的存儲(chǔ)地址為當(dāng)前業(yè)務(wù)數(shù)據(jù)被寫入待管理磁盤時(shí)對(duì)應(yīng)的獨(dú)立存儲(chǔ)區(qū)域的順序號(hào)。
舉例來說,依次接收五個(gè)訪問請(qǐng)求,對(duì)每一個(gè)訪問請(qǐng)求分別進(jìn)行解析后,可獲取到業(yè)務(wù)數(shù)據(jù)A、業(yè)務(wù)數(shù)據(jù)B、業(yè)務(wù)數(shù)據(jù)C、業(yè)務(wù)數(shù)據(jù)D和業(yè)務(wù)數(shù)據(jù)E,且業(yè)務(wù)數(shù)據(jù)A對(duì)應(yīng)的存儲(chǔ)地址為順序號(hào)10、業(yè)務(wù)數(shù)據(jù)B對(duì)應(yīng)的存儲(chǔ)地址為順序號(hào)5、業(yè)務(wù)數(shù)據(jù)C對(duì)應(yīng)的存儲(chǔ)地址為順序號(hào)3、業(yè)務(wù)數(shù)據(jù)D對(duì)應(yīng)的存儲(chǔ)地址為順序號(hào)7、業(yè)務(wù)數(shù)據(jù)E對(duì)應(yīng)的存儲(chǔ)地址為順序號(hào)8。
步驟203,確定緩存單元中存儲(chǔ)的存儲(chǔ)地址的當(dāng)前數(shù)量。
步驟204,判斷所述當(dāng)前數(shù)量是否不小于預(yù)設(shè)數(shù)量,如果是,則執(zhí)行步驟205,否則執(zhí)行步驟202。
本發(fā)明實(shí)施例以設(shè)定數(shù)量是5為例。
步驟205,判斷是否存在重建進(jìn)程重建待管理磁盤,如果是,則執(zhí)行步驟206,否則執(zhí)行步驟210。
步驟206,對(duì)重建進(jìn)程進(jìn)行掛起處理,并確定待管理磁盤中正在重建的數(shù)據(jù)對(duì)應(yīng)的重建區(qū)域。
本發(fā)明實(shí)施例以重建區(qū)域?yàn)閷?duì)應(yīng)的獨(dú)立存儲(chǔ)區(qū)域的順序號(hào)是4為例。
步驟207,從各個(gè)所述存儲(chǔ)地址中,確定出至少一個(gè)距離所述重建區(qū)域的地址偏移量不大于預(yù)設(shè)閾值的目標(biāo)存儲(chǔ)地址。
本發(fā)明實(shí)施例以預(yù)設(shè)閾值為3個(gè)順序號(hào)為例,則可確定出偏移量不大于3個(gè)順序的各個(gè)目標(biāo)存儲(chǔ)地址分別為:順序號(hào)3、順序號(hào)5、順序號(hào)7。
應(yīng)當(dāng)理解的是,本發(fā)明實(shí)施例為了方便舉例說明,僅以預(yù)設(shè)閾值為3個(gè)順序號(hào)為例,在實(shí)際業(yè)務(wù)場景中,可結(jié)合實(shí)際業(yè)務(wù)需求進(jìn)行合理設(shè)置,比如,預(yù)設(shè)閾值為800。
步驟208,按照地址先后順序,利用各個(gè)所述目標(biāo)存儲(chǔ)地址形成第一順序隊(duì)列。
即按照順序號(hào)的大小順序,形成第一順序隊(duì)列為:順序號(hào)3-順序號(hào)5-和順序號(hào)7。
步驟209,根據(jù)第一順序隊(duì)列,依次將各個(gè)目標(biāo)存儲(chǔ)地址分別對(duì)應(yīng)的業(yè)務(wù)數(shù)據(jù)寫入所述待管理磁盤,并重啟所述重建進(jìn)程。
這里,即依次將順序號(hào)3對(duì)應(yīng)的業(yè)務(wù)數(shù)據(jù)C、順序號(hào)5對(duì)應(yīng)的業(yè)務(wù)數(shù)據(jù)B和順序號(hào)7對(duì)應(yīng)的業(yè)務(wù)數(shù)據(jù)D寫入待管理磁盤中順序號(hào)3、順序號(hào)5和順序號(hào)7分別對(duì)應(yīng)的獨(dú)立存儲(chǔ)區(qū)域中。
之后,則可刪除緩存單元中業(yè)務(wù)數(shù)據(jù)C、B、D及其對(duì)應(yīng)的存儲(chǔ)地址。
步驟210,利用各個(gè)存儲(chǔ)地址形成第二順序隊(duì)列,并根據(jù)第二順序隊(duì)列,依次將各個(gè)存儲(chǔ)地址分別對(duì)應(yīng)的業(yè)務(wù)數(shù)據(jù)寫入待管理磁盤中。
舉例來說,可形成第一順序隊(duì)列為:順序號(hào)3、順序號(hào)5、順序號(hào)7、順序號(hào)8、順序號(hào)10。磁頭依次在順序號(hào)3、順序號(hào)5、順序號(hào)7、順序號(hào)8、順序號(hào)10之間移動(dòng)以將業(yè)務(wù)數(shù)據(jù)C、業(yè)務(wù)數(shù)據(jù)B、業(yè)務(wù)數(shù)據(jù)D、業(yè)務(wù)數(shù)據(jù)E和業(yè)務(wù)數(shù)據(jù)A寫入待管理磁盤中對(duì)應(yīng)順序號(hào)分別為順序號(hào)3、順序號(hào)5、順序號(hào)7、順序號(hào)8、順序號(hào)10的獨(dú)立存儲(chǔ)區(qū)域。
如圖3所示,本發(fā)明實(shí)施例提供了一種磁盤管理裝置,包括:
設(shè)置模塊301,用于預(yù)先設(shè)置緩存單元;
緩存處理模塊302,用于接收并解析訪問請(qǐng)求,以獲取業(yè)務(wù)數(shù)據(jù)及存儲(chǔ)地址,并將所述業(yè)務(wù)數(shù)據(jù)及存儲(chǔ)地址存儲(chǔ)至所述緩存單元;
檢測模塊303,用于確定所述緩存單元中存儲(chǔ)的所述存儲(chǔ)地址的當(dāng)前數(shù)量,在所述當(dāng)前數(shù)量達(dá)到預(yù)設(shè)數(shù)量時(shí),檢測是否存在重建進(jìn)程重建待管理磁盤;
重建處理模塊304,用于當(dāng)存在重建進(jìn)程重建所述待管理磁盤時(shí),對(duì)所述重建進(jìn)程進(jìn)行掛起處理,并確定所述待管理磁盤中正在重建的數(shù)據(jù)對(duì)應(yīng)的重建區(qū)域;
確定模塊305,用于從各個(gè)所述存儲(chǔ)地址中,確定出至少一個(gè)距離所述重建區(qū)域的地址偏移量不大于預(yù)設(shè)閾值的目標(biāo)存儲(chǔ)地址;
第一數(shù)據(jù)處理模塊306,用于將各個(gè)所述目標(biāo)存儲(chǔ)地址分別對(duì)應(yīng)的業(yè)務(wù)數(shù)據(jù)寫入所述待管理磁盤,并重啟所述重建進(jìn)程。
上述實(shí)施例中,通過緩存單元緩存多個(gè)業(yè)務(wù)數(shù)據(jù)及每一個(gè)業(yè)務(wù)數(shù)據(jù)分別對(duì)應(yīng)的存儲(chǔ)地址,當(dāng)存在重建進(jìn)程正在重建待管理磁盤時(shí),對(duì)重建進(jìn)程進(jìn)行掛起處理,并確定出正在重建的數(shù)據(jù)對(duì)應(yīng)的重建區(qū)域,然后從緩存單元存儲(chǔ)的各個(gè)存儲(chǔ)地址中確定出至少一個(gè)距離重建區(qū)域的地址偏移量不大于預(yù)設(shè)閾值的目標(biāo)存儲(chǔ)地址,進(jìn)而將各個(gè)目標(biāo)存儲(chǔ)地址分別對(duì)應(yīng)的業(yè)務(wù)數(shù)據(jù)寫入待管理磁盤,然后再重啟重建進(jìn)程。如此,通過將緩存單元存儲(chǔ)的多個(gè)業(yè)務(wù)數(shù)據(jù)中,距離重建區(qū)域較近的各個(gè)目標(biāo)存儲(chǔ)地址分別對(duì)應(yīng)的業(yè)務(wù)數(shù)據(jù)優(yōu)先寫入磁盤,磁頭在重建區(qū)域以及各個(gè)目標(biāo)存儲(chǔ)地址之間發(fā)生移動(dòng),移動(dòng)距離較近,不會(huì)占用較長的響應(yīng)時(shí)間,可提高磁盤重建效率。
相應(yīng)的,當(dāng)緩存單元中存儲(chǔ)的預(yù)設(shè)數(shù)量n個(gè)業(yè)務(wù)數(shù)據(jù)中,僅存在m(m為小于n的整數(shù))個(gè)業(yè)務(wù)數(shù)據(jù)對(duì)應(yīng)的存儲(chǔ)地址與重建區(qū)域之間的地址偏移量不大于預(yù)設(shè)閾值時(shí),剩余的n-m個(gè)業(yè)務(wù)數(shù)據(jù)可繼續(xù)保留在緩存單元中,m個(gè)業(yè)務(wù)數(shù)據(jù)及對(duì)應(yīng)的目標(biāo)存儲(chǔ)地址可作清除處理。如此,直到緩存單元中累計(jì)的業(yè)務(wù)數(shù)據(jù)或存儲(chǔ)地址的個(gè)數(shù)再次達(dá)到預(yù)設(shè)數(shù)量時(shí),執(zhí)行與上述步驟103至步驟106的技術(shù)方案,直到檢測出不存在重建進(jìn)程重建待管理磁盤時(shí),才以相應(yīng)的處理規(guī)則將緩存單元中存儲(chǔ)的各個(gè)業(yè)務(wù)數(shù)據(jù)全部寫入磁盤。
具體地,如圖4所示,當(dāng)檢測出不存在重建進(jìn)程重建待管理磁盤時(shí),為了節(jié)約移動(dòng)磁頭時(shí)占用的時(shí)間開銷,該磁盤管理裝置可進(jìn)一步包括:隊(duì)列構(gòu)建模塊401和第二數(shù)據(jù)處理模塊402,其中,
所述隊(duì)列構(gòu)建模塊401,用于當(dāng)不存在重建進(jìn)程重建所述待管理磁盤時(shí),利用各個(gè)所述存儲(chǔ)地址形成第二順序隊(duì)列;
所述第二數(shù)據(jù)處理模塊402,用于根據(jù)所述第二順序隊(duì)列,依次將各個(gè)所述存儲(chǔ)地址分別對(duì)應(yīng)的業(yè)務(wù)數(shù)據(jù)寫入所述待管理磁盤中。
同時(shí),所述待管理磁盤可以包括:設(shè)定數(shù)量個(gè)獨(dú)立存儲(chǔ)區(qū)域,且每一個(gè)所述存儲(chǔ)區(qū)域分別對(duì)應(yīng)一個(gè)順序號(hào);所述存儲(chǔ)地址,包括:順序號(hào)。
例如,緩存單元中存儲(chǔ)有業(yè)務(wù)數(shù)據(jù)A、業(yè)務(wù)數(shù)據(jù)B和業(yè)務(wù)數(shù)據(jù)C,存儲(chǔ)區(qū)域有6個(gè)獨(dú)立存儲(chǔ)區(qū)域,其順序號(hào)分別為1-6,且三個(gè)業(yè)務(wù)數(shù)據(jù)A、B、C分別對(duì)應(yīng)的存儲(chǔ)地址為順序號(hào)1、順序號(hào)6和順序號(hào)3,則根據(jù)其順序號(hào),將業(yè)務(wù)數(shù)據(jù)A-業(yè)務(wù)數(shù)據(jù)C-業(yè)務(wù)數(shù)據(jù)B依次寫入待管理磁盤中,磁頭根據(jù)此順序,從順序號(hào)1對(duì)應(yīng)的獨(dú)立存儲(chǔ)區(qū)域移動(dòng)至順序號(hào)3對(duì)應(yīng)的獨(dú)立存儲(chǔ)區(qū)域,然后再移動(dòng)至順序號(hào)6對(duì)應(yīng)的獨(dú)立存儲(chǔ)區(qū)域,從而使磁頭移動(dòng)距離最短,節(jié)約移動(dòng)磁頭時(shí)占用的時(shí)間開銷,提高數(shù)據(jù)處理速度。
進(jìn)一步的,為了避免磁頭在各個(gè)目標(biāo)存儲(chǔ)地址之間發(fā)生往復(fù)運(yùn)動(dòng),進(jìn)一步節(jié)約移動(dòng)磁頭時(shí)占用的時(shí)間開銷,以進(jìn)一步提高磁盤重建效率,本發(fā)明一個(gè)實(shí)施例中,所述第一數(shù)據(jù)處理模塊306,包括:隊(duì)列構(gòu)建單元(附圖中未示出)和數(shù)據(jù)處理單元(附圖中未示出);其中,
所述隊(duì)列構(gòu)建單元,用于按照地址先后順序,利用各個(gè)所述目標(biāo)存儲(chǔ)地址形成第一順序隊(duì)列;
所述數(shù)據(jù)處理單元,用于根據(jù)所述第一順序隊(duì)列,依次將各個(gè)所述目標(biāo)存儲(chǔ)地址分別對(duì)應(yīng)的業(yè)務(wù)數(shù)據(jù)寫入所述待管理磁盤。
這里以待管理磁盤包括設(shè)定數(shù)量個(gè)獨(dú)立存儲(chǔ)區(qū)域,且每一個(gè)獨(dú)立存儲(chǔ)區(qū)域分別對(duì)應(yīng)一個(gè)順序號(hào);且存儲(chǔ)地址包括順序號(hào)為例。舉例來說,待管理磁盤中設(shè)定有20個(gè)獨(dú)立存儲(chǔ)區(qū)域,其中,第10個(gè)獨(dú)立存儲(chǔ)區(qū)域?yàn)橹亟▍^(qū)域,在緩存單元中,業(yè)務(wù)數(shù)據(jù)包括:業(yè)務(wù)數(shù)據(jù)A、業(yè)務(wù)數(shù)據(jù)B、業(yè)務(wù)數(shù)據(jù)C、業(yè)務(wù)數(shù)據(jù)D和業(yè)務(wù)數(shù)據(jù)E,其分別對(duì)應(yīng)的存儲(chǔ)地址為順序號(hào)17、順序號(hào)7、順序號(hào)5、順序號(hào)13和順序號(hào)6,這里以預(yù)設(shè)位置為5進(jìn)行舉例,則目標(biāo)存儲(chǔ)地址包括:順序號(hào)7、順序號(hào)5、順序號(hào)13和順序號(hào)6,根據(jù)各個(gè)目標(biāo)存儲(chǔ)地址的地址先后順序,形成第一順序隊(duì)列為:業(yè)務(wù)數(shù)據(jù)C-業(yè)務(wù)數(shù)據(jù)E-業(yè)務(wù)數(shù)據(jù)B-業(yè)務(wù)數(shù)據(jù)D,在根據(jù)此順序隊(duì)列依次將各個(gè)業(yè)務(wù)數(shù)據(jù)寫入待管理磁盤時(shí),磁頭根據(jù)此順序,從重建區(qū)域出發(fā),在按照對(duì)應(yīng)順序號(hào)順序?yàn)?-6-7-13的各個(gè)獨(dú)立存儲(chǔ)區(qū)域中順序移動(dòng),從而避免磁頭在各個(gè)目標(biāo)存儲(chǔ)地址之間發(fā)生往復(fù)運(yùn)動(dòng),進(jìn)一步節(jié)約移動(dòng)磁頭時(shí)占用的時(shí)間開銷,進(jìn)而進(jìn)一步提高了磁盤重建效率。應(yīng)當(dāng)理解的是,業(yè)務(wù)數(shù)據(jù)A及其對(duì)應(yīng)的存儲(chǔ)地址(順序號(hào)17)可暫時(shí)保留在緩存單元中,業(yè)務(wù)數(shù)據(jù)B、業(yè)務(wù)數(shù)據(jù)C、業(yè)務(wù)數(shù)據(jù)D和業(yè)務(wù)數(shù)據(jù)E及其分別對(duì)應(yīng)的存儲(chǔ)地址均可做刪除處理。
進(jìn)一步節(jié)約移動(dòng)磁頭時(shí)占用的時(shí)間開銷,進(jìn)而進(jìn)一步提高了磁盤重建效率。
上述裝置內(nèi)的各單元之間的信息交互、執(zhí)行過程等內(nèi)容,由于與本發(fā)明方法實(shí)施例基于同一構(gòu)思,具體內(nèi)容可參見本發(fā)明方法實(shí)施例中的敘述,此處不再贅述。
另外,本發(fā)明實(shí)施例提供了一種可讀介質(zhì),包括執(zhí)行指令,當(dāng)存儲(chǔ)控制器的處理器執(zhí)行所述執(zhí)行指令時(shí),所述存儲(chǔ)控制器執(zhí)行本發(fā)明任一實(shí)施例提供的磁盤管理方法。
本發(fā)明實(shí)施例還提供了一種存儲(chǔ)控制器,包括:處理器、存儲(chǔ)器和總線;
所述處理器和所述存儲(chǔ)器通過所述總線連接;
所述存儲(chǔ)器,當(dāng)所述存儲(chǔ)控制器運(yùn)行時(shí),所述處理器執(zhí)行所述存儲(chǔ)器存儲(chǔ)的所述執(zhí)行指令,以使所述存儲(chǔ)控制器執(zhí)行本發(fā)明任一實(shí)施例提供的磁盤管理方法。
綜上所述,本發(fā)明各個(gè)實(shí)施例至少具有如下有益效果:
1、本發(fā)明一實(shí)施例中,通過緩存單元緩存多個(gè)業(yè)務(wù)數(shù)據(jù)及每一個(gè)業(yè)務(wù)數(shù)據(jù)分別對(duì)應(yīng)的存儲(chǔ)地址,當(dāng)存在重建進(jìn)程正在重建待管理磁盤時(shí),對(duì)重建進(jìn)程進(jìn)行掛起處理,并確定出正在重建的數(shù)據(jù)對(duì)應(yīng)的重建區(qū)域,然后從緩存單元存儲(chǔ)的各個(gè)存儲(chǔ)地址中確定出至少一個(gè)距離重建區(qū)域的地址偏移量不大于預(yù)設(shè)閾值的目標(biāo)存儲(chǔ)地址,進(jìn)而將各個(gè)目標(biāo)存儲(chǔ)地址分別對(duì)應(yīng)的業(yè)務(wù)數(shù)據(jù)寫入待管理磁盤,然后再重啟重建進(jìn)程。如此,通過將緩存單元存儲(chǔ)的多個(gè)業(yè)務(wù)數(shù)據(jù)中,距離重建區(qū)域較近的各個(gè)目標(biāo)存儲(chǔ)地址分別對(duì)應(yīng)的業(yè)務(wù)數(shù)據(jù)優(yōu)先寫入磁盤,磁頭在重建區(qū)域以及各個(gè)目標(biāo)存儲(chǔ)地址之間發(fā)生移動(dòng),移動(dòng)距離較近,不會(huì)占用較長的響應(yīng)時(shí)間,可提高磁盤重建效率。
2、本發(fā)明一實(shí)施例中,按照地址先后順序,利用各個(gè)所述目標(biāo)存儲(chǔ)地址形成第一順序隊(duì)列,并根據(jù)所述第一順序隊(duì)列,依次將各個(gè)所述目標(biāo)存儲(chǔ)地址分別對(duì)應(yīng)的業(yè)務(wù)數(shù)據(jù)寫入所述待管理磁盤。從而避免磁頭在各個(gè)目標(biāo)存儲(chǔ)地址之間發(fā)生往復(fù)運(yùn)動(dòng),節(jié)約移動(dòng)磁頭時(shí)占用的時(shí)間開銷,進(jìn)一步提高了磁盤重建效率。
3、本發(fā)明一實(shí)施例中,當(dāng)檢測出不存在重建進(jìn)程重建待管理磁盤時(shí),利用各個(gè)所述存儲(chǔ)地址形成第二順序隊(duì)列,并根據(jù)所述第二順序隊(duì)列,依次將各個(gè)所述存儲(chǔ)地址分別對(duì)應(yīng)的業(yè)務(wù)數(shù)據(jù)寫入所述待管理磁盤中,從而使磁頭移動(dòng)距離最短,節(jié)約移動(dòng)磁頭時(shí)占用的時(shí)間開銷,提高數(shù)據(jù)處理速度。
需要說明的是,在本文中,諸如第一和第二之類的關(guān)系術(shù)語僅僅用來將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開來,而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個(gè)······”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同因素。
最后需要說明的是:以上所述僅為本發(fā)明的較佳實(shí)施例,僅用于說明本發(fā)明的技術(shù)方案,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi)所做的任何修改、等同替換、改進(jìn)等,均包含在本發(fā)明的保護(hù)范圍內(nèi)。