一種精簡(jiǎn)池元數(shù)據(jù)節(jié)點(diǎn)刷新一致性保護(hù)方法
【專(zhuān)利摘要】本發(fā)明提供一種精簡(jiǎn)池元數(shù)據(jù)節(jié)點(diǎn)刷新一致性保護(hù)方法,屬于數(shù)據(jù)存儲(chǔ)【技術(shù)領(lǐng)域】。本發(fā)明將元數(shù)據(jù)緩存鏡像和日志備份到冗余控制器上;將元數(shù)據(jù)的B+Tree節(jié)點(diǎn)插入、刪除時(shí)從根節(jié)點(diǎn)到葉子節(jié)點(diǎn)使用“寫(xiě)時(shí)復(fù)制”方式,刷寫(xiě)時(shí)先刷寫(xiě)B(tài)+Tree各更新節(jié)點(diǎn),最后再刷寫(xiě)指向根節(jié)點(diǎn)的超級(jí)塊;將元數(shù)據(jù)的B+Tree節(jié)點(diǎn)插入、刪除操作采用日志方式鏡像到對(duì)端冗余控制器,記錄新增、刪除的葉子節(jié)點(diǎn),并記錄B+Tree刷寫(xiě)次數(shù);當(dāng)主控端控制器失效時(shí),通過(guò)日志及版本號(hào),重新插入、刪除信息,恢復(fù)數(shù)據(jù)。通過(guò)日志方式遠(yuǎn)程鏡像到冗余控制器,保證元數(shù)據(jù)一致性。
【專(zhuān)利說(shuō)明】一種精簡(jiǎn)池元數(shù)據(jù)節(jié)點(diǎn)刷新一致性保護(hù)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)存儲(chǔ)技術(shù),尤其涉及到高端磁盤(pán)陣列中自動(dòng)精簡(jiǎn)配置的元數(shù)據(jù)處理方法,具體說(shuō)是一種精簡(jiǎn)池元數(shù)據(jù)節(jié)點(diǎn)刷新一致性保護(hù)方法。
【背景技術(shù)】
[0002]高端磁盤(pán)陣列采用多個(gè)控制器冗余設(shè)計(jì),提供存儲(chǔ)數(shù)據(jù)的高可用服務(wù),其存儲(chǔ)池的高級(jí)功能自動(dòng)精簡(jiǎn)配置,采用存儲(chǔ)資源“寫(xiě)時(shí)分配”策略,通過(guò)改變存儲(chǔ)系統(tǒng)的資源按需分配,提高磁盤(pán)存儲(chǔ)空間利用率,達(dá)到降低存儲(chǔ)系統(tǒng)的部署成本和節(jié)約資源的目的。
[0003]具有自動(dòng)精簡(jiǎn)配置功能的存儲(chǔ)池簡(jiǎn)稱(chēng)精簡(jiǎn)池,精簡(jiǎn)池在結(jié)構(gòu)上分為數(shù)據(jù)區(qū)和元數(shù)據(jù)區(qū),數(shù)據(jù)區(qū)用于存儲(chǔ)數(shù)據(jù)。元數(shù)據(jù)區(qū)包括了存儲(chǔ)池超級(jí)塊,元數(shù)據(jù)位圖,數(shù)據(jù)位圖,邏輯卷信息等,對(duì)自精簡(jiǎn)存儲(chǔ)池組織管理者。
[0004]對(duì)于精簡(jiǎn)池的元數(shù)據(jù)空間、數(shù)據(jù)空間、邏輯卷數(shù)據(jù)塊映射信息都采用B+Tree結(jié)構(gòu)組織管理,B+Tree節(jié)點(diǎn)間通過(guò)塊號(hào)指針連接,這種B+Tree組織方式的優(yōu)點(diǎn)是查詢(xún)層數(shù)少、效率較高,加載到內(nèi)存不需要轉(zhuǎn)換,但是當(dāng)對(duì)B+Tree節(jié)點(diǎn)做插入、刪除操作時(shí),會(huì)對(duì)B+Tree多層節(jié)點(diǎn)的子節(jié)點(diǎn)指針或者葉子節(jié)點(diǎn)內(nèi)容重新錯(cuò)位移動(dòng),存在以下問(wèn)題:
1、增加刪除節(jié)點(diǎn)時(shí)對(duì)元數(shù)據(jù)改動(dòng)量較大(每個(gè)節(jié)點(diǎn)為元數(shù)據(jù)空間數(shù)據(jù)塊大小,>=4KB),若以同步方式寫(xiě)入則延遲大、影響性能,若以異步方式寫(xiě)入則當(dāng)控制器掉電或者失效會(huì)造成數(shù)據(jù)丟失問(wèn)題;
2、更新過(guò)程中發(fā)生系統(tǒng)掉電或者控制器失效可導(dǎo)致樹(shù)結(jié)構(gòu)錯(cuò)亂、丟失,因?yàn)槊總€(gè)插入/刪除節(jié)點(diǎn)可能涉及多層節(jié)點(diǎn)錯(cuò)位變更、且節(jié)點(diǎn)占用空間可大于512字節(jié)扇區(qū)大小,控制器掉電或失效瞬間并不能保證完全寫(xiě)入。
【發(fā)明內(nèi)容】
[0005]本發(fā)明實(shí)施提出一種精簡(jiǎn)池元數(shù)據(jù)節(jié)點(diǎn)刷新一致性保護(hù)方法,可有效的解決上述的B+Tree節(jié)點(diǎn)插入和刪除操作帶來(lái)的兩個(gè)問(wèn)題。其包括:
1、將元數(shù)據(jù)緩存鏡像和日志備份到冗余控制器上,異步寫(xiě)入,以提高讀寫(xiě)性能;
2、將元數(shù)據(jù)的B+Tree節(jié)點(diǎn)插入、刪除時(shí)從根節(jié)點(diǎn)到葉子節(jié)點(diǎn)使用“寫(xiě)時(shí)復(fù)制”方式,刷寫(xiě)時(shí)先刷寫(xiě)B(tài)+Tree各更新節(jié)點(diǎn),最后再刷寫(xiě)指向根節(jié)點(diǎn)的超級(jí)塊。超級(jí)塊占用空間足夠小,且各指針處在512字節(jié)范圍內(nèi),在更新過(guò)程中斷電,可以保證超級(jí)塊要么記錄新B+Tree的指針,要么記錄舊B+Tree的指針,都具有完整一致性;
3、將元數(shù)據(jù)的B+Tree節(jié)點(diǎn)插入、刪除操作采用日志方式鏡像到對(duì)端控制器,記錄新增、刪除的葉子節(jié)點(diǎn),并記錄B+Tree刷寫(xiě)次數(shù)(版本號(hào))。當(dāng)主控端控制器失效時(shí),通過(guò)日志及版本號(hào),重新插入、刪除信息,恢復(fù)數(shù)據(jù)。
[0006]元數(shù)據(jù)B+Tree節(jié)點(diǎn)操作,通過(guò)日志方式遠(yuǎn)程鏡像到冗余控制器,保證元數(shù)據(jù)一致性??山鉀Q元數(shù)據(jù)B+Tree節(jié)點(diǎn)操作帶來(lái)的B+Tree多層節(jié)點(diǎn)的子節(jié)點(diǎn)指針或者葉子節(jié)點(diǎn)內(nèi)容重新錯(cuò)位移動(dòng)的問(wèn)題,以及在元數(shù)據(jù)B+Tree節(jié)點(diǎn)操作中控制器失效帶來(lái)的B+Tree丟失問(wèn)題。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0007]圖1是更新元數(shù)據(jù)B+Tree節(jié)點(diǎn)示意圖。
【具體實(shí)施方式】
[0008]下面對(duì)本發(fā)明的內(nèi)容進(jìn)行更加詳細(xì)的闡述:
將元數(shù)據(jù)緩存鏡像和日志備份到冗余控制器上。
[0009]將元數(shù)據(jù)的B+Tree節(jié)點(diǎn)插入、刪除時(shí)從根節(jié)點(diǎn)到葉子節(jié)點(diǎn)使用“寫(xiě)時(shí)復(fù)制”方式,刷寫(xiě)時(shí)先刷寫(xiě)B(tài)+Tree各更新節(jié)點(diǎn),最后再刷寫(xiě)指向根節(jié)點(diǎn)的超級(jí)塊。
[0010]將元數(shù)據(jù)的B+Tree節(jié)點(diǎn)插入、刪除操作采用日志方式鏡像到對(duì)端冗余控制器,記錄新增、刪除的葉子節(jié)點(diǎn),并記錄B+Tree刷寫(xiě)次數(shù)。當(dāng)主控端控制器失效時(shí),通過(guò)日志及版本號(hào),重新插入、刪除信息,恢復(fù)數(shù)據(jù)。
[0011]本發(fā)明實(shí)施例提供一種精簡(jiǎn)池元數(shù)據(jù)節(jié)點(diǎn)刷新一致性保護(hù)方法,可有效的解決精簡(jiǎn)池元數(shù)據(jù)B+Tree節(jié)點(diǎn)數(shù)據(jù)刷寫(xiě)一致性,提高存儲(chǔ)池?cái)?shù)據(jù)完整性。
[0012]下面參考圖1實(shí)例說(shuō)明。
[0013]存儲(chǔ)池pool O的邏輯卷32增加塊映射,邏輯塊為40,則對(duì)映射樹(shù)插入節(jié)點(diǎn)(key=40),首先備份日志到鏡像冗余控制器(控制器B),記錄對(duì)應(yīng)的pool,Iv操作及參數(shù)(insert, key=40, value=xxx),然后更新B+TREE,從根節(jié)點(diǎn)到葉子節(jié)點(diǎn)都新分配元數(shù)據(jù)塊,避免使用原來(lái)元數(shù)據(jù)塊,且直到B+TREE節(jié)點(diǎn)刷寫(xiě)完成才可釋放舊的元數(shù)據(jù)塊。如果當(dāng)主控端控制器失效時(shí),通過(guò)日志及版本號(hào),重新插入、刪除信息,恢復(fù)數(shù)據(jù)。
[0014]經(jīng)過(guò)以上操作,B+Tree節(jié)點(diǎn)插入刪除等操作都可以保證一致性問(wèn)題。
[0015]此設(shè)計(jì)可以存儲(chǔ)陣列的存儲(chǔ)性能,提高精簡(jiǎn)存儲(chǔ)池操作的可靠性,提高產(chǎn)品在市場(chǎng)上的競(jìng)爭(zhēng)力。
【權(quán)利要求】
1.一種精簡(jiǎn)池元數(shù)據(jù)節(jié)點(diǎn)刷新一致性保護(hù)方法,其特征在于,包括: 將元數(shù)據(jù)緩存鏡像和日志備份到冗余控制器上; 將元數(shù)據(jù)的B+Tree節(jié)點(diǎn)插入、刪除時(shí)從根節(jié)點(diǎn)到葉子節(jié)點(diǎn)使用寫(xiě)時(shí)復(fù)制方式,刷寫(xiě)時(shí)先刷寫(xiě)B(tài)+Tree各更新節(jié)點(diǎn),最后再刷寫(xiě)指向根節(jié)點(diǎn)的超級(jí)塊; 將元數(shù)據(jù)的B+Tree節(jié)點(diǎn)插入、刪除操作采用日志方式鏡像到對(duì)端冗余控制器,記錄新增、刪除的葉子節(jié)點(diǎn),并記錄B+Tree刷寫(xiě)次數(shù);當(dāng)主控端控制器失效時(shí),通過(guò)日志及版本號(hào),重新插入、刪除信息,恢復(fù)數(shù)據(jù)。
2.根據(jù)權(quán)利1的要求,其特征在于,還包括: 將元數(shù)據(jù)緩存鏡像和日志備份到冗余控制器上,采用異步寫(xiě)入,以提高讀寫(xiě)性能。
3.根據(jù)權(quán)利1的要求,其特征在于,還包括: 將元數(shù)據(jù)的B+Tree節(jié)點(diǎn)插入、刪除時(shí)從根節(jié)點(diǎn)到葉子節(jié)點(diǎn)使用寫(xiě)時(shí)復(fù)制方式,從根節(jié)點(diǎn)到葉子節(jié)點(diǎn)都新分配元數(shù)據(jù)塊,避免使用原來(lái)元數(shù)據(jù)塊,且直到B+TREE節(jié)點(diǎn)刷寫(xiě)完成才可釋放舊的元數(shù)據(jù)塊。
4.根據(jù)權(quán)利1的要求,其特征在于,還包括: 將元數(shù)據(jù)B+Tree節(jié)點(diǎn)插入、刪除操作通過(guò)日志方式記錄到對(duì)端冗余控制器中,包括,記錄操作的類(lèi)型是插入還是刪除,是哪個(gè)存儲(chǔ)池、邏輯卷、數(shù)據(jù)塊。
【文檔編號(hào)】G06F12/02GK104391802SQ201410678460
【公開(kāi)日】2015年3月4日 申請(qǐng)日期:2014年11月24日 優(yōu)先權(quán)日:2014年11月24日
【發(fā)明者】周耀輝, 趙靜, 施培任 申請(qǐng)人:浪潮電子信息產(chǎn)業(yè)股份有限公司