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