本發(fā)明涉及存儲系統(tǒng)管理技術領域,特別涉及一種存儲碎片整理方法。
背景技術:
現(xiàn)有的存儲碎片整理技術,是將邏輯上連續(xù)而物理上沒有連續(xù)存放的數(shù)據(jù),通過移動數(shù)據(jù)存放到物理上的連續(xù)區(qū)域內(nèi),消除存儲碎片,從而提高數(shù)據(jù)讀取速度,降低存儲系統(tǒng)能耗,并且防止存儲碎片的進一步產(chǎn)生。
然而,在移動數(shù)據(jù)過程中,如果發(fā)生系統(tǒng)意外中斷,沒有辦法在系統(tǒng)重啟后恢復到中斷點繼續(xù)整理。更糟糕的是,系統(tǒng)的意外中斷可能造成數(shù)據(jù)損壞。尤其企業(yè)級的存儲系統(tǒng)碎片整理,耗時巨大,數(shù)據(jù)敏感性很高,一旦整理過程發(fā)生意外中斷,輕則造成前面的整理工作白做,重者造成數(shù)據(jù)損壞,給企業(yè)帶來巨大損失。所以一般企業(yè)級存儲系統(tǒng)不敢做碎片整理,任由碎片產(chǎn)生、蔓延,造成數(shù)據(jù)讀寫性能日趨下降,系統(tǒng)能耗日趨增高。
技術實現(xiàn)要素:
本發(fā)明實施例所要解決的一個技術問題是:整理存儲碎片時在數(shù)據(jù)移動過程中由于系統(tǒng)意外中斷造成的無法從斷點恢復或數(shù)據(jù)損壞的問題,以使得企業(yè)級存儲系統(tǒng)也可以進行碎片整理。
根據(jù)本發(fā)明實施例的一個方面,提供的一種存儲碎片整理方法,包括:對存儲碎片進行模擬整理;根據(jù)模擬整理的結果生成快照,快照包括各個整理步驟、每個整理步驟中數(shù)據(jù)塊和存放數(shù)據(jù)塊的存儲塊之間的對應關系、以及每個整理步驟的完成標記;根據(jù)快照對存儲碎片 進行整理。
根據(jù)快照對存儲碎片進行整理包括:在整理存儲碎片的過程中如果發(fā)生中斷,根據(jù)快照記錄的各個整理步驟的完成標記確定斷點,根據(jù)快照將存儲碎片的整理進度回滾到斷點的前一整理步驟,并從斷點處繼續(xù)對存儲碎片進行整理。
根據(jù)本發(fā)明實施例的另一個方面,提供的一種存儲碎片整理裝置,包括:模擬整理單元,用于對存儲碎片進行模擬整理;快照生成單元,用于根據(jù)模擬整理的結果生成快照,快照包括各個整理步驟、每個整理步驟中數(shù)據(jù)塊和存放數(shù)據(jù)塊的存儲塊之間的對應關系、以及每個整理步驟的完成標記;碎片整理單元,用于根據(jù)快照對存儲碎片進行整理。
碎片整理單元用于:在整理存儲碎片的過程中如果發(fā)生中斷,根據(jù)快照記錄的各個整理步驟的完成標記確定斷點,根據(jù)快照將存儲碎片的整理進度回滾到斷點的前一整理步驟,并從斷點處繼續(xù)對存儲碎片進行整理。
本發(fā)明通過對存儲碎片進行模擬整理,并生成相應的快照,然后按照快照對存儲碎片進行整理,在數(shù)據(jù)移動過程中,即使發(fā)生意外中斷,利用快照通過回滾技術可以解決數(shù)據(jù)損壞問題,并且可以從中斷點繼續(xù)進行碎片整理,從而使得企業(yè)級存儲系統(tǒng)也可以放心地進行碎片整理。
通過以下參照附圖對本發(fā)明的示例性實施例的詳細描述,本發(fā)明的其它特征及其優(yōu)點將會變得清楚。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1示出根據(jù)本發(fā)明存儲碎片整理方法的一個實施例的流程示 意圖。
圖2A示出根據(jù)本發(fā)明存儲碎片整理方法的另一個實施例的流程示意圖。
圖2B示出根據(jù)本發(fā)明用于存儲碎片整理工作的一個快照示意圖。
圖3A示出根據(jù)本發(fā)明存儲碎片整理方法的又一個實施例的流程示意圖。
圖3B示出本發(fā)明一個應用實施例在碎片整理前的數(shù)據(jù)存儲情況示意圖。
圖3C示出前述應用實施例在碎片整理過程中發(fā)生意外中斷的情況。
圖3D示出前述應用實施例用于修復數(shù)據(jù)的快照示意圖。
圖3E示出前述應用實施例修復錯誤后的數(shù)據(jù)存儲情況示意圖。
圖4示出根據(jù)本發(fā)明存儲碎片整理裝置的一個實施例的結構示意圖。
圖5示出根據(jù)本發(fā)明存儲碎片整理裝置的另一個實施例的結構示意圖。
圖6示出根據(jù)本發(fā)明存儲碎片整理裝置的又一個實施例的結構示意圖。
具體實施方式
下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。以下對至少一個示例性實施例的描述實際上僅僅是說明性的,決不作為對本發(fā)明及其應用或使用的任何限制?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
下面參考圖1描述本發(fā)明一個實施例的存儲碎片整理方法。
圖1示出根據(jù)本發(fā)明存儲碎片整理方法的一個實施例的流程示意圖。如圖1所示,該實施例的方法包括:
步驟S102,對存儲碎片進行模擬整理。模擬整理的方法和過程完全和實際整理一致,但并不對數(shù)據(jù)進行實際遷移。
步驟S104,根據(jù)模擬整理的結果生成快照,快照包括各個整理步驟、每個整理步驟中數(shù)據(jù)塊和存放數(shù)據(jù)塊的存儲塊之間的對應關系、以及每個整理步驟的完成標記。
例如,參考圖2B,上述快照可以包括4列:第一列為步驟號,實際整理時一次數(shù)據(jù)移動為完成一步;第二列為存儲塊號,是物理存儲塊的標記,對應于操作系統(tǒng)層面或存儲管理系統(tǒng)層面的存儲介質塊;第三列為數(shù)據(jù)塊號,通過編號記錄、追蹤物理存儲塊的存儲數(shù)據(jù)的變動;第四列為各個整理步驟的完成標記,可以記錄完成到哪一步驟。
此外,快照可以存放在無需進行碎片整理的存儲卷中,這樣可以避免快照的內(nèi)容被損壞。
步驟S106,根據(jù)快照對存儲碎片進行整理。
下面參考圖2A描述本發(fā)明根據(jù)快照對存儲碎片進行整理的過程。
圖2A示出根據(jù)本發(fā)明存儲碎片整理方法的另一個實施例的流程示意圖。如圖2所示,本實施例的方法包括:
步驟S102,對存儲碎片進行模擬整理。
步驟S104,根據(jù)模擬整理的結果生成快照。
步驟S2052,可選的,判斷是否進行了寫操作。如果進行了寫操作,則執(zhí)行步驟S2054,如果沒有寫操作,執(zhí)行步驟S2062。
步驟S2054,根據(jù)寫操作對快照進行修改,從而保證快照能夠準確反映存儲碎片的最新狀況,以利于遷移工作的順利進行。修改完成之后,再繼續(xù)進行后續(xù)的整理步驟,例如步驟S2062。
步驟S2062,根據(jù)快照記錄的數(shù)據(jù)塊和存放數(shù)據(jù)塊的存儲塊之間的對應關系,按照整理步驟的順序將數(shù)據(jù)塊遷移到對應的存儲塊。
步驟S2064,遷移成功后,將該整理步驟的完成標記修改為已完成。
步驟S208,判斷是否已經(jīng)完成存儲碎片的整理工作,如果已經(jīng)完成,則流程結束,如果還未完成,則返回步驟S2052繼續(xù)執(zhí)行。
下面結合一個應用示例描述上述存儲碎片的整理過程。
圖2B示出用于存儲碎片整理工作的一個快照示例。如圖2B所示,某一串數(shù)據(jù)由3個數(shù)據(jù)塊組成,分別為數(shù)據(jù)塊a、數(shù)據(jù)塊b、數(shù)據(jù)塊c,第0步的記錄信息為整理開始前的存儲信息,此時數(shù)據(jù)塊a、b、c分別存放在存儲塊3、5、32上,物理上不連續(xù);第1步進行一步數(shù)據(jù)移動,將數(shù)據(jù)塊b移動到存儲塊4,若順利完成第1步的數(shù)據(jù)移動,則可以標記為ok,表示已完成;第2步再進行下一步數(shù)據(jù)移動,將c數(shù)據(jù)塊移動到5存儲塊,從而a、b、c數(shù)據(jù)庫存放到連續(xù)的3、4、5物理存儲塊上,完成碎片整理。
下面參考圖3A描述本發(fā)明對存儲碎片進行整理過程中發(fā)生中斷的處理情形。
圖3A示出根據(jù)本發(fā)明存儲碎片整理方法的另一個實施例的流程示意圖。如圖3A所示,本實施例的方法包括:
步驟S302,根據(jù)快照記錄的各個整理步驟的完成標記確定斷點。
步驟S304,根據(jù)快照將存儲碎片的整理進度回滾到斷點的前一整理步驟。
然后,從斷點處繼續(xù)對存儲碎片進行整理。繼續(xù)整理的過程可以參考步驟S2052~步驟S208,這里不再贅述。
對于不同的操作系統(tǒng)和存儲系統(tǒng),碎片整理的流程和技術方案完全一致,但快照的內(nèi)容根據(jù)系統(tǒng)的不同而有細節(jié)的不同。以Windows系統(tǒng)舉例,Windows系統(tǒng)下的硬盤分為磁道和簇,同一磁道相鄰的簇為連續(xù)的存儲區(qū)域,彼此通過指針連接。下面結合一個Windows系統(tǒng)整理存儲碎片的過程,來說明碎片整理過程中的中斷處理過程。
如圖3B所示,在碎片整理前,數(shù)據(jù)“中國好聲音”由3個數(shù)據(jù)塊a“中國”、數(shù)據(jù)塊b“好”和數(shù)據(jù)塊c“聲音”組成,數(shù)據(jù)塊a、數(shù)據(jù)塊b和數(shù)據(jù)塊c存放在3個硬盤簇中,分別存放在硬盤簇1、硬盤簇5和硬盤簇3。硬盤簇1、硬盤簇5和硬盤簇3不在同一個磁道中,因而存在數(shù)據(jù)碎片。
如圖3C所示,在數(shù)據(jù)碎片的整理過程中,需要將數(shù)據(jù)塊b記錄 的數(shù)據(jù)“好”從硬盤簇5復制到硬盤簇2。復制完成后,硬盤簇5中的數(shù)據(jù)并不刪除,只標志空閑,系統(tǒng)進行回收;同時,系統(tǒng)需要將硬盤簇1的指針更新為指向硬盤簇2,假設將硬盤簇2的指針更新為指向硬盤簇3時,系統(tǒng)意外中斷,則硬盤簇2指針發(fā)生錯誤,數(shù)據(jù)“聲音”丟失。
此時,可以利用本發(fā)明的方法查找快照,用于修改數(shù)據(jù)的快照參考圖3D所示,根據(jù)完成標識確定斷點的位置位于步驟6,最近成功的步驟為步驟5,于是回滾到步驟5,以修復錯誤。此時,參考圖3E所示的修改錯誤后的情況,硬盤簇2的數(shù)據(jù)雖然還存在,但是已經(jīng)標志為空閑,系統(tǒng)進行回收?;貪L到步驟5后,“聲音”2字找回,系統(tǒng)繼續(xù)根據(jù)快照進行碎片整理。
上述方法可以使得數(shù)據(jù)移動過程中,即使系統(tǒng)意外中斷造成數(shù)據(jù)損壞的問題,仍可以使得碎片整理過程可以從中斷點繼續(xù)進行,從而使得企業(yè)級存儲系統(tǒng)也可以進行碎片整理。
下面參考圖4描述本發(fā)明存儲碎片整理裝置的一個實施例的結構。
圖4示出根據(jù)本發(fā)明存儲碎片整理裝置的一個實施例的結構示意圖。如圖4所示,該實施例的碎片整理裝置400包括:
模擬整理單元402,用于對存儲碎片進行模擬整理;
快照生成單元404,用于根據(jù)模擬整理的結果生成快照,快照包括各個整理步驟、每個整理步驟中數(shù)據(jù)塊和存放數(shù)據(jù)塊的存儲塊之間的對應關系、以及每個整理步驟的完成標記;
碎片整理單元406,用于根據(jù)快照對存儲碎片進行整理。
碎片整理單元406還可以用于:在整理存儲碎片的過程中如果發(fā)生中斷,根據(jù)快照記錄的各個整理步驟的完成標記確定斷點,根據(jù)快照將存儲碎片的整理進度回滾到斷點的前一整理步驟,并從斷點處繼續(xù)對存儲碎片進行整理。
碎片整理單元406還可以進一步用于:根據(jù)快照記錄的數(shù)據(jù)塊和存放數(shù)據(jù)塊的存儲塊之間的對應關系,按照整理步驟的順序將數(shù)據(jù)塊 遷移到對應的存儲快,遷移成功后,將該整理步驟的完成標記修改為已完成。
下面參考圖5描述本發(fā)明存儲碎片整理裝置的另一個實施例的結構。
圖5示出根據(jù)本發(fā)明存儲碎片整理裝置的另一個實施例的結構示意圖。如圖5所示,該實施例的碎片整理裝置500還包括:
判斷單元508和快照修改單元510,其中判斷單元508用于在根據(jù)快照對存儲碎片進行整理之前,判斷是否進行了寫操作,如果進行了寫操作,快照修改單元510根據(jù)寫操作對快照進行修改。
下面參考圖6描述本發(fā)明存儲碎片整理裝置的又一個實施例的結構。
圖6示出根據(jù)本發(fā)明存儲碎片整理裝置的又一個實施例的結構示意圖。如圖6所示,該實施例的碎片整理裝置600還包括存儲單元612無需進行碎片整理,用于存放快照。
本領域普通技術人員可以理解實現(xiàn)上述實施例的全部或部分步驟可以通過硬件來完成,也可以通過程序來指令相關的硬件完成,所述的程序可以存儲于一種計算機可讀存儲介質中,上述提到的存儲介質可以是只讀存儲器,磁盤或光盤等。
以上所述僅為本發(fā)明的較佳實施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。