專利名稱:一種raid類型判斷方法
技術領域:
本發(fā)明涉及計算機存儲領域,更具體地說,涉及一種RAID類型判斷方法。
背景技術:
RAID重組屬于高端數據恢復技術的一種,涉及面廣,技術含量高。但是因為耗費人力資源眾多、工序繁瑣,成本奇高,收費也相當可觀。RAID重組中,分析是最重要的環(huán)節(jié),注意我們所指的RAID是對RAIDO、RAIDl、RAID5、RAID6、JBOD等常用陣列而言。
從RAID的原理來講,其本質是利用多磁盤并行協作,達到擴容和增加吞吐量的目的,所以,RAID必然有一套相當復雜的數據分配機制,既要保證數據按照協議規(guī)定的情形被寫在指定磁盤的指定位置,又要保證這種協議不會導致性能的損失,甚至要起到優(yōu)化性能,增強安全性的作用。當RAID系統(tǒng)崩潰時,其賴以生存的數據組織協議就不復存在。這樣操作系統(tǒng)識別RAID的抽象接口也將隨之瓦解。此刻RAID由一個存儲整體分割成了一個個磁盤單位。我們無論從任何一塊磁盤角度來看,里面的數據都毫無意義。RAID重組就是根據RAID協議中所描述的算法,利用程序模擬RAID本來面貌,從而恢復數據的一種有效手段,是災難拯救中非常重要的一環(huán)。由于RAID種類眾多,大大增減了自動化分析的難度,所以迄今為止,手工分析仍是RAID重組學科中的主流技術。即便擁有自動分析的軟件,仍有一個主要問題無法解決,那就是RAID種類識別,據統(tǒng)計80%的RAID數據恢復客戶不清楚或錯誤地判斷自己存儲系統(tǒng)的RAID類型,給數據恢復工程師造成誤導,大大增加了分析難度。中國發(fā)明專利申請201010140518. 7公開了一種遠程智能監(jiān)控與分析RAID故障的方法,采用分布式數據處理模式,本地實時監(jiān)視與預測RAID的工作狀態(tài),當發(fā)出現異常時,本地計算機將與RAID相關的參數及RAID的工作狀態(tài)發(fā)送至Web服務端,由服務端程序確定告警的級別和相應的處理方案,并將告警信息與系統(tǒng)自動產生的故障解決方案及時告知用戶,本發(fā)明的有益效果是=RAID發(fā)生故障或異常時及時告知用戶,避免因數據丟失帶來的損失。為用戶提供遠程的智能化的故障診斷與問題解決方案,幫助用戶快速定位故障,并迅速有效的解決問題??墒巧鲜鰧@暾埖募夹g方案是建立在確定RAID類型的基礎上進行操作,如果在不確定故障RAID類型的情況下進行恢復操作,容易誤導數據恢復工程師做出錯誤的判斷,并造成時間上的浪費。如果依次嘗試假設各種類型的RAID,則需要大量的時間進行操作。特別是對于大存儲量的RAID來說,恢復數據往往需要幾十小時,或者上百小時。依次嘗試各種類型,將浪費大量的時間,并不可行
發(fā)明內容
本發(fā)明的目的在于克服現有技術的不足,提供一種能夠實現RAID類型的自動化識別,而且速度極快,可以滿足大多數數據恢復從業(yè)人員需求的RAID類型判斷方法。本發(fā)明的技術方案如下一種RAID類型判斷方法,步驟如下I)讀取RAID系統(tǒng)中各硬盤相同地址的數據;2)根據各種RAID類型中,各硬盤相同址的數據間的關系,確定RAID類型。作為優(yōu)選,步驟I)具體為在RAID系統(tǒng)中抽取任意一塊硬盤,搜尋一個以上非全O扇區(qū),記錄地址并讀取所述的扇區(qū)至內存;在其余硬盤中搜尋相同地址的非全O扇區(qū)至內存,分別保存在內存中的區(qū)域SI、S2、S3、……、Sn。 作為優(yōu)選,搜尋非全O扇區(qū)的范圍為整個磁盤容量區(qū)域。作為優(yōu)選,步驟2)中,如果SI異或S2異或S3、......、等于Sn,則確定當前RAID
類型為RAID5。作為優(yōu)選,步驟I)具體為查找硬盤中的主文件表(MFT),記錄主文件表(MFT)中的文件記錄數組的地址,在每個硬盤上讀取文件記錄數組的地址的數據至內存中。作為優(yōu)選,查找硬盤中的主文件表(MFT)具體為在RAID系統(tǒng)中抽取任意一塊硬盤,搜索0x460x490x4C0x45四個字節(jié),然后連續(xù)搜索32KB的區(qū)域,如果所述的32KB的區(qū)域中每KB的前四個字節(jié)均為0x460x490x403x45,則停止搜索,記錄當前地址;讀取的文件記錄數組的數據為1KB。作為優(yōu)選,步驟2)具體為2. I)在讀取的數據中的0x2C偏移處獲得一個無符號整型變量,記為a、b、C、d、......;2. 2)對所述的整型變量進行升冪排序;2. 3)判斷排序后的的無符號整型數據是否為等差,并且判斷其差是否滿足2的η次冪,如果滿足,確定該RAID類型為RAIDO。作為優(yōu)選,步驟2)中,排除S1、S2、S3、……、Sn中的一個區(qū)域的數據,對其余數據進行異或運算,如果除最后一個數據的其他在前數據依次異或的結果等于最后一個數據,而且排除的數據滿足其它數據的里德-所羅門編碼運算,則確定該RAID類型為RAID6。作為優(yōu)選,步驟I)具體為在每個硬盤上隨機讀取一個以上地址相同的非全O扇區(qū)。作為優(yōu)選,如果每個硬盤的相同地址的非全O扇區(qū)完全相等,則該RAID類型為RAIDl0作為優(yōu)選,步驟I)具體為在每個硬盤上并行搜索主引導(MBR)扇區(qū),如果在某個硬盤上找到主引導(MBR)扇區(qū),則設該硬盤為RAID系統(tǒng)的I號盤。作為優(yōu)選,步驟2)具體為2. I)從主引導(MBR)扇區(qū)中的0x01D6處提取一個32位整型作為擴展分區(qū)的起始地址;2. 2)從擴展分區(qū)的擴展分區(qū)引導(EBR)扇區(qū)的0x01C6處提取一個32位整型作為第一個分區(qū)的DBR扇區(qū)的起始地址;2. 3)在所述的分區(qū)的DOS引導記錄(DBR)扇區(qū)的0x30處獲取其主文件表(MFT)的起始地址;2. 4)依次讀取主文件表(MFT)記錄,如果每個記錄的0x2C處提取的32位整型為連續(xù)整數,該RAID類型為JB0D。本發(fā)明的有益效果如下本發(fā)明所述的RAID類型判斷方法,填補了本領域內,關于RAID類型的判斷的技術的空白,大大彌補了某些RAID參數分析軟件的不足。采用本發(fā)明所述的技術方案,可以大大增加RAID重組技術的智能性,節(jié)約時間,減少成本,降低工程師壓力;更重要的,可以避免因客戶提供錯誤信息而帶來的更大損失。
綜上所述,本發(fā)明所述的方法作為本領域內對空白技術的重要補充,而且具備多方面的優(yōu)越性,擁有廣闊市場前景。
具體實施例方式以下結合實施例對本發(fā)明進行進一步的詳細說明。常用RAID 種類有 JBOD、RAID O、RAID I、RAID 5、RAID 6、RAID 10 以及 RAID 50等,不同類型的RAID具有各自不同的數據存儲規(guī)則。因此,本發(fā)明在對各種類型的RAID的存儲規(guī)則進行判斷,從而進行RAID的類型的確認。步驟如下I)讀取RAID系統(tǒng)中各硬盤相同地址的數據;2)根據各種RAID類型中,各硬盤相同址的數據間的關系,確定RAID類型。RAID5的判斷方法步驟I、在RAID系統(tǒng)中抽取任意一塊硬盤,搜尋一個以上非全O扇區(qū),搜尋非全O扇區(qū)的范圍為整個磁盤容量區(qū)域;記錄地址并讀取所述的扇區(qū)至內存;在其余硬盤中搜尋相同地址的非全O扇區(qū)至內存,分別保存在內存中的區(qū)域SI、S2、S3、……、Sn。步驟2、如果SI異或S2異或S3、……、等于Sn,則確定當前RAID類型為RAID5。實施例一在RAID系統(tǒng)中抽取任意一塊硬盤,在整個磁盤容量區(qū)域內,搜尋1000個非全O扇區(qū)。記錄地址并讀取這些扇區(qū)至內存;在其它磁盤的相同地址讀取1000個非O扇區(qū)至內存中。內存區(qū)域我們用A、B、C、D……表示。比如陣列中有4塊硬盤,我們就,分別讀取到A、B、C、D……中;對這數據進行異或運算,如果滿足A異或B異或C等于D,可以確定該陣列是RAID5,流程中止。RAIDO的判斷方法步驟I、查找硬盤中的主文件表(MFT),記錄主文件表(MFT)中的文件記錄數組的地址,在每個硬盤上讀取文件記錄數組的地址的數據至內存中。查找硬盤中的主文件表(MFT)具體為在RAID系統(tǒng)中抽取任意一塊硬盤,搜索0x460x490x4C0x45四個字節(jié),然后連續(xù)搜索32KB的區(qū)域,如果所述的32KB的區(qū)域中每KB的前四個字節(jié)均為0x460x490x4C0x45,則停止搜索,記錄當前地址;讀取的文件記錄數組的數據為IKB。步驟2、
2. I)在讀取的數據中的0x2C偏移處獲得一個無符號整型變量;2. 2)對所述的整型變量進行升冪排序;2. 3)判斷排序后的的無符號整型數據是否為等差,并且判斷其差是否滿足2的η次冪,如果滿足,確定該RAID類型為RAIDO。實施例二搜索0x460x490x4C0x45四個字節(jié) ,也就是MFT記錄標記,搜索成功后繼續(xù)搜索,如果連續(xù)32KB的區(qū)域內,每KB中的前4個字節(jié)都是0x460x490x4C0x45,搜索停止,記錄當前地址到變量A中,否則繼續(xù)搜索。在每塊磁盤的變量地址處都讀取IKB數據至內存中。在讀取的數據中的0x2C偏移處獲得一個無符號整型變量,我們記為a、b、c、d·.·。 對這些整型變量做升冪排序。判斷這些無符號整型彼此的差是否相等,其差是否滿足2的次冪,如果滿足可以確定該RAID為RAID0。仍以4塊盤為例單位KB、a為32,b為64,c為96、d為128,它們的彼此差為32,32又是2的5次方,那么條件滿足,這4塊硬盤是一個RAIDO系統(tǒng),本步驟同時得出RAID條帶塊大小為32KB。RAID6的判斷方法步驟I、在RAID系統(tǒng)中抽取任意一塊硬盤,搜尋一個以上非全O扇區(qū),搜尋非全O扇區(qū)的范圍為整個磁盤容量區(qū)域;記錄地址并讀取所述的扇區(qū)至內存;在其余硬盤中搜尋相同地址的非全O扇區(qū)至內存,分別保存在內存中的區(qū)域SI、S2、S3、……、Sn。步驟2、排除S1、S2、S3、……、Sn中的一個區(qū)域的數據,對其余數據進行異或運算,如果除最后一個數據的其他在前數據依次異或的結果等于最后一個數據,而且排除的數據滿足其它數據的里德-所羅門編碼運算,則確定該RAID類型為RAID6。實施例三在RAID系統(tǒng)中抽取任意一塊硬盤,在整個磁盤容量區(qū)域內,搜尋1000個非全O扇區(qū)。記錄地址并讀取這些扇區(qū)至內存;在其它磁盤的相同地址讀取1000個非O扇區(qū)至內存中。內存區(qū)域我們用A、B、C、D……表示。比如陣列中有4塊硬盤,我們就,分別讀取到A、B、C、D……中;并在排除一塊磁盤的情況下重復異或運算步驟。例如A、B、C、D、E、F6塊內存區(qū)域,我們首先排除A,也就是看B、C、D、E、F是否滿
足異或運算關系,如果是進行步驟10,如果不是排除B看A、C、D、E、F是否滿足異或關系,以此類推。判斷排除掉的數據是否滿足其它數據的里德所羅門編碼運算,如果是則確定該陣列為RAID6。RAIDl的判斷方法在每個硬盤上隨機讀取一個以上地址相同的非全O扇區(qū)。如果每個硬盤的相同地址的非全O扇區(qū)完全相等,則該RAID類型為RAIDl。實施例四如果磁盤數量只有兩塊,則隨機抽取10000個非全O扇區(qū)并記錄它們的地址。在另一塊磁盤的相同位置處共提取10000個非全O扇區(qū),比較提取數據,如果完全相等,則為RAIDloJBOD的判斷方法步驟I、在每個硬盤上并行搜索主引導(MBR)扇區(qū),如果在某個硬盤上找到主引導(MBR)扇區(qū),則設該硬盤為RAID系統(tǒng)的I號盤。步驟2、2. I)從主引導(MBR)扇區(qū)中的0x01D6處提取一個32位整型作為擴展分區(qū)的起始地址;2. 2)從擴展分區(qū)的擴展分區(qū)引導(EBR)扇區(qū)的0x01C6處提取一個32位整型作為第一個分區(qū)的DBR扇區(qū)的起始地址;
2. 3)在所述的分區(qū)的DOS引導記錄(DBR)扇區(qū)的0x30處獲取其主文件表(MFT)的起始地址;2. 4)依次讀取主文件表(MFT)記錄,如果每個記錄的0x2C處提取的32位整型為連續(xù)整數,該RAID類型為JB0D。實施例五如果磁盤數量大于2塊,則在幾塊硬盤內并行搜索MBR扇區(qū),如果在某塊磁盤內找到MBR扇區(qū),則假設該磁盤為RAID系統(tǒng)的I號盤。從MBR中0x01D6處提取一個32位整型作為擴展分區(qū)的起始地址,從擴展分區(qū)的EBR扇區(qū)的0x01C6處提取一個32位整型作為第一個分區(qū)的DBR扇區(qū)的起始地址,在該分區(qū)DBR扇區(qū)的0x30處獲取其MFT表的起始地址。依次讀取MFT記錄,大小1KB,判斷每個記錄的0x2C處提取的32位整型是否滿足連續(xù)的整數特性,如果滿足,該RAID為JB0D。比如第一個記錄0x2C處應當為O、第二個記錄為I......一直連續(xù)至N,就認為其滿
足JBOD的特性。上述實施例僅是用來說明本發(fā)明,而并非用作對本發(fā)明的限定。只要是依據本發(fā)明的技術實質,對上述實施例進行變化、變型等都將落在本發(fā)明的權利要求的范圍內。
權利要求
1.一種RAID類型判斷方法,其特征在于,步驟如下 O讀取RAID系統(tǒng)中各硬盤相同地址的數據; 2)根據各種RAID類型中,各硬盤相同址的數據間的關系,確定RAID類型。
2.根據權利要求I所述的RAID類型判斷方法,其特征在于,步驟I)具體為在RAID系統(tǒng)中抽取任意一塊硬盤,搜尋一個以上非全O扇區(qū),記錄地址并讀取所述的扇區(qū)至內存;在其余硬盤中搜尋相同地址的非全O扇區(qū)至內存,分別保存在內存中的區(qū)域S1、S2、S3、……、Sn。
3.根據權利要求2所述的RAID類型判斷方法,其特征在于,搜尋非全O扇區(qū)的范圍為整個磁盤容量區(qū)域。
4.根據權利要求2所述的RAID類型判斷方法,其特征在于,步驟2)中,如果SI異或S2異或S3、……、等于Sn,則確定當前RAID類型為RAID5。
5.根據權利要求I所述的RAID類型判斷方法,其特征在于,步驟I)具體為查找硬盤中的主文件表(MFT),記錄主文件表(MFT)中的文件記錄數組的地址,在每個硬盤上讀取文件記錄數組的地址的數據至內存中。
6.根據權利要求5所述的RAID類型判斷方法,其特征在于,查找硬盤中的主文件表(MFT)具體為在RAID系統(tǒng)中抽取任意一塊硬盤,搜索0x460x490x4C0x45四個字節(jié),然后連續(xù)搜索32KB的區(qū)域,如果所述的32KB的區(qū)域中每KB的前四個字節(jié)均為0x460x490x403x45,則停止搜索,記錄當前地址;讀取的文件記錄數組的數據為1KB。
7.根據權利要求5所述的RAID類型判斷方法,其特征在于,步驟2)具體為 2. I)在讀取的數據中的0x2C偏移處獲得一個無符號整型變量; 2. 2)對所述的整型變量進行升冪排序; 2.3)判斷排序后的的無符號整型數據是否為等差,并且判斷其差是否滿足2的η次冪,如果滿足,確定該RAID類型為RAIDO。
8.根據權利要求2所述的RAID類型判斷方法,其特征在于,步驟2)中,排除SI、S2、S3、……、Sn中的一個區(qū)域的數據,對其余數據進行異或運算,如果除最后一個數據的其他在前數據依次異或的結果等于最后一個數據,而且排除的數據滿足其它數據的里德-所羅門編碼運算,則確定該RAID類型為RAID6。
9.根據權利要求I所述的RAID類型判斷方法,其特征在于,步驟I)具體為在每個硬盤上隨機讀取一個以上地址相同的非全O扇區(qū)。
10.根據權利要求9所述的RAID類型判斷方法,其特征在于,如果每個硬盤的相同地址的非全O扇區(qū)完全相等,則該RAID類型為RAIDl。
11.根據權利要求I所述的RAID類型判斷方法,其特征在于,步驟I)具體為在每個硬盤上并行搜索主引導(MBR)扇區(qū),如果在某個硬盤上找到主引導(MBR)扇區(qū),則設該硬盤為RAID系統(tǒng)的I號盤。
12.根據權利要求11所述的RAID類型判斷方法,其特征在于,步驟2)具體為 .2.I)從主引導(MBR)扇區(qū)中的0x01D6處提取一個32位整型作為擴展分區(qū)的起始地址; . 2.2)從擴展分區(qū)的擴展分區(qū)引導(EBR)扇區(qū)的0X01C6處提取一個32位整型作為第一個分區(qū)的DBR扇區(qū)的起始地址;。2.3)在所述的分區(qū)的DOS引導記錄(DBR)扇區(qū)的0x30處獲取其主文件表(MFT)的起始地址; 。 2.4)依次讀取主文件表(MFT)記錄,如果每個記錄的0x2C處提取的32位整型為連續(xù)整數,該RAID類型為JB0D。
全文摘要
本發(fā)明涉及一種RAID類型判斷方法,步驟如下1)讀取RAID系統(tǒng)中各硬盤相同地址的數據;2)根據各種RAID類型中,各硬盤相同址的數據間的關系,確定RAID類型。本發(fā)明的有益效果如下本發(fā)明所述的RAID類型判斷方法,填補了本領域內,關于RAID類型的判斷的技術的空白,大大彌補了某些RAID參數分析軟件的不足。采用本發(fā)明所述的技術方案,可以大大增加RAID重組技術的智能性,節(jié)約時間,減少成本,降低工程師壓力;更重要的,可以避免因客戶提供錯誤信息而帶來的更大損失。綜上所述,本發(fā)明所述的方法作為本領域內對空白技術的重要補充,而且具備多方面的優(yōu)越性,擁有廣闊市場前景。
文檔編號G06F11/10GK102866933SQ201210321888
公開日2013年1月9日 申請日期2012年9月3日 優(yōu)先權日2012年9月3日
發(fā)明者高志鵬, 闕永明, 范鑫 申請人:廈門市美亞柏科信息股份有限公司