一種用于奇數(shù)盤raid5的數(shù)據(jù)恢復方法
【技術領域】
[0001]本發(fā)明涉及信息安全技術領域,特別涉及一種用于奇數(shù)盤RAID5的數(shù)據(jù)恢復方法。
【背景技術】
[0002]RAID5是一種存儲性能、數(shù)據(jù)安全和存儲成本兼顧的存儲解決方案,主要針對擁有大存儲資源的企事業(yè)單位,例如影音多媒體數(shù)字內容創(chuàng)作公司、個人影音剪輯數(shù)字內容工作室、證券、銀行等金融行業(yè)、數(shù)字監(jiān)控系統(tǒng)(DVR)、網(wǎng)絡監(jiān)控系統(tǒng)(NVR)等。
[0003]如果RAID5出現(xiàn)故障,產(chǎn)生的后果往往是災難性的。因此針對RAID5的重組和數(shù)據(jù)恢復就必不可少了。目前市面上有一些針對RAID 5的數(shù)據(jù)進行重組和恢復的方法,但是這些方法需要專業(yè)人士才能夠完成操作,且恢復速度慢,且正確率不高。
【發(fā)明內容】
[0004]本發(fā)明針對現(xiàn)有技術的缺陷,提供了一種用于奇數(shù)盤RAID5的數(shù)據(jù)恢復方法,能有效的解決上述現(xiàn)有技術存在的問題。
[0005]為了實現(xiàn)以上發(fā)明目的,本發(fā)明采取的技術方案如下:一種用于奇數(shù)盤RAID5的數(shù)據(jù)恢復方法,包括以下步驟:
[0006]S1:在所有盤中檢索NTFS分區(qū)的DBR信息;
[0007]S2:DBR中檢索MFT表開始位置;
[0008]S3:區(qū)分校驗區(qū)與數(shù)據(jù)區(qū);
[0009]S4:計算條帶大小與陣列開始位置;
[0010]S5:硬盤橫向排列組成陣列;
[0011]S6:按照四種常用排列順序重組陣列,直至重組成功。
[0012]作為優(yōu)選,所述SI的詳細步驟如下:
[0013]SlOl:以扇區(qū)為單位向上進行檢索,找扇區(qū)偏移位“512 = 509”;
[0014]S102:判斷該位置是否有DBR尾部特征,若有則執(zhí)行S103,若沒有以該位置為起點執(zhí)行SlOl ;
[0015]S103:判斷該扇區(qū)偏移位“512 = O”是否為DBR頭部特征,若是則執(zhí)行S104,若不是則以該位置為起點執(zhí)行SlOl ;
[0016]S104:根據(jù)DBR中偏移位置“0X28”的4個字節(jié)確定當前分區(qū)大小,將分區(qū)大小定義為“TS”,磁盤數(shù)定義為“N”;
[0017]S105:DBR尾部向上偏移TS/(N-1)的偏移量,判斷偏移后是否為本分區(qū)DBR頭部位置若是則記錄并以該位置為起點執(zhí)行S101,若不是則執(zhí)行S106 ;
[0018]S106:判斷是否為硬盤頂部,若是則結束,若不是則以該位置為起點執(zhí)行S101。
[0019]作為優(yōu)選,所述S2的詳細步驟如下:
[0020]S201:找分區(qū)開始偏移“0x30”位置的8個字節(jié),該8個字節(jié)為分區(qū)開始到分區(qū)MFT頭部的總簇數(shù),將總簇數(shù)值定義為“CS” ;
[0021]S202:找分區(qū)開始偏移“OxD”位置的I個字節(jié),該I個字節(jié)為該分區(qū)簇大小,將分區(qū)簇大小定義為“C”;
[0022]S203:通過公式(CS*C) / (N-1)計算得到分區(qū)開始偏移至MFT頭部的偏移量,;
[0023]S204:MFT頭部偏移至“0x0”位置,判斷4個字節(jié)是否為MFT特征,若是則結束,若否則執(zhí)行S205 ;
[0024]S205:檢索整個盤找到MFT特征。
[0025]作為優(yōu)選,所述S3的詳細步驟如下:
[0026]S301:根據(jù)MFT特征位置橫向檢索陣列中所有盤相同位置并判斷是否有MFT特征,若沒有則認為可能是校驗區(qū);
[0027]S302:通過異或算法驗證校驗區(qū)位置,通過N-1個盤異或值等于剩余盤的值可以確定校驗區(qū),若不相等則按照MFT單元大小跳至下一個MFT項進行驗證直至完成所有的MFT單元。
[0028]作為優(yōu)選,所述S4的詳細步驟如下:
[0029]S401:計算一個盤中找到兩個連續(xù)的校驗區(qū)之間的間隔大小,將該間隔大小定義為“X”,陣列中一橫排條帶的大小等于“X” ;
[0030]S402:運用公式計算一個條帶大小=X/N,將一個條帶大小定義為“M”
[0031]S403:將第一個條帶開始到分區(qū)DBR頭部位置之間的扇區(qū)大小定義為“T” ;
[0032]S404:通過公式T/Μ判斷是否能整除,若能則認為分區(qū)開始即為陣列開始位置;若不能則通過公式[(T整除M)+1]*M = Y,從條帶向上偏移Y得到陣列開始位置。
[0033]作為優(yōu)選,所述S5中將所有硬盤以虛擬的橫向位置整體排列組成陣列,并將校驗區(qū)排列成線性關系。
[0034]作為優(yōu)選,所述S6中通過陣列開始及條帶大小,按照左同步(連續(xù))、左同步(標準)、右異步和右同步,這4種陣列排列方式進行匹配重組,直至陣列重組成功。
[0035]與現(xiàn)有技術相比本發(fā)明的優(yōu)點在于:能夠利用DBR特征和MFT特征快速掃描并得到整個陣列結構,準確區(qū)分數(shù)據(jù)區(qū)與校驗區(qū)數(shù)據(jù),利用RIAD5的常見陣列排列方式進行數(shù)據(jù)匹配重組,解析整個陣列結構速度快,數(shù)據(jù)重組速度快,數(shù)據(jù)恢復成功率。
【附圖說明】
[0036]圖1為發(fā)明實施例的主流程圖;
[0037]圖2為發(fā)明步驟SI的詳細流程圖;
[0038]圖3為發(fā)明步驟S2的詳細流程圖;
[0039]圖4為發(fā)明步驟S3的詳細流程圖;
[0040]圖5為發(fā)明步驟S4的詳細流程圖;
[0041]圖6為發(fā)明步驟S5排列后陣列虛擬效果圖。
【具體實施方式】
[0042]為使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,以下參照附圖并舉實施例,對本發(fā)明做進一步詳細說明。
[0043]如圖1所示,一種用于奇數(shù)盤RAID5的數(shù)據(jù)恢復方法,包括以下步驟:
[0044]S1:在所有盤中檢索NTFS分區(qū)的DBR ;
[0045]S2:DBR中檢索MFT表開始位置;
[0046]S3:區(qū)分校驗區(qū)與數(shù)據(jù)區(qū);
[0047]S4:計算條帶大小與陣列開始位置;
[0048]S5:硬盤橫向排列組成陣列;
[0049]S6:按照四種常用排列順序重組陣列,直至重組成功。
[0050]如圖2所示,所述SI的詳細步驟如下:
[0051]SlOl:以扇區(qū)為單位向上進行檢索,找扇區(qū)偏移位“512 = 509”;
[0052]S102:判斷該位置是否有DBR尾部特征“0055AA”,若有則執(zhí)行S103,若沒有以該位置為起點執(zhí)行SlOl ;
[0053]S103:判斷該扇區(qū)偏移位“512 = O”是否為DBR頭部特征“0XEB52904E544653”,若是則執(zhí)行S104,若不是則以該位置為起點執(zhí)行SlOl ;
[0054]S104:根據(jù)DBR中偏移位置“0X28”的4個字節(jié)確定當前分區(qū)大小,將分區(qū)大小定義為“TS”,磁盤數(shù)定義為“N”;
[0055]S105:DBR尾部向上偏移TS/(N_1)的偏移量,判斷偏移后是否為本分區(qū)DBR頭部位置若是則記錄并以該位置為起點執(zhí)行S101,若不是則執(zhí)行S106 ;
[0056]S106:判斷是否為硬盤頂部,若是則結束,若不是則以該位置為起點執(zhí)行SlOl。