lock中存放的位置為高頻訪問信息區(qū)時,將superblock發(fā)生變化的信息輪流寫入版本號為偶數(shù)或奇數(shù)的高頻訪問信息區(qū),對所述superblock和備用superblock進行輪流刷新,刷新后版本號遞增,并保持各自的奇偶性。
[0040]進一步的,當寫入低頻訪問信息區(qū)時發(fā)生斷電故障導致信息不可信,則該低頻訪問信息區(qū)內(nèi),正在寫入的所述superblock或備用superblock將處于無法讀取的狀態(tài),所述無法讀取的狀態(tài)包括魔術數(shù)不正確,校驗值不正確或者所述superblock和備用superblock兩者的版本號不一致的情況。
[0041]進一步的,在雙控模式下,當控制器狀態(tài)發(fā)生變化時,所述方法還包括:當接管對端控制器異常斷電的superblock時,將讀出的superblock信息再次寫入磁盤的另一個存儲區(qū)域。當重啟創(chuàng)建raid過程中,或者接管對端控制器的superblock時,所述方法還包括:分別讀取所述superblock和備用superblock,并進行校驗;若只有一個區(qū)域校驗通過,貝Ij選取該區(qū)域為新superblock ;若兩個區(qū)域都校驗失敗,則superblock失效;若兩個區(qū)域都生效,則選取版本號大的區(qū)域作為新superblock。
[0042]本發(fā)明實施例中,根據(jù)superblock的訪問頻次不同,可以將superblock的寫入方式,歸結(jié)成兩種方式:一種是,每次訪問都寫兩次superblock,此種方式適合于低頻訪問的區(qū)域,另一種是每次輪流訪問版本號為雙數(shù)或單數(shù)的區(qū)域,此類方式適用于高頻訪問,但是要求處理過程不能有寫沖突。
[0043]本發(fā)明的具體工作流程,如下:
[0044]在創(chuàng)建的過程中,將superblock的各個區(qū)域的兩個版本分別寫入對應區(qū)域中。
[0045]當所要訪問的raid信息在所述superblock中存放的位置為低頻訪問信息區(qū)時,raid的superblock低頻訪問信息發(fā)生變化,連續(xù)兩次同步將superblock內(nèi)容寫入不同區(qū)域中,版本號相同,若第一次寫入時發(fā)生斷電故障導致信息部可信,則該區(qū)域內(nèi)數(shù)據(jù)無法讀取或校驗不對,而另一個區(qū)域內(nèi)的校驗是正確的,反之亦然;而當?shù)谝淮螌懭氤晒?,第二次沒有寫入時,由于新寫入的版本號比之前的要新,故而能根據(jù)版本信息判別出正確的superblock 信息。
[0046]當所要訪問的raid信息在所述superblock中存放的位置為高頻訪問信息區(qū)時,raid的superblock高頻訪問信息發(fā)生變化,則依次訪問版本信息為單或者雙數(shù)的版本。由于這部分superblock是由于寫1的影響,而且在此類superblock寫完成前,1不會返回正確,所以失去最新的superblock不會對數(shù)據(jù)的正確性產(chǎn)生影響,所以即便最后一個版本的信息沒有完整的寫入superblock區(qū)域當中,只要回到它的上一個正確完整的版本,即不會影響整個邏輯的正確性,這樣做的好處在于把原來寫在一個磁盤區(qū)域的1次數(shù),平攤到了兩個區(qū)域內(nèi)減半了磁盤在寫入過程中出錯的概率。
[0047]在控制器狀態(tài)發(fā)生變化時,在接管對端異常斷電的superblock時,需要將讀出的信息再次寫入磁盤的另一個區(qū)域,一面因為兩個控制器連續(xù)出現(xiàn)異常,而導致版本雙備的失效。
[0048]在重啟創(chuàng)建raid過程中,或者接管對端控制器的superblock時,由于都是低頻訪問,讀取raid的superblock方法如圖2所示,具體包括:
[0049]同時讀取superblock的兩個區(qū)域(在用superblock與備用superblock),分別進行各自正確性校驗;
[0050]判斷是否有只有一方成功通過檢驗;
[0051]若是,則選取此成功區(qū)域為superblock信息的返回值,判斷是否全部檢驗失敗,若兩個都不通過,則認定superblock讀取失效;
[0052]若兩個都生效則選取版本號較大的一方作為superblock的返回值。
[0053]采用本發(fā)明提出的一種磁盤陣列raid的超級塊superblock的備份方法,增加raid的superblock的備份機制,并能保證若兩份信息不同,讀取的時候能讀取出正確的信息,增加raid的superblock的備份機制后,不會增加對磁盤superblock高頻訪問的區(qū)域?qū)懘螖?shù),進而不會增加壞塊風險,在雙控制器系統(tǒng)中,不會因為狀態(tài)的頻繁切換而導致熱備功能失效,從而減半了 superblock高頻訪問在磁盤的位置出現(xiàn)壞塊的可能性,解決了 raid在寫superblock過程中掉電,丟失superblock信息的問題,增加了系統(tǒng)的穩(wěn)定性。
[0054]以上所述僅是本發(fā)明的優(yōu)選實施方式,應當指出,對于本技術領域的普通技術人員來說,在不脫離本發(fā)明技術原理的前提下,還可以做出若干改進和替換,這些改進和替換也應視為本發(fā)明的保護范圍。
【主權(quán)項】
1.一種磁盤陣列raid的超級塊superblock的備份方法,其特征在于,包括: 根據(jù)磁盤陣列raid的超級塊superblock中存放的raid信息的訪問頻次將所述superblock進行劃分,得到低頻訪問信息區(qū)和高頻訪問信息區(qū),所述低頻訪問信息區(qū)存儲有盤組信息、磁盤狀態(tài)以及r a i d的初始狀態(tài),所述高頻訪問信息區(qū)存儲有初始化重建信息; 將所述superblock進行備份,得到備用superblock,將所述superblock和所述備用superblock分別存儲在兩個存儲區(qū)域; 進行superblock訪問時,根據(jù)所要訪問的raid信息在所述superblock中存放的位置,對所述superblock和備用superblock進行刷新。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述superblock和所述備用superblock均設置有魔術數(shù)、校驗值以及與刷新次數(shù)相對應的版本號。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述superblock的低頻訪問信息區(qū)和所述備用superblock的低頻訪問信息區(qū),兩者的初始版本號相同; 所述superblock的高頻訪問信息區(qū)和所述備用superblock的高頻訪問信息區(qū),兩者的初始版本號互為奇偶。
4.根據(jù)權(quán)利要求2或3所述的方法,其特征在于,所述根據(jù)所要訪問的raid信息在所述superblock中存放的位置,對所述superblock和備用superblock進行刷新,進一步包括: 當所要訪問的raid信息在所述superblock中存放的位置為低頻訪問信息區(qū)時,將superblock發(fā)生變化的信息分別寫入兩個低頻訪問信息區(qū),對所述superblock和備用superblock進行同步刷新,刷新后版本號遞增; 當所要訪問的raid信息在所述superblock中存放的位置為高頻訪問信息區(qū)時,將superblock發(fā)生變化的信息輪流寫入版本號為偶數(shù)或奇數(shù)的高頻訪問信息區(qū),對所述superblock和備用superblock進行輪流刷新,刷新后版本號遞增,并保持各自的奇偶性。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,當寫入低頻訪問信息區(qū)時發(fā)生斷電故障導致信息不可信,則該低頻訪問信息區(qū)內(nèi),正在寫入的所述superblock或備用superblock將處于無法讀取的狀態(tài),所述無法讀取的狀態(tài)包括魔術數(shù)不正確,校驗值不正確或者所述superblock和備用superblock兩者的版本號不一致的情況。
6.根據(jù)權(quán)利要求1-5任一權(quán)利要求所述的方法,其特征在于,在控制器狀態(tài)發(fā)生變化時,所述方法還包括: 當接管對端控制器異常斷電的superblock時,將讀出的superblock信息再次寫入磁盤的另一個存儲區(qū)域。
7.根據(jù)權(quán)利要求1-5任一權(quán)利要求所述的方法,其特征在于,在重啟創(chuàng)建raid過程中,或者接管對端控制器的superblock時,所述方法還包括: 分別讀取所述superblock和備用superblock,并進行校驗; 若只有一個區(qū)域校驗通過,則選取該區(qū)域為新superblock ;若兩個區(qū)域都校驗失敗,則superblock失效;若兩個區(qū)域都生效,則選取版本號大的區(qū)域作為新superblock。
【專利摘要】本發(fā)明提供了一種磁盤陣列raid的超級塊superblock的備份方法,包括:根據(jù)磁盤陣列raid的超級塊superblock中存放的raid信息的訪問頻次將所述superblock進行劃分,得到低頻訪問信息區(qū)和高頻訪問信息區(qū),所述低頻訪問信息區(qū)存儲有盤組信息、磁盤狀態(tài)以及raid的初始狀態(tài),所述高頻訪問信息區(qū)存儲有初始化重建信息;將所述superblock進行備份,得到備用superblock,將所述superblock和所述備用superblock分別存儲在兩個存儲區(qū)域;進行superblock訪問時,根據(jù)所要訪問的raid信息在所述superblock中存放的位置,對所述superblock和備用superblock進行刷新。本發(fā)明減半了superblock高頻訪問在磁盤的位置出現(xiàn)壞塊的可能性,解決了raid在寫superblock過程中掉電,丟失superblock信息的問題,增加了系統(tǒng)的穩(wěn)定性。
【IPC分類】G06F11-14, G06F12-16
【公開號】CN104657234
【申請?zhí)枴緾N201510059586
【發(fā)明人】高華龍
【申請人】北京神州云科數(shù)據(jù)技術有限公司
【公開日】2015年5月27日
【申請日】2015年2月4日