本發(fā)明屬于數(shù)據(jù)存儲(chǔ)技術(shù)領(lǐng)域,特別是涉及一種快照元數(shù)據(jù)管理方法和裝置。
背景技術(shù):
在存儲(chǔ)領(lǐng)域,快照技術(shù)是存儲(chǔ)服務(wù)器中的一個(gè)重要的組成部分,在一般的存儲(chǔ)系統(tǒng),特別是中高端存儲(chǔ)系統(tǒng)中,快照功能是一個(gè)必備功能,通過提升快照技術(shù)的性能,能夠有效提升整個(gè)存儲(chǔ)系統(tǒng)的性能,從而更好地滿足用戶需求。
當(dāng)前快照技術(shù)從原理上主要是COW機(jī)制和ROW機(jī)制。COW(copy on write)是寫時(shí)復(fù)制機(jī)制,它的主要特點(diǎn)是打完快照后,當(dāng)有新的IO下發(fā)時(shí),先將源卷的內(nèi)容拷貝到數(shù)據(jù)卷,而后再將io的內(nèi)容寫到源卷中;而ROW(redirect on write)是寫時(shí)重定向機(jī)制,則是將新的數(shù)據(jù)寫到一個(gè)新位置,讀取數(shù)據(jù)時(shí),不直接到原來的位置去讀,而是要先查找定位到這塊數(shù)據(jù)新的位置后,在從新的位置獲得數(shù)據(jù)??偟膩碚f,COW不影響讀性能,但會(huì)影響寫性能;而ROW機(jī)制則對寫性能相對較小,但對讀性能有很大影響。在實(shí)際使用中,由于一般情況下讀數(shù)據(jù)的頻率往往會(huì)大于寫數(shù)據(jù)的頻率,因而COW機(jī)制的性能要優(yōu)于ROW機(jī)制,因此使用COW機(jī)制的使用也更廣泛。
對于快照元數(shù)據(jù)的管理一般采用B+樹來實(shí)現(xiàn),B+樹由若干結(jié)點(diǎn)構(gòu)成一個(gè)樹形結(jié)構(gòu),從而將數(shù)據(jù)有效地管理起來。B+樹中的數(shù)據(jù)結(jié)構(gòu)由key-value對組成,其中每個(gè)結(jié)點(diǎn)中包含若干key-value對,在進(jìn)行數(shù)據(jù)查找時(shí),從樹的根結(jié)點(diǎn)起,根據(jù)key值逐級找到最下端的葉子結(jié)點(diǎn),從中找到滿足key值的key-value對,從value值中讀出所需的數(shù)據(jù)。
在COW機(jī)制的快照元數(shù)據(jù)結(jié)構(gòu)中,由key值保存快照ID和源卷塊號,由value值來保存數(shù)據(jù)卷塊號。每當(dāng)打完一個(gè)快照后,產(chǎn)生一個(gè)快照ID,而當(dāng)有新IO要寫入源卷的一個(gè)塊時(shí),源卷中這個(gè)塊的數(shù)據(jù)會(huì)先拷貝到數(shù)據(jù)卷的一個(gè)塊中,數(shù)據(jù)卷的這個(gè)塊的塊號即為value值,而快照ID和源卷塊的快照構(gòu)成key值,key值為64位的數(shù)據(jù),其中快照ID占用前12位,源卷快照占用后48位,因此發(fā)生一次COW操作,就會(huì)產(chǎn)生一個(gè)key-value對,也可以叫做一個(gè)例外信息。如果出現(xiàn)大量的COW操作,相應(yīng)地就會(huì)形成大量的key-value對,也就是大量的例外信息,而在需要?jiǎng)h除快照時(shí),則需要逐個(gè)刪除樹中的這些key-value對,一旦key-value對的數(shù)量過大,就會(huì)導(dǎo)致刪除快照的時(shí)間非常長,從而影響刪除效率。
技術(shù)實(shí)現(xiàn)要素:
為解決上述問題,本發(fā)明提供了一種快照元數(shù)據(jù)管理方法和裝置,能夠提高元數(shù)據(jù)執(zhí)行效率,縮短快照刪除時(shí)需要消耗的時(shí)間,同時(shí)也可保證在進(jìn)行快照查詢操作時(shí)不會(huì)有額外操作,因此不會(huì)引起額外的性能損耗。
本發(fā)明提供的一種快照元數(shù)據(jù)管理方法,包括:
設(shè)置key1-key2-value的二級樹結(jié)構(gòu),利用所述key1保存快照ID并構(gòu)成第一級樹,利用所述key2保存源卷的塊號并構(gòu)成第二級樹,利用所述value保存數(shù)據(jù)卷的塊號;
當(dāng)進(jìn)行查找時(shí),進(jìn)行第一級查找,找到快照對應(yīng)的子樹;
進(jìn)行第二級查找,找到對應(yīng)的value值。
優(yōu)選的,在上述快照元數(shù)據(jù)管理方法中,
當(dāng)進(jìn)行刪除時(shí),從所述第一級樹中將需要?jiǎng)h除的快照所對應(yīng)的快照ID的子樹根結(jié)點(diǎn)刪除,并釋放所述子樹的其他結(jié)點(diǎn)。
優(yōu)選的,在上述快照元數(shù)據(jù)管理方法中,
所述二級樹結(jié)構(gòu)具體包括:
所述第一級樹中key-value對的key值為所述快照ID,value值為所述快照ID對應(yīng)的子樹根結(jié)點(diǎn);
所述第二級樹中key-value的key值為源卷塊號,葉子結(jié)點(diǎn)中的value為對應(yīng)的數(shù)據(jù)卷的塊號。
優(yōu)選的,在上述快照元數(shù)據(jù)管理方法中,
設(shè)置所述源卷的塊號的位數(shù)為64。
本發(fā)明提供的一種快照元數(shù)據(jù)管理裝置,包括:
設(shè)置單元,用于設(shè)置key1-key2-value的二級樹結(jié)構(gòu),利用所述key1保存快照ID并構(gòu)成第一級樹,利用所述key2保存源卷的塊號并構(gòu)成第二級樹,利用所述value保存數(shù)據(jù)卷的塊號;
第一級查找單元,用于當(dāng)進(jìn)行查找時(shí),進(jìn)行第一級查找,找到快照對應(yīng)的子樹;
第二級查找單元,用于進(jìn)行第二級查找,找到對應(yīng)的value值。
優(yōu)選的,在上述快照元數(shù)據(jù)管理裝置中,
還包括刪除單元,用于當(dāng)進(jìn)行刪除時(shí),從所述第一級樹中將需要?jiǎng)h除的快照所對應(yīng)的快照ID的子樹根結(jié)點(diǎn)刪除,并釋放所述子樹中的其他結(jié)點(diǎn)。
優(yōu)選的,在上述快照元數(shù)據(jù)管理裝置中,
所述設(shè)置單元具體用于設(shè)置所述第一級樹中key-value對的key值為所述快照ID,value值為所述快照ID對應(yīng)的子樹根結(jié)點(diǎn);
設(shè)置所述第二級樹中key-value的key值為源卷塊號,葉子結(jié)點(diǎn)中的value為對應(yīng)的數(shù)據(jù)卷的塊號。
優(yōu)選的,在上述快照元數(shù)據(jù)管理裝置中,
所述設(shè)置單元還具體用于設(shè)置所述源卷的塊號的位數(shù)為64。
通過上述描述可知,本發(fā)明提供的上述快照元數(shù)據(jù)管理方法和裝置,由于先設(shè)置key1-key2-value的二級樹結(jié)構(gòu),利用所述key1保存快照ID并構(gòu)成第一級樹,利用所述key2保存源卷的塊號并構(gòu)成第二級樹,利用所述value保存數(shù)據(jù)卷的塊號,然后,當(dāng)進(jìn)行查找時(shí),進(jìn)行第一級查找,找到快照對應(yīng)的子樹,再進(jìn)行第二級查找,找到對應(yīng)的value值,因此能夠提高元數(shù)據(jù)執(zhí)行效率,縮短快照刪除時(shí)需要消耗的時(shí)間,同時(shí)也可保證在進(jìn)行快照查詢操作時(shí)不會(huì)有額外操作,因此不會(huì)引起額外的性能損耗。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
圖1為本申請實(shí)施例提供的第一種快照元數(shù)據(jù)管理方法的示意圖;
圖2為采用二級樹的元數(shù)據(jù)組織結(jié)構(gòu)在刪除時(shí)的操作示意圖;
圖3為本申請實(shí)施例提供的第一種快照元數(shù)據(jù)管理裝置的示意圖。
具體實(shí)施方式
本發(fā)明的核心思想在于提供一種快照元數(shù)據(jù)管理方法和裝置,能夠提高元數(shù)據(jù)執(zhí)行效率,縮短快照刪除時(shí)需要消耗的時(shí)間,同時(shí)也可保證在進(jìn)行快照查詢操作時(shí)不會(huì)有額外操作,因此不會(huì)引起額外的性能損耗。
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
本申請實(shí)施例提供的第一種快照元數(shù)據(jù)管理方法如圖1所示,圖1為本申請實(shí)施例提供的第一種快照元數(shù)據(jù)管理方法的示意圖。該方法包括如下步驟:
S1:設(shè)置key1-key2-value的二級樹結(jié)構(gòu),利用所述key1保存快照ID并構(gòu)成第一級樹,利用所述key2保存源卷的塊號并構(gòu)成第二級樹,利用所述value保存數(shù)據(jù)卷的塊號;
在該步驟中,將快照元數(shù)據(jù)由現(xiàn)有技術(shù)中的一級B+樹管理方式,改為采用二級B+樹管理的方式,這樣就相當(dāng)于每個(gè)快照成為一個(gè)獨(dú)立的子樹,而不是所有快照混在同一個(gè)樹中,能夠便于刪除操作。
S2:當(dāng)進(jìn)行查找時(shí),進(jìn)行第一級查找,找到快照對應(yīng)的子樹;
S3:進(jìn)行第二級查找,找到對應(yīng)的value值。
需要注意的是,雖然改為了二級查找,但整個(gè)B+樹中value的總數(shù)沒變,因此實(shí)際并不會(huì)對查找效率造成影響。
采用這種方式,在進(jìn)行快照刪除操作時(shí)(假定要?jiǎng)h除快照的快照ID為3),就不必像之前那樣,需要將樹中所有快照ID為3的key-value對都刪除,并將保存這些key-value的結(jié)點(diǎn)釋放;而只需要從第一級樹中將快照ID為3的子樹的根結(jié)點(diǎn)刪除,并釋放掉該子樹中結(jié)點(diǎn)即可,因此相當(dāng)于實(shí)際只刪除一個(gè)key-value對,從而極大地提高了刪除效率。對于改進(jìn)后的方法可以類比地理解為格盤時(shí)由完全格式化方式改為快速格式化方式。
通過上述描述可知,本申請實(shí)施例提供的上述快照元數(shù)據(jù)管理方法,由于先設(shè)置key1-key2-value的二級樹結(jié)構(gòu),利用所述key1保存快照ID并構(gòu)成第一級樹,利用所述key2保存源卷的塊號并構(gòu)成第二級樹,利用所述value保存數(shù)據(jù)卷的塊號,然后,當(dāng)進(jìn)行查找時(shí),進(jìn)行第一級查找,找到快照對應(yīng)的子樹,再進(jìn)行第二級查找,找到對應(yīng)的value值,因此能夠提高元數(shù)據(jù)執(zhí)行效率,縮短快照刪除時(shí)需要消耗的時(shí)間,同時(shí)也可保證在進(jìn)行快照查詢操作時(shí)不會(huì)有額外操作,因此不會(huì)引起額外的性能損耗。
本申請實(shí)施例提供的第二種快照元數(shù)據(jù)管理方法,是在上述第一種快照元數(shù)據(jù)管理方法的基礎(chǔ)上,還包括如下技術(shù)特征:
當(dāng)進(jìn)行刪除時(shí),從所述第一級樹中將需要?jiǎng)h除的快照所對應(yīng)的快照ID的子樹根結(jié)點(diǎn)刪除,并釋放所述子樹的其他結(jié)點(diǎn)。
如圖2所示,圖2為采用二級樹的元數(shù)據(jù)組織結(jié)構(gòu)在刪除時(shí)的操作示意圖,在這種情況下,在刪除快照時(shí),只需從第一級樹中刪除子樹根節(jié)點(diǎn)對應(yīng)的key-value,從而使整個(gè)子樹從樹中移除,而不必逐個(gè)刪除子樹中的key-value,子樹對應(yīng)的結(jié)點(diǎn)則可以直接釋放掉,可見,這種方式極大地降低刪除快照操作的耗時(shí)。
本申請實(shí)施例提供的第三種快照元數(shù)據(jù)管理方法,是在上述第二種快照元數(shù)據(jù)管理方法的基礎(chǔ)上,還包括如下技術(shù)特征:
所述二級樹結(jié)構(gòu)具體包括:
所述第一級樹中key-value對的key值為所述快照ID,value值為所述快照ID對應(yīng)的子樹根結(jié)點(diǎn);
所述第二級樹中key-value的key值為源卷塊號,葉子結(jié)點(diǎn)中的value為對應(yīng)的數(shù)據(jù)卷的塊號。
本申請實(shí)施例提供的第四種快照元數(shù)據(jù)管理方法,是在上述第三種快照元數(shù)據(jù)管理方法的基礎(chǔ)上,還包括如下技術(shù)特征:
設(shè)置所述源卷的塊號的位數(shù)為64。
將快照ID和源卷塊號由一個(gè)key值剝離為兩個(gè)key值,從而使源卷的塊號由48位來記錄改為由64位來記錄,從而極大地拓展了源卷塊號的范圍,進(jìn)而增加了源卷的最大容量限制。
本申請實(shí)施例提供的第一種快照元數(shù)據(jù)管理裝置如圖3所示,圖3為本申請實(shí)施例提供的第一種快照元數(shù)據(jù)管理裝置的示意圖。該裝置包括:
設(shè)置單元301,用于設(shè)置key1-key2-value的二級樹結(jié)構(gòu),利用所述key1保存快照ID并構(gòu)成第一級樹,利用所述key2保存源卷的塊號并構(gòu)成第二級樹,利用所述value保存數(shù)據(jù)卷的塊號;
第一級查找單元302,用于當(dāng)進(jìn)行查找時(shí),進(jìn)行第一級查找,找到快照對應(yīng)的子樹;
第二級查找單元303,用于進(jìn)行第二級查找,找到對應(yīng)的value值。
通過上述描述可知,本申請實(shí)施例提供的上述快照元數(shù)據(jù)管理裝置,能夠提高元數(shù)據(jù)執(zhí)行效率,縮短快照刪除時(shí)需要消耗的時(shí)間,同時(shí)也可保證在進(jìn)行快照查詢操作時(shí)不會(huì)有額外操作,因此不會(huì)引起額外的性能損耗。
本申請實(shí)施例提供的第二種快照元數(shù)據(jù)管理裝置,是在上述第一種快照元數(shù)據(jù)管理裝置的基礎(chǔ)上,還包括如下技術(shù)特征:
還包括刪除單元,用于當(dāng)進(jìn)行刪除時(shí),從所述第一級樹中將需要?jiǎng)h除的快照所對應(yīng)的快照ID的子樹根結(jié)點(diǎn)刪除,并釋放所述子樹中的其他結(jié)點(diǎn)。
該裝置調(diào)整了元數(shù)據(jù)對應(yīng)的B+樹結(jié)構(gòu),使得元數(shù)據(jù)管理更加高效,并極大地提高了快照刪除的效率,增強(qiáng)了系統(tǒng)性能和用戶體驗(yàn);同時(shí),修改后對于例外信息的插入和插敘等的性能幾乎不受影響,總體上使元數(shù)據(jù)的管理更加方便有效。
本申請實(shí)施例提供的第三種快照元數(shù)據(jù)管理裝置,是在上述第二種快照元數(shù)據(jù)管理裝置的基礎(chǔ)上,還包括如下技術(shù)特征:
所述設(shè)置單元具體用于設(shè)置所述第一級樹中key-value對的key值為所述快照ID,value值為所述快照ID對應(yīng)的子樹根結(jié)點(diǎn);
設(shè)置所述第二級樹中key-value的key值為源卷塊號,葉子結(jié)點(diǎn)中的value為對應(yīng)的數(shù)據(jù)卷的塊號。
本申請實(shí)施例提供的第四種快照元數(shù)據(jù)管理裝置,是在上述第三種快照元數(shù)據(jù)管理裝置的基礎(chǔ)上,還包括如下技術(shù)特征:
所述設(shè)置單元還具體用于設(shè)置所述源卷的塊號的位數(shù)為64。
將快照ID和源卷塊號由一個(gè)key值剝離為兩個(gè)key值,從而使源卷的塊號由48位來記錄改為由64位來記錄,從而極大地拓展了源卷塊號的范圍,進(jìn)而增加了源卷的最大容量限制。
綜上所述,本申請實(shí)施例提供的上述方法和裝置,在快照通常的元數(shù)據(jù)結(jié)構(gòu)的基礎(chǔ)上進(jìn)行了改進(jìn)優(yōu)化,將B+樹由一級樹方式改為二級樹方式,從而提高了元數(shù)據(jù)管理的效率,特別是極大地降低刪除快照的耗時(shí),而且對于元數(shù)據(jù)算法結(jié)構(gòu)的改動(dòng)量不太大,易于修改推行,不會(huì)造成大的成本開銷,有很好的可行性。另外,由于快照刪除效率的提高,降低了后臺用于快照刪除的時(shí)間和性能損耗,從而間接提高了整個(gè)系統(tǒng)的效率,并減少了對存儲(chǔ)系統(tǒng)運(yùn)行過程中其他功能的干擾。
對所公開的實(shí)施例的上述說明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對這些實(shí)施例的多種修改對本領(lǐng)域的專業(yè)技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實(shí)施例中實(shí)現(xiàn)。因此,本發(fā)明將不會(huì)被限制于本文所示的這些實(shí)施例,而是要符合與本文所公開的原理和新穎特點(diǎn)相一致的最寬的范圍。