欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

硬盤數(shù)據(jù)恢復(fù)方法及系統(tǒng)的制作方法

文檔序號:10534641閱讀:286來源:國知局
硬盤數(shù)據(jù)恢復(fù)方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明實(shí)施例提出一種硬盤數(shù)據(jù)恢復(fù)方法,所述硬盤具有記錄有數(shù)據(jù)文件的物理頁,其特征在于,所述方法包括:讀所述記錄有數(shù)據(jù)文件的物理頁,將所述物理頁內(nèi)的數(shù)據(jù)文件按照頁邊界對齊的方式在日志區(qū)域內(nèi)生成相對于原始日志文件的新日志文件;當(dāng)所述物理頁的讀取過程發(fā)生中斷時,標(biāo)記所述物理頁為斷點(diǎn)物理頁,并確定所述斷點(diǎn)物理頁的地址;回滾所述新日志文件,將所述新日志文件中與所述斷點(diǎn)物理頁的地址相應(yīng)的按照頁邊界對齊的數(shù)據(jù)文件信息寫入所述斷點(diǎn)物理頁,完成數(shù)據(jù)的恢復(fù)。本發(fā)明實(shí)施例還提出一種硬盤數(shù)據(jù)恢復(fù)系統(tǒng),降低了因突然中斷讀取硬盤而造成數(shù)據(jù)丟失的可能性,保障了存入硬盤數(shù)據(jù)的可靠性和完整性,并增大了硬盤的可用性。
【專利說明】
硬盤數(shù)據(jù)恢復(fù)方法及系統(tǒng)
技術(shù)領(lǐng)域
[0001] 本發(fā)明實(shí)施例涉及計算機(jī)存儲設(shè)備技術(shù)領(lǐng)域,尤其涉及一種硬盤數(shù)據(jù)恢復(fù)方法及 系統(tǒng)。
【背景技術(shù)】
[0002] 硬盤是電腦上非揮發(fā)性存儲設(shè)備,是電腦主要的存儲媒介之一,傳統(tǒng)的機(jī)械硬盤 是硬盤中的一種,機(jī)械硬盤的物理結(jié)構(gòu)包含有磁頭,硬盤盤片;當(dāng)硬盤盤片旋轉(zhuǎn)時,磁頭保 持在一個位置,那么磁頭會在硬盤盤片表面劃出一個圓形軌跡,這個軌跡就是磁道,硬盤盤 片上的每個磁道被等分為若干個弧段,這些弧段便是硬盤的扇區(qū),在傳統(tǒng)的扇區(qū)分割機(jī)制 中,每個扇區(qū)一般可以存放512個字節(jié)的信息。
[0003]在"先進(jìn)格式"的模式下,新型"4K扇區(qū)"硬盤上是采用頁來代表內(nèi)存單元,頁的大 小是4096字節(jié),而文件系統(tǒng)一般設(shè)計成以塊為單位的操作單元,這些塊保存了元數(shù)據(jù),數(shù)據(jù) 等信息,文件系統(tǒng)的塊大小一般是4096字節(jié),使得文件系統(tǒng)的塊大小正好與內(nèi)存中的頁的 大小相匹配,簡化了文件系統(tǒng)與內(nèi)存頁交互的處理工作量;一個物理頁的大小一般是扇區(qū) 的整數(shù)倍,是軟件(0S、文件系統(tǒng))中最小的操作單位,操作系統(tǒng)的虛擬文件系統(tǒng)從硬件內(nèi)存 中讀取一個物理頁,實(shí)際過程則是從硬盤內(nèi)存中讀取一個或多個扇區(qū),在文件系統(tǒng)的文件 管理中,由于每個文件對應(yīng)的多個物理頁可能是不連續(xù)的,故對物理頁的讀取最終還是映 射到了對物理頁所對應(yīng)的一個或多個扇區(qū)的數(shù)據(jù)的讀取,例如:在"先進(jìn)格式"的模式下,一 個"4K扇區(qū)"相對應(yīng)這的就是硬盤的一個物理頁,此時物理頁中有8個存儲大小為512字節(jié)的 扇區(qū)。
[0004] 在一張硬盤的磁片,每個扇區(qū)中都會有一個固定的校驗位區(qū)域,每次從扇區(qū)中讀 取數(shù)據(jù)的時候都會比較數(shù)據(jù)的校驗和是否一致,如果不一致就會報10錯誤,然后再向扇區(qū) 寫入數(shù)據(jù),在向扇區(qū)寫入數(shù)據(jù)的時候都會在寫入數(shù)據(jù)后再把校驗和寫入校驗位區(qū)域,此種 做法的缺陷在于:如果在寫入的過程中寫入了數(shù)據(jù),但是還沒有寫入校驗和的時候突然斷 電了,那么數(shù)據(jù)部分就和已保存的校驗和部分不一致,這時候所讀取的扇區(qū)淪為假壞塊, 如果去讀這部分?jǐn)?shù)據(jù)是讀不出來的;雖然此時扇區(qū)中的數(shù)據(jù)無法被讀出來,但是如果去寫 這個扇區(qū)是沒有問題的,因為寫入扇區(qū)的數(shù)據(jù)會覆蓋扇區(qū)中原有的所有數(shù)據(jù),并將扇區(qū)中 原有的數(shù)據(jù)及所保存校驗和一并更新。
[0005] 通常情況下,文件系統(tǒng)為了保持讀寫數(shù)據(jù)的一致性采用帶有Journal日志模式的 文件系統(tǒng)(Journal File System) Journal日志模式的文件系統(tǒng)最大的特點(diǎn)是:將待寫入 硬盤的數(shù)據(jù)及元數(shù)據(jù)完整的記錄在硬盤的系統(tǒng)日志文件,以便有需要時回溯追蹤,當(dāng)在硬 盤讀寫的過程中突然中斷時,系統(tǒng)可以根據(jù)這些記錄直接回溯并重整被中斷的部分,以加 快硬盤數(shù)據(jù)的重整速度;由此在硬盤讀寫的任一時刻出現(xiàn)因意外掉電等因素而造成硬盤讀 取中斷,并在重新啟動硬盤時,只要系統(tǒng)日志文件不出現(xiàn)損壞,都能保證數(shù)據(jù)的完整性; [0006]但是,在"先進(jìn)格式"的模式下的系統(tǒng)日志文件中所記錄的硬盤的數(shù)據(jù)及元數(shù)據(jù)并 沒有以4K的邊界去保存,在硬盤讀取異常而回滾系統(tǒng)日志時,對出現(xiàn)異常的"4k扇區(qū)"進(jìn)行 恢復(fù)時,由于文件系統(tǒng)是以"4K扇區(qū)"的大小與硬盤進(jìn)行交互的,一方面,在回滾日志時,需 要讀取待恢復(fù)的扇區(qū)中的數(shù)據(jù)文件,然后再根據(jù)日志文件對硬盤的數(shù)據(jù)進(jìn)行恢復(fù);另一方 面,由于備份于系統(tǒng)日志文件中的數(shù)據(jù)不是"4K對齊"的,在回滾日志讀取扇區(qū)數(shù)據(jù)的過程 中,若讀取到壞塊,不論讀取到的是假壞塊還是真壞塊都會導(dǎo)致硬盤報I/O錯誤時,導(dǎo)致回 滾日志失敗,最終無法恢復(fù)硬盤數(shù)據(jù)。

【發(fā)明內(nèi)容】

[0007] 針對上述現(xiàn)有技術(shù)中的至少一個技術(shù)問題,本發(fā)明實(shí)施例提供一種硬盤數(shù)據(jù)恢復(fù) 方法及系統(tǒng)。
[0008] 本發(fā)明實(shí)施例提供一種硬盤數(shù)據(jù)恢復(fù)方法,所述硬盤具有記錄有數(shù)據(jù)文件的物理 頁,其特征在于,所述方法包括:
[0009] 讀所述記錄有數(shù)據(jù)文件的物理頁,將所述物理頁內(nèi)的數(shù)據(jù)文件按照頁邊界對齊的 方式在日志區(qū)域內(nèi)生成相對于原始日志文件的新日志文件;
[0010] 當(dāng)所述物理頁的讀取過程發(fā)生中斷時,標(biāo)記所述物理頁為斷點(diǎn)物理頁,并確定所 述斷點(diǎn)物理頁的地址;
[0011] 回滾所述新日志文件,將所述新日志文件中與所述斷點(diǎn)物理頁的地址相應(yīng)的按照 頁邊界對齊的數(shù)據(jù)文件信息寫入所述斷點(diǎn)物理頁,完成數(shù)據(jù)的恢復(fù)。
[0012] 本發(fā)明實(shí)施例提供一種硬盤數(shù)據(jù)恢復(fù)系統(tǒng),所述硬盤具有記錄有數(shù)據(jù)文件的物理 頁,其特征在于,所述系統(tǒng)包括:
[0013] 新日志文件生成單元,用于:讀所述記錄有數(shù)據(jù)文件的物理頁,將所述物理頁內(nèi)的 數(shù)據(jù)文件按照頁邊界對齊的方式在日志區(qū)域內(nèi)生成相對于原始日志文件的新日志文件;
[0014] 斷點(diǎn)物理頁確定單元,用于:當(dāng)所述物理頁的讀取過程發(fā)生中斷時,標(biāo)記所述物理 頁為斷點(diǎn)物理頁,并確定所述斷點(diǎn)物理頁的地址;
[0015] 日志回滾單元,用于:回滾所述新日志文件,將所述新日志文件中與所述斷點(diǎn)物理 頁的地址相應(yīng)的按照頁邊界對齊的數(shù)據(jù)文件信息寫入所述斷點(diǎn)物理頁,完成數(shù)據(jù)的恢復(fù)。
[0016] 本發(fā)明實(shí)施例的上述方法及系統(tǒng)將新日志文件中所備份的數(shù)據(jù)文件信息按照頁 邊界對齊,由此實(shí)現(xiàn)了 :
[0017] -、當(dāng)讀硬盤的過程中斷并重新讀硬盤時,回滾新日志文件并恢復(fù)硬盤數(shù)據(jù),利用 新日志文件備份的已按照頁邊界對齊的數(shù)據(jù)文件覆蓋相應(yīng)的物理頁,本發(fā)明實(shí)施例方法及 系統(tǒng)相比于現(xiàn)有技術(shù),省去了回滾日志時讀取扇區(qū)數(shù)據(jù)的工作,并提高了硬盤恢復(fù)的效率;
[0018] 二、進(jìn)一步避免了在回滾日志的過程中,因讀取扇區(qū)所產(chǎn)生的I/O錯誤而無法恢復(fù) 硬盤數(shù)據(jù),由此降低了因突然中斷讀取硬盤而造成數(shù)據(jù)丟失的可能性。
[0019] 三、利用新日志文件修復(fù)硬盤的假壞塊,增大了硬盤的可用性。
【附圖說明】
[0020] 為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn) 有技術(shù)描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā) 明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根 據(jù)這些附圖獲得其他的附圖。
[0021] 圖1示出的是本發(fā)明一實(shí)施例的硬盤數(shù)據(jù)恢復(fù)方法的流程圖;
[0022] 圖2示出了圖1所示方法中的S101步驟的一種具體執(zhí)行方式的詳細(xì)執(zhí)行圖;
[0023] 圖3示出了本發(fā)明一實(shí)施例的硬盤數(shù)據(jù)恢復(fù)系統(tǒng)的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0024]為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例 中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是 本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員 在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0025]參見圖1示出的是本發(fā)明一實(shí)施例方法的硬盤數(shù)據(jù)恢復(fù)方法的流程圖,所述硬盤 具有記錄有數(shù)據(jù)文件的物理頁,其特征在于,所述方法包括:
[0026] S101:讀所述記錄有數(shù)據(jù)文件的物理頁,將所述物理頁內(nèi)的數(shù)據(jù)文件按照頁邊界 對齊的方式在日志區(qū)域內(nèi)生成相對于原始日志文件的新日志文件;
[0027] S102:當(dāng)所述物理頁的讀取過程發(fā)生中斷時,標(biāo)記所述物理頁為斷點(diǎn)物理頁,并確 定所述斷點(diǎn)物理頁的地址;
[0028] S103:回滾所述新日志文件,將所述新日志文件中與所述斷點(diǎn)物理頁的地址相應(yīng) 的按照頁邊界對齊的數(shù)據(jù)文件信息寫入所述斷點(diǎn)物理頁,完成數(shù)據(jù)的恢復(fù)。
[0029]關(guān)于本實(shí)施例方法的S103步驟的觸發(fā),包括:在讀取所述物理頁的過程異常中斷, 并又開始讀取硬盤時,觸發(fā)文件系統(tǒng)回滾所述新日志文件。更進(jìn)一步地,文件系統(tǒng)判斷是否 按照正常的程序步驟停止讀取其中一個物理頁工作,若判斷結(jié)果為否,則均判定讀取所述 物理頁的過程異常中斷;例如:硬盤的讀取瞬時卡頓的現(xiàn)象不包含于讀取異常中斷的一種 情形,突然斷電導(dǎo)致對硬盤的其中一個物理頁的讀取中斷包含于讀取異常中斷的一種情 形。
[0030] 通過本發(fā)明實(shí)施例方法將新日志文件中所備份的數(shù)據(jù)文件按照頁邊界對齊,當(dāng)讀 硬盤的過程中斷并重新讀硬盤時,回滾新日志文件并恢復(fù)硬盤數(shù)據(jù),利用新日志文件備份 的已按照頁邊界對齊的數(shù)據(jù)文件覆蓋相應(yīng)的物理頁,本發(fā)明實(shí)施例方法及系統(tǒng)相比于現(xiàn)有 技術(shù),省去了回滾日志時讀取扇區(qū)數(shù)據(jù)的工作,并提高了硬盤恢復(fù)的效率;進(jìn)一步避免了在 回滾日志的過程中,因讀取扇區(qū)所產(chǎn)生的I/O錯誤而無法恢復(fù)硬盤數(shù)據(jù),由此降低了因突 然中斷讀取硬盤而造成數(shù)據(jù)丟失的可能性;利用新日志文件修復(fù)硬盤的假壞塊,增大了硬 盤的可用性。
[0031] 作為的一種優(yōu)選實(shí)施方式,繼續(xù)參見圖2,作為圖1所示實(shí)施例方法的進(jìn)一步優(yōu)化, 關(guān)于圖1中的所述步驟S101的執(zhí)行,可以包括如下子步驟:
[0032] S1011:讀所述記錄有數(shù)據(jù)文件的物理頁,獲取所述數(shù)據(jù)文件在所述物理頁上的開 始位置和結(jié)束位置;
[0033] S1012:根據(jù)所述開始位置和所述結(jié)束位置,按照4K對齊的方式確定頁首邊界位置 和頁尾邊界位置;
[0034] S1013:將所述物理頁內(nèi)的數(shù)據(jù)文件按照所述頁首邊界位置和頁尾邊界位置對齊 的方式在日志區(qū)域內(nèi)生成相對于原始日志文件的新日志文件。
[0035]在本發(fā)明實(shí)施例方法的一種實(shí)施方式中,所述頁首邊界位置=[_所述開始位置/4Kj *4K,所述頁尾邊界位置=[_ (所述結(jié)束位置+4K-1) /4Kj*4K。
[0036]在"先進(jìn)格式"的模式下,新型"4K扇區(qū)"硬盤采用頁來代表內(nèi)存單元,頁的大小是 4K字節(jié),通過本發(fā)明實(shí)施例方法將新日志文件中所備份的數(shù)據(jù)文件按照4K邊界對齊;由此 實(shí)現(xiàn)了在回滾新日志文件時,將新日志文件中所備份已4K對齊的硬盤數(shù)據(jù)以塊的方式寫入 硬盤,省去了回滾新日志文件時讀取硬盤的扇區(qū)的步驟。
[0037]在本實(shí)施例優(yōu)選實(shí)施方式中,L所述開始位置/4Kj指代的是根據(jù)一段數(shù)據(jù)在物理 頁上的開始位置和物理頁的數(shù)據(jù)大小4K向下取整,I (所述結(jié)束位置+4K-1 )/4Kj指代的是根 據(jù)一段數(shù)據(jù)在物理頁上的終止位置和物理頁的數(shù)據(jù)大小4K向下取整;例如:獲取得到數(shù)據(jù) 在物理頁上的開始位置為10000,獲取得到數(shù)據(jù)在物理頁上的終止位置為20000,則所述頁 首邊界位置=L.所述開始位置/4K_|*4K=l_l〇〇〇〇/4〇96_|*4096 = 2*4096 = 8192,所述頁尾邊界 位置=〖(所述結(jié)束位置+4K-1) /4Kj =|_ 20000+4096-1) /4096j = 5*4096 = 20480。
[0038]由此在讀取一段數(shù)據(jù)并將其備份寫入新日志文件時,將一段數(shù)據(jù)對應(yīng)于物理頁的 開始位置變更為對應(yīng)于物理頁的頁首邊界位置,將一段數(shù)據(jù)對應(yīng)于物理頁的終止位置變更 為對應(yīng)于物理頁的頁尾邊界位置,實(shí)現(xiàn)了將物理頁所記錄的數(shù)據(jù)文件備份至新日志文件中 的數(shù)據(jù)文件是按照頁邊界對齊的。
[0039]作為本發(fā)明一實(shí)施例方法的一種優(yōu)選實(shí)施方式,所述S103步驟包括:
[0040] 當(dāng)所述新日志文件中與所述斷點(diǎn)物理頁的地址相應(yīng)的按照頁邊界對齊的數(shù)據(jù)文 件信息無法寫入所述斷點(diǎn)物理頁時,將所述新日志文件中與所述斷點(diǎn)物理頁的地址相應(yīng)的 按照頁邊界對齊的數(shù)據(jù)文件信息重映射至無數(shù)據(jù)文件信息的物理頁中,并相應(yīng)地修改所述 新日志文件中記錄所述斷點(diǎn)物理頁的數(shù)據(jù)文件信息的物理頁地址,完成數(shù)據(jù)的恢復(fù)。
[0041] 當(dāng)斷點(diǎn)物理頁具有"真壞塊",而無法將新日志文件中所備份的數(shù)據(jù)寫入所述斷點(diǎn) 物理頁時,將所述斷點(diǎn)物理頁在新日志文件中所備份的文件信息重映射至除斷點(diǎn)物理頁其 他未記錄數(shù)據(jù)文件的物理頁,由此保障了硬盤中所存儲數(shù)據(jù)的可靠性,使得即使斷點(diǎn)物理 頁為物理壞塊而無法寫入數(shù)據(jù),也能根據(jù)新日志文件所備份的斷點(diǎn)物理頁的數(shù)據(jù)恢復(fù)硬盤 數(shù)據(jù),大大降低了硬盤丟失數(shù)據(jù)的可能性。
[0042] 在本發(fā)明方法的一種優(yōu)選實(shí)施方式中,在完成數(shù)據(jù)的恢復(fù)后,無效所述日志區(qū)域 內(nèi)的原始日志文件;
[0043]由于新日志文件中所記錄的數(shù)據(jù)是已按照頁邊界對齊的硬盤數(shù)據(jù),利用新日志文 件對物理頁進(jìn)行數(shù)據(jù)恢復(fù),恢復(fù)后的物理頁中所記錄的數(shù)據(jù)也應(yīng)該是按照頁邊界對齊的, 故原始日志文件中所記錄的未按照頁邊界對齊的數(shù)據(jù)文件已失去備份功能;通過本發(fā)明方 法的優(yōu)選實(shí)施方式,在完成對物理頁的數(shù)據(jù)恢復(fù)后,刪除所恢復(fù)的物理頁的原始日志文件, 由此實(shí)現(xiàn)了在利用新日志文件恢復(fù)物理頁數(shù)據(jù)后,當(dāng)回滾日志再次對同一物理頁進(jìn)行數(shù)據(jù) 恢復(fù)時,避免了利用原始日志文件覆蓋物理頁,而導(dǎo)致重新恢復(fù)的物理頁中所記錄的數(shù)據(jù) 文件錯亂,由此保障了硬盤物理頁中所記錄的數(shù)據(jù)的一致性和完整性。
[0044] 關(guān)于本發(fā)明一實(shí)施例方法的硬盤數(shù)據(jù)恢復(fù)方法,更具體地,以Linux操作系統(tǒng)為 例,所述方法包括:
[0045] 文件系統(tǒng)的應(yīng)用層相硬盤發(fā)起讀寫請求,請求將一段待寫數(shù)據(jù)讀出來并寫入到硬 盤中的Journal區(qū)域,將一段數(shù)據(jù)寫入對應(yīng)于Journal區(qū)域的start-pos到end-pos;待確定 這一段數(shù)據(jù)到達(dá)Journal區(qū)域后,標(biāo)記這個Journal區(qū)域的數(shù)據(jù)為有效的,并獲知這段數(shù)據(jù) 通過文件系統(tǒng)的映射至硬盤的物理頁上的起始扇區(qū)地址Fs(start-pos)和終止扇區(qū)地址Fs (end-pos);
[0046]新日志文件數(shù)據(jù)的對齊4K操作:將這一段數(shù)據(jù)的起始扇區(qū)地址Fs(start-pos)相 對應(yīng)于Fs (s tart-po s)所在的物理頁的最小扇區(qū)地址對齊,將終止扇區(qū)地址Fs (end-po s) 相對應(yīng)于Fs (end-pos)所在的物理頁的最大扇區(qū)地址對齊,對齊之后的記錄在Journal區(qū)域 的這一段數(shù)據(jù)的位置相應(yīng)地由8七31'1:1〇8到611(11〇8變?yōu)??8(8七31'1:1〇8)/410*41(至((?8 (end-pos)+4K-1)/4K)*4K;
[0047]確認(rèn)所述一段數(shù)據(jù)均完成新日志文件數(shù)據(jù)的對齊4K操作之后,開始把數(shù)據(jù)以塊的 形式寫到相對應(yīng)的物理頁中;
[0048] 確認(rèn)所述一段數(shù)據(jù)均寫入硬盤后,無效Journal區(qū)域。
[0049] 在所述Journal區(qū)域中存儲有原始日志文件和新日志文件,而所讀取的一段數(shù)據(jù) 對應(yīng)于原始日志文件中的起始位置和終止位置是start-pos和end-pos,而這一段數(shù)據(jù)備份 于新日志文件中的起始位置和終止位置是Fs(start-pos)/4K和(Fs(end-pos) +4K-1)/4K; 其中,F(xiàn)s (start-pos)/4K和(Fs (end-pos )+4K-l)/4K是計算機(jī)邏輯算法的一種表達(dá)形式,其 分別指代的是根據(jù)這一段數(shù)據(jù)的起始扇區(qū)地址和終止扇區(qū)地址針對物理頁大小進(jìn)行去余 取整;例如:獲取得到數(shù)據(jù)在物理頁上的起始扇區(qū)地址Fs(start-pos)為10000,獲取得到數(shù) 據(jù)在物理頁上的終止扇區(qū)地址Fs(end-p 〇S)為20000,則備份在新日志上的數(shù)據(jù)的頁首邊界 位置=|_所述開始位置/4K』*4K = l 10000/4096』*4096 = 2*4096 = 8192,頁尾邊界位置=[_(所 述結(jié)束位置+4K-1) /4Kj = L20000+4096-1) /4096』=5*4096 = 20480。
[0050] 當(dāng)硬盤突然斷電并重新啟動時,回滾原始日志文件對硬盤數(shù)據(jù)進(jìn)行恢復(fù),當(dāng)所述 原始日志文件無法完成恢復(fù)硬盤數(shù)據(jù)時,利用新日志文件恢復(fù)硬盤數(shù)據(jù)文件,然后無效 journal區(qū)域并刪除原始日志文件,由此保障了硬盤所恢復(fù)的數(shù)據(jù)的一致性和完整性。
[0051] 由此實(shí)現(xiàn)了:一方面不論在上面的步驟中的哪個步驟發(fā)生了意外斷電,都可以在 硬盤中恢復(fù)出數(shù)據(jù),即使因發(fā)生斷電而導(dǎo)致硬盤產(chǎn)生了壞的扇區(qū)時,我們也可以恢復(fù)得到 完整的數(shù)據(jù);二方面,相比于現(xiàn)有技術(shù)中在回滾日志文件恢復(fù)硬盤數(shù)據(jù)的讀待恢復(fù)扇區(qū)然 后再根據(jù)日志文件寫扇區(qū)數(shù)據(jù),本發(fā)明實(shí)施方式不用對扇區(qū)進(jìn)行讀取的工作,只需要將 Journal中所記錄關(guān)于扇區(qū)所在的物理頁的數(shù)據(jù)以塊的形式寫入對應(yīng)的物理頁,這樣即使 因斷電產(chǎn)生壞塊,在重新上電恢復(fù)Journal的時候也會整塊的寫入,會對假壞塊修復(fù),真壞 塊產(chǎn)生重映射。
[0052]在本發(fā)明方法實(shí)施例的一種優(yōu)選實(shí)施方式中,定期檢查所述Journal區(qū)域,并對可 能出現(xiàn)壞塊的Journal區(qū)域進(jìn)行修復(fù);由此降低所述Journal區(qū)域出現(xiàn)壞塊的風(fēng)險,只需保 障硬盤的Journal區(qū)域不被破壞,便可確保硬盤中所記錄的數(shù)據(jù)不會丟失,提高了維護(hù)硬盤 數(shù)據(jù)的效率并降低了維護(hù)硬盤數(shù)據(jù)所占用的系統(tǒng)資源。
[0053]參見圖3示出的是本發(fā)明一實(shí)施例的硬盤數(shù)據(jù)恢復(fù)系統(tǒng)的結(jié)構(gòu)示意圖,所述硬盤 具有記錄有數(shù)據(jù)文件的物理頁,其特征在于,所述系統(tǒng)包括:
[0054]新日志文件生成單元,用于讀所述記錄有數(shù)據(jù)文件的物理頁,將所述物理頁內(nèi)的 數(shù)據(jù)文件按照頁邊界對齊的方式在日志區(qū)域內(nèi)生成相對于原始日志文件的新日志文件;
[0055] 斷點(diǎn)物理頁確定單元,用于當(dāng)所述物理頁的讀取過程發(fā)生中斷時,標(biāo)記所述物理 頁為斷點(diǎn)物理頁,并確定所述斷點(diǎn)物理頁的地址;
[0056]日志回滾單元,用于回滾所述新日志文件,將所述新日志文件中與所述斷點(diǎn)物理 頁的地址相應(yīng)的按照頁邊界對齊的數(shù)據(jù)文件信息寫入所述斷點(diǎn)物理頁,完成數(shù)據(jù)的恢復(fù)。 [0057]利用本發(fā)明實(shí)施例系統(tǒng)實(shí)現(xiàn)了將新日志文件中所備份的數(shù)據(jù)文件按照頁邊界對 齊,當(dāng)讀硬盤的過程中斷并重新讀硬盤時,回滾新日志文件并恢復(fù)硬盤數(shù)據(jù),利用新日志文 件備份的已按照頁邊界對齊的數(shù)據(jù)文件覆蓋相應(yīng)的物理頁,本發(fā)明實(shí)施例方法及系統(tǒng)相比 于現(xiàn)有技術(shù),省去了回滾日志時讀取扇區(qū)數(shù)據(jù)的工作,并提高了硬盤恢復(fù)的效率;進(jìn)一步避 免了在回滾日志的過程中,因讀取扇區(qū)所產(chǎn)生的I/O錯誤而無法恢復(fù)硬盤數(shù)據(jù),由此降低了 因突然中斷讀取硬盤而造成數(shù)據(jù)丟失的可能性;利用新日志文件修復(fù)硬盤的假壞塊,增大 了硬盤的可用性。
[0058] 作為圖3所示實(shí)施例系統(tǒng)的進(jìn)一步優(yōu)化,所述新日志文件生成單元包括:
[0059] 數(shù)據(jù)定位模塊,用于讀所述記錄有數(shù)據(jù)文件的物理頁,獲取所述數(shù)據(jù)文件在所述 物理頁上的開始位置和結(jié)束位置;
[0060] 頁邊界對齊模塊,用于:根據(jù)所述開始位置和所述結(jié)束位置,按照4K對齊的方式確 定頁首邊界位置和頁尾邊界位置;
[0061 ]新日志生成模塊,用于將所述物理頁內(nèi)的數(shù)據(jù)文件按照所述頁首邊界位置和頁尾 邊界位置對齊的方式在日志區(qū)域內(nèi)生成相對于原始日志文件的新日志文件。
[0062] 在"先進(jìn)格式"的模式下,新型"4K扇區(qū)"硬盤采用頁來代表內(nèi)存單元,頁的大小是 4K字節(jié),通過本發(fā)明實(shí)施例方法將新日志文件中所備份的數(shù)據(jù)文件按照4K邊界對齊;由此 實(shí)現(xiàn)了在回滾新日志文件時,將新日志文件中所備份已4K對齊的硬盤數(shù)據(jù)以塊的方式寫入 硬盤,省去了回滾新日志文件時讀取硬盤的扇區(qū)的步驟。
[0063] 作為圖3所示實(shí)施例系統(tǒng)的進(jìn)一步優(yōu)化,與所述日志回滾單元連接的還包括原始 日志清理單元,所述原始日志清理單元用于:
[0064] 在完成數(shù)據(jù)的恢復(fù)后,無效所述日志區(qū)域內(nèi)的原始日志文件。
[0065] 通過本發(fā)明系統(tǒng)的優(yōu)選實(shí)施方式,在完成對物理頁的數(shù)據(jù)恢復(fù)后,刪除所恢復(fù)的 物理頁的原始日志文件,由此實(shí)現(xiàn)了在利用新日志文件恢復(fù)物理頁數(shù)據(jù)后,當(dāng)回滾日志再 次對同一物理頁進(jìn)行數(shù)據(jù)恢復(fù)時,避免了利用原始日志文件覆蓋物理頁,而導(dǎo)致重新恢復(fù) 的物理頁中所記錄的數(shù)據(jù)文件錯亂,由此保障了硬盤物理頁中所記錄的數(shù)據(jù)的一致性和完 整性。
[0066] 作為圖3所示實(shí)施例系統(tǒng)的進(jìn)一步優(yōu)化,所述頁首邊界位置=L所述開始位置/4K> 4K,所述頁尾邊界位置= [.(所述結(jié)束位置+4K-1)/4K」*4K。關(guān)于本優(yōu)選實(shí)施方式,具體地可 參照上述發(fā)明方法實(shí)施例,故在此不加贅述。
[0067] 作為圖3所示實(shí)施例系統(tǒng)的進(jìn)一步優(yōu)化,與所述日志回滾單元連接的還包括重映 射單元,所述重映射單元用于:
[0068] 在所述新日志文件中與所述斷點(diǎn)物理頁的地址相應(yīng)的按照頁邊界對齊的數(shù)據(jù)文 件信息無法寫入所述斷點(diǎn)物理頁時,將所述新日志文件中與所述斷點(diǎn)物理頁的地址相應(yīng)的 按照頁邊界對齊的數(shù)據(jù)文件信息重映射至無數(shù)據(jù)文件信息的物理頁中,并相應(yīng)地修改所述 新日志文件中記錄所述斷點(diǎn)物理頁的數(shù)據(jù)文件信息的物理頁地址。
[0069]當(dāng)斷點(diǎn)物理頁具有"真壞塊",而無法將新日志文件中所備份的數(shù)據(jù)寫入所述斷點(diǎn) 物理頁時,將所述斷點(diǎn)物理頁在新日志文件中所備份的文件信息重映射至除斷點(diǎn)物理頁其 他未記錄數(shù)據(jù)文件的物理頁,由此保障了硬盤中所存儲數(shù)據(jù)的可靠性,使得即使斷點(diǎn)物理 頁為物理壞塊而無法寫入數(shù)據(jù),也能根據(jù)新日志文件所備份的斷點(diǎn)物理頁的數(shù)據(jù)恢復(fù)硬盤 數(shù)據(jù),大大降低了硬盤丟失數(shù)據(jù)的可能性。
[0070] 本發(fā)明實(shí)施例可以通過硬件處理器(hardware processor)來實(shí)現(xiàn)相關(guān)功能模塊 單元。
[0071]以上所描述的裝置實(shí)施例僅僅是示意性的,其中所述作為分離部件說明的單元可 以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單 元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上。可以根據(jù)實(shí)際的需要選擇其 中的部分或者全部模塊來實(shí)現(xiàn)本實(shí)施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性 的勞動的情況下,即可以理解并實(shí)施。
[0072] 通過以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到各實(shí)施方式可 借助軟件加必需的通用硬件平臺的方式來實(shí)現(xiàn),當(dāng)然也可以通過硬件?;谶@樣的理解,上 述技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該 計算機(jī)軟件產(chǎn)品可以存儲在計算機(jī)可讀存儲介質(zhì)中,如R0M/RAM、磁碟、光盤等,包括若干指 令用以使得一臺計算機(jī)設(shè)備(可以是個人計算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行各個實(shí)施 例或者實(shí)施例的某些部分所述的方法。
[0073] 最后應(yīng)說明的是:以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管 參照前述實(shí)施例對本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可 以對前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對其中部分技術(shù)特征進(jìn)行等同替換; 而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的精神和 范圍。
【主權(quán)項】
1. 一種硬盤數(shù)據(jù)恢復(fù)方法,所述硬盤具有記錄有數(shù)據(jù)文件的物理頁,其特征在于,所述 方法包括: 讀所述記錄有數(shù)據(jù)文件的物理頁,將所述物理頁內(nèi)的數(shù)據(jù)文件按照頁邊界對齊的方式 在日志區(qū)域內(nèi)生成相對于原始日志文件的新日志文件; 當(dāng)所述物理頁的讀取過程發(fā)生中斷時,標(biāo)記所述物理頁為斷點(diǎn)物理頁,并確定所述斷 點(diǎn)物理頁的地址; 回滾所述新日志文件,將所述新日志文件中與所述斷點(diǎn)物理頁的地址相應(yīng)的按照頁邊 界對齊的數(shù)據(jù)文件信息寫入所述斷點(diǎn)物理頁,完成數(shù)據(jù)的恢復(fù)。2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述讀所述記錄有數(shù)據(jù)文件的物理頁,將 所述物理頁內(nèi)的數(shù)據(jù)文件按照頁邊界對齊的方式在日志區(qū)域內(nèi)生成相對于原始日志文件 的新日志文件包括: 讀所述記錄有數(shù)據(jù)文件的物理頁,獲取所述數(shù)據(jù)文件在所述物理頁上的開始位置和結(jié) 束位置; 根據(jù)所述開始位置和所述結(jié)束位置,按照4K對齊的方式確定頁首邊界位置和頁尾邊界 位置; 將所述物理頁內(nèi)的數(shù)據(jù)文件按照所述頁首邊界位置和頁尾邊界位置對齊的方式在日 志區(qū)域內(nèi)生成相對于原始日志文件的新日志文件。3. 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述頁首邊界位置=[所述開始位置/4Kj* 4K,所述頁尾邊界位置=[(所述結(jié)束位置+4K-1) /4K>4K。4. 根據(jù)權(quán)利要求1所述的方法,其特征在于,在完成數(shù)據(jù)的恢復(fù)后,無效所述日志區(qū)域 內(nèi)的原始日志文件。5. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述回滾所述新日志文件,將所述新日志 文件中與所述斷點(diǎn)物理頁的地址相應(yīng)的按照頁邊界對齊的數(shù)據(jù)文件信息寫入所述斷點(diǎn)物 理頁,完成數(shù)據(jù)的恢復(fù)還包括: 當(dāng)所述新日志文件中與所述斷點(diǎn)物理頁的地址相應(yīng)的按照頁邊界對齊的數(shù)據(jù)文件信 息無法寫入所述斷點(diǎn)物理頁時,將所述新日志文件中與所述斷點(diǎn)物理頁的地址相應(yīng)的按照 頁邊界對齊的數(shù)據(jù)文件信息重映射至無數(shù)據(jù)文件信息的物理頁中,并相應(yīng)地修改所述新日 志文件中記錄所述斷點(diǎn)物理頁的數(shù)據(jù)文件信息的物理頁地址,完成數(shù)據(jù)的恢復(fù)。6. -種硬盤數(shù)據(jù)恢復(fù)系統(tǒng),所述硬盤具有記錄有數(shù)據(jù)文件的物理頁,其特征在于,所述 系統(tǒng)包括: 新日志文件生成單元,用于:讀所述記錄有數(shù)據(jù)文件的物理頁,將所述物理頁內(nèi)的數(shù)據(jù) 文件按照頁邊界對齊的方式在日志區(qū)域內(nèi)生成相對于原始日志文件的新日志文件; 斷點(diǎn)物理頁定位單元,用于:當(dāng)所述物理頁的讀取過程發(fā)生中斷時,標(biāo)記所述物理頁為 斷點(diǎn)物理頁,并確定所述斷點(diǎn)物理頁的地址; 日志回滾單元,用于:回滾所述新日志文件,將所述新日志文件中與所述斷點(diǎn)物理頁的 地址相應(yīng)的按照頁邊界對齊的數(shù)據(jù)文件信息寫入所述斷點(diǎn)物理頁,完成數(shù)據(jù)的恢復(fù)。7. 根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述新日志文件生成單元包括: 數(shù)據(jù)定位模塊,用于讀所述記錄有數(shù)據(jù)文件的物理頁,獲取所述數(shù)據(jù)文件在所述物理 頁上的開始位置和結(jié)束位置; 頁邊界對齊模塊,用于根據(jù)所述開始位置和所述結(jié)束位置,按照4K對齊的方式確定頁 首邊界位置和頁尾邊界位置; 新日志生成模塊,用于將所述物理頁內(nèi)的數(shù)據(jù)文件按照所述頁首邊界位置和頁尾邊界 位置對齊的方式在日志區(qū)域內(nèi)生成相對于原始日志文件的新日志文件。8. 根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,所述頁首邊界位置=|_所述開始位置/4K]* 4K,所述頁尾邊界位置=I (所述結(jié)束位置+4K-1) /4K_|*4K。9. 根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,與所述日志回滾單元連接的還包括原始日 志清理單元,所述原始日志清理單元用于: 在完成數(shù)據(jù)的恢復(fù)后,無效所述日志區(qū)域內(nèi)的原始日志文件。10. 根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,與所述日志回滾單元連接的還包括重映 射單元,所述重映射單元用于在所述新日志文件中與所述斷點(diǎn)物理頁的地址相應(yīng)的按照頁 邊界對齊的數(shù)據(jù)文件信息無法寫入所述斷點(diǎn)物理頁時,將所述新日志文件中與所述斷點(diǎn)物 理頁的地址相應(yīng)的按照頁邊界對齊的數(shù)據(jù)文件信息重映射至無數(shù)據(jù)文件信息的物理頁中, 并相應(yīng)地修改所述新日志文件中記錄所述斷點(diǎn)物理頁的數(shù)據(jù)文件信息的物理頁地址。
【文檔編號】G06F11/14GK105893172SQ201510854551
【公開日】2016年8月24日
【申請日】2015年11月30日
【發(fā)明人】孫方臣
【申請人】樂視云計算有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
萍乡市| 九寨沟县| 衡水市| 柳州市| 兴文县| 鱼台县| 崇礼县| 山阴县| 张北县| 三原县| 门头沟区| 五峰| 神木县| 杂多县| 福海县| 砀山县| 达尔| 荔浦县| 从江县| 通辽市| 西峡县| 新龙县| 东乡族自治县| 平阴县| 邵东县| 平塘县| 务川| 贺州市| 门源| 石台县| 西藏| 广水市| 调兵山市| 娱乐| 青浦区| 茶陵县| 大厂| 龙川县| 荣成市| 翼城县| 岢岚县|