一種基于分布式存儲的數據恢復方法及裝置制造方法
【專利摘要】本發明公開了一種基于分布式存儲的數據恢復方法及裝置,其中,基于分布式存儲的數據恢復方法包括:分布式調度系統分批向若干數據存儲客戶端分發待存儲數據,并監測各數據存儲客戶端的異常狀態;在監測到數據存儲客戶端處于異常狀態的情況下,查找處于正常狀態的數據存儲客戶端;查詢處于異常狀態的存儲客戶端處理的上一批次待存儲數據的數據標識;將上一批次后的待存儲數據重新分發給處于正常狀態的數據存儲客戶端。通過本發明提供的數據恢復方法,在不需要增加額外設備的基礎上,保障數據寫入的一致性和完整性;也不會因為存儲客戶端的異常影響正常的服務。
【專利說明】一種基于分布式存儲的數據恢復方法及裝置
【技術領域】
[0001]本發明涉及數據存儲【技術領域】,具體涉及一種基于分布式存儲的數據恢復方法及
>J-U ρ?α裝直。
【背景技術】
[0002]分布式存儲技術就是將數據分散存儲在多臺獨立的設備上。傳統的網絡存儲系統采用集中的存儲服務器存放所有數據,存儲服務器成為系統性能的瓶頸,也是可靠性和安全性的焦點,不能滿足大規模存儲應用的需要。分布式網絡存儲系統采用可擴展的系統結構,利用多臺存儲服務器分擔存儲負荷,利用位置服務器定位存儲信息,它不但提高了系統的可靠性、可用性和存取效率,還易于擴展。
[0003]為了保證分布式存儲系統數據的一致性和完整性,當存儲服務器出現異常時,需要采用一定的方法進行數據的恢復。目前,常用的方法是存儲服務器將內存中的數據備份到存儲介質,當存儲服務器從異常恢復,重新啟動時,存儲服務器從存儲介質中獲取備份的數據。
[0004]采用備份數據的方法實現數據的恢復,由于存儲服務器發生異常到恢復的過程需要一段時間,在這段時間內,存儲服務器無法提供服務,對服務需求會產生影響;另外,該方法實現數據的恢復需要額外增加存儲介質,增加的成本。
【發明內容】
[0005]本發明所要解決的技術問題是提供一種基于分布式存儲的數據恢復方法及裝置,能夠實現分布式存儲的數據恢復。
[0006]依據本發明的一個方面,提供了一種基于分布式存儲的數據恢復方法,包括:
[0007]分布式調度系統分批向若干數據存儲客戶端分發待存儲數據,并監測各數據存儲客戶端的異常狀態;
[0008]在監測到數據存儲客戶端處于異常狀態的情況下,查找處于正常狀態的數據存儲客戶端;
[0009]查詢處于異常狀態的存儲客戶端處理的上一批次數據的數據標識;
[0010]將上一批次后的數據重新分發給處于正常狀態的數據存儲客戶端。
[0011]依據本發明的另一個方面,提供了一種基于分布式存儲的數據恢復裝置,包括:
[0012]第一數據分發模塊,用于調用分布式調度系統分批向若干數據存儲客戶端分發待存儲數據,并監測各數據存儲客戶端的異常狀態;
[0013]查找模塊,用于在監測到數據存儲客戶端處于異常狀態的情況下,查找處于正常狀態的數據存儲客戶端;
[0014]數據標識查詢模塊,用于查詢處于異常狀態的存儲客戶端處理的上一批次數據的數據標識;
[0015]第二數據分發模塊,用于將上一批次后的數據重新分發給處于正常狀態的數據存儲客戶端。
[0016]本發明提供的一種基于分布式存儲的數據恢復方法及裝置,通過獲取處于異常狀態的數據存儲客戶端寫入的斷點信息,通過斷點信息獲取異常數據存儲客戶端處理的上一批次的數據標識,然后將上一批次后的數據重新分發給處于正常狀態的數據存儲客戶端,對數據進行重新寫入,來實現分布式存儲過程中的客戶端寫入數據恢復,在不需要增加額外設備的基礎上,保障數據寫入的一致性和完整性。
【專利附圖】
【附圖說明】
[0017]圖1為本發明實施例一的一種基于分布式存儲的數據恢復方法流程圖;
[0018]圖2為本發明的數據寫入過程的總體架構圖;
[0019]圖3為本發明實施例一的一種基于分布式存儲的數據恢復方法的具體實例流程圖;
[0020]圖4為本發明實施例二的一種基于分布式存儲的數據恢復裝置示意圖。
【具體實施方式】
[0021]以下結合附圖對本發明的原理和特征進行描述,所舉實例只用于解釋本發明,并非用于限定本發明的范圍。
[0022]實施例一、一種基于分布式存儲的數據恢復方法。下面結合圖1-圖3對本發明提供的方法進行詳細說明。
[0023]圖1中,S101、分布式調度系統分批向若干數據存儲客戶端分發待存儲數據,并監測各數據存儲客戶端的異常狀態。
[0024]具體的,參見圖2,首先介紹一下分布式存儲時數據寫入的過程,分布式調度系統將大量數據分批發送給數據存儲客戶端,其中,數據存儲客戶端為多個,一個存儲客戶端可以作為一個存儲節點,分布式調度系統可以采取預定策略將大量的數據分發給不同的數據存儲客戶端,數據存儲客戶端接收到分布式調度系統分發的數據,對數據進行處理,比如說按照業務要求將數據進行分類處理,或者按照數據格式要求對數據進行處理,存儲客戶端將處理后的數據提交給數據庫,數據庫進行數據的處理后,將數據物化到HDFS(Hadoc)PDistributed File System,分布式文件系統)中,即將數據存儲于分布式文件系統中。
[0025]需要說明的是,本實施例中的數據庫是基于Hbase的數據庫,Hbase存入數據是以Key-value的形式存儲數據的。Hbase采用Key值來唯一標識一條數據,利用了 Key值的不變性來保證數據恢復的一致性。其中,Key值的設計可以包括關鍵內容與MD5碼的組合,MD5碼是基于整條數據的編碼,整條數據和編碼的結果存在一一對應關系,從而保證數據重入恢復的一致性。
[0026]另外,由于hbase有版本概念,各個存儲客戶端提交給Hbase數據庫的數據可以存儲多個版本。因此,為了使存儲客戶端寫入數據恢復時不重復寫入,設置Hbase數據庫的版本數為1,即保證只有一個版本有效,這樣即使存儲客戶端重入相同的數據也不會出現重復數據。在數據按照批次進行恢復時,Hbase數據庫的斷點機制就保證了數據完整性和不重復性。
[0027]在數據寫入的過程中,可以分為存儲客戶端寫入數據恢復,即在存儲客戶端將數據提交給Hbase數據庫的過程中,進行數據的恢復;或者入庫的數據恢復,即存儲客戶端已經將數據提交給Hbase數據庫后進行數據的恢復。
[0028]本實施例主要設計了存儲客戶端寫入數據恢復的方法,參見圖3,圖3為存儲客戶端寫入數據恢復的流程圖,分布式調度系統分批向存儲客戶端分發數據,并監測各個存儲客戶端的異常狀態。
[0029]S102、在監測到數據存儲客戶端處于異常狀態的情況下,查找處于正常狀態的數據存儲客戶端。
[0030]具體的,上述步驟中分布式調度系統監測每個存儲客戶端的異常狀態,當監測到存儲客戶端處于異常狀態時,比如,存儲客戶端連接異常或存儲客戶端出現宕機的情況,分布式調度系統會在存儲客戶端集群中查詢處于正常狀態的存儲客戶端。
[0031]S103、查詢處于異常狀態的存儲客戶端處理的上一批次數據的數據標識。
[0032]具體的,需要說明的是,在數據寫入的過程中,當存儲客戶端將當前批次的數據提交給Hbase數據庫時,會在Hbase數據庫中寫入斷點信息,并保存于斷點文件中,其中,斷點信息包括該批次的數據提交Hbase數據庫提交成功的信息、提交數據的存儲客戶端的標識以及該批次數據的數據標識。若分布式調度系統監測到某個存儲客戶端處于異常狀態時,在Hbase數據庫的斷點文件中查找斷點信息,獲取該處于異常狀態的存儲客戶端提交的上一批次數據的數據標識。
[0033]S104、將上一批次后的數據重新分發給處于正常狀態的數據存儲客戶端。
[0034]具體的,上述步驟S103分布式調度系統查詢到處于異常狀態的存儲客戶端提交的上一批次數據的數據標識,將上一批次以后的數據,即當前批次和當前批次后的數據重新分發給處于正常狀態的存儲客戶端進行數據寫入,由正常的存儲客戶端將分發的數據處理后提交給Hbase數據庫。
[0035]實施例二、一種基于分布式存儲的數據恢復裝置。下面結合圖4對本發明提供的裝置進行說明。
[0036]圖4中,本發明提供的裝置包括第一數據分發模塊401、查找模塊402、斷點信息寫入模塊403、數據標識查詢模塊404和第二數據分發模塊405。
[0037]其中,第一數據分發模塊401主要用于調用分布式調度系統分批向數據存儲客戶端分發待存儲數據,并監測各數據存儲客戶端的異常狀態。
[0038]具體的,分布式存儲數據寫入時,設置于分布式調度系統中的第一數據分發模塊401將大量數據分批發送給數據存儲客戶端,其中,數據存儲客戶端為多個,一個存儲客戶端可以作為一個存儲節點,分布式調度系統可以采取預定策略將大量的數據分發給不同的數據存儲客戶端,數據存儲客戶端接收到分布式調度系統分發的數據,對數據進行處理,存儲客戶端將處理后的數據提交給數據庫。在第一數據分發模塊401將數據分發給存儲客戶端的同時,監測各存儲客戶端的異常狀態。
[0039]需要說明的是,本實施例中的數據庫是基于Hbase的數據庫,Hbase存入數據是以Key-value的形式存儲數據的。Hbase采用Key值來唯一標識一條數據,利用了 Key值的不變性來保證數據恢復的一致性。其中,Key值的設計可以包括關鍵內容與MD5碼的組合,MD5碼是基于整條數據的編碼,整條數據和編碼的結果存在一一對應關系,從而保證數據重入恢復的一致性。
[0040]另外,由于hbase有版本概念,各個存儲客戶端提交給Hbase數據庫的數據可以存儲多個版本。因此,為了使存儲客戶端寫入數據恢復時不重復寫入,設置Hbase數據庫的版本數為1,即保證只有一個版本有效,這樣即使存儲客戶端重入相同的數據也不會出現重復數據。在數據按照批次進行恢復時,Hbase數據庫的斷點機制就保證了數據完整性和不重復性。
[0041]查找模塊402主要用于在第一數據分發模塊401監測到數據存儲客戶端處于異常狀態的情況下,查找處于正常狀態的數據存儲客戶端。
[0042]具體的,分布式調度系統監測每個存儲客戶端的異常狀態,當監測到存儲客戶端處于異常狀態時,比如,存儲客戶端連接異常或存儲客戶端出現宕機的情況,分布式調度系統中的查找模塊402會在存儲客戶端集群中查詢處于正常狀態的存儲客戶端。
[0043]斷點信息寫入模塊403主要用于當數據存儲客戶端分批將數據成功提交給Hbase數據庫時,在數據庫中寫入斷點信息,所述斷點信息包含該數據存儲客戶端處理的各批數據的數據標識。
[0044]數據標識獲取模塊404主要用于查詢處于異常狀態的存儲客戶端處理的上一批次數據的數據標識。
[0045]具體的,需要說明的是,在數據寫入的過程中,當存儲客戶端將當前批次的數據提交給Hbase數據庫時,斷點信息寫入模塊403會在Hbase數據庫中寫入斷點信息,并保存于斷點文件中,其中,斷點信息包括該批次的數據提交Hbase數據庫提交成功的信息、提交數據的存儲客戶端的標識以及該批次數據的數據標識。若分布式調度系統監測到某個存儲客戶端處于異常狀態時,數據標識查詢模塊404在Hbase數據庫的斷點文件中查找斷點信息,獲取該處于異常狀態的存儲客戶端提交的上一批次數據的數據標識。
[0046]第二數據分發模塊405主要用于將上一批次后的數據重新分發給處于正常狀態的數據存儲客戶端。
[0047]具體的,數據標識獲取模塊404查詢到處于異常狀態的存儲客戶端提交的上一批次數據的數據標識,第二數據分發模塊405將上一批次以后的數據,即當前批次和當前批次后的數據重新分發給處于正常狀態的存儲客戶端進行數據寫入,由正常的存儲客戶端將分發的數據處理后提交給Hbase數據庫。
[0048]本發明提供的一種基于分布式存儲的數據恢復方法及裝置,通過獲取處于異常狀態的數據存儲客戶端寫入的斷點信息,通過斷點信息獲取異常數據存儲客戶端處理的上一批次的數據標識,然后將上一批次之后的數據重新分發給處于正常狀態的數據存儲客戶端,對數據進行重新寫入,來實現分布式存儲過程中的存儲客戶端寫入數據恢復,在不增加額外設備的基礎上,保障數據寫入的一致性和完整性;在某些存儲客戶端發生異常的情況下,不會因為異常而影響正常的服務功能;另外,不需要增加額外的設備即可實現數據的恢復,減少了成本。
[0049]以上所述僅為本發明的較佳實施例,并不用以限制本發明,凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護范圍之內。
【權利要求】
1.一種基于分布式存儲的數據恢復方法,其特征在于,包括: 步驟S101、分布式調度系統分批向若干數據存儲客戶端分發待存儲數據,并監測各數據存儲客戶端的異常狀態; 步驟S102、在監測到數據存儲客戶端處于異常狀態的情況下,查找處于正常狀態的數據存儲客戶端; 步驟S103、查詢處于異常狀態的存儲客戶端處理的上一批次待存儲數據的數據標識; 步驟S104、將上一批次后的待存儲數據重新分發給處于正常狀態的數據存儲客戶端。
2.如權利要求1所述的數據恢復方法,其特征在于,還包括: 當所述數據存儲客戶端將分布式調度系統分批分發的待存儲數據成功提交給Hbase數據庫時,在Hbase數據庫中寫入斷點信息,所述斷點信息包含該數據存儲客戶端提交給Hbase數據庫的各批待存儲數據的數據標識; 所述步驟S103包括: 在Hbase數據庫中查找處于異常狀態的數據存儲客戶端的斷點信息,獲取該數據客戶端處理的上一批次待存儲數據的數據標識。
3.如權利要求2所述的數據恢復方法,其特征在于,預先設置Hbase數據庫的版本數為1
4.如權利要求1或2所述的數據恢復方法,其特征在于,所述待存儲數據中的每條數據記錄具有數據記錄唯一標識,所述數據記錄唯一標識為該數據記錄關鍵詞與MD5碼的組口 ο
5.一種基于分布式存儲的數據恢復裝置,其特征在于,包括: 第一數據分發模塊,用于調用分布式調度系統分批向若干數據存儲客戶端分發待存儲數據,并監測各數據存儲客戶端的異常狀態; 查找模塊,用于在監測到數據存儲客戶端處于異常狀態的情況下,查找處于正常狀態的數據存儲客戶端; 數據標識查詢模塊,用于查詢處于異常狀態的存儲客戶端處理的上一批次待存儲數據的數據標識; 第二數據分發模塊,用于將上一批次后的待存儲數據重新分發給處于正常狀態的數據存儲客戶端。
6.如權利要求5所述的數據恢復裝置,其特征在于,還包括: 斷點信息寫入模塊,用于當所述數據存儲客戶端將分布式調度系統分批分發的待存儲數據成功提交給Hbase數據庫時,在Hbase數據庫中寫入斷點信息,所述斷點信息包含該數據存儲客戶端提交給Hbase數據庫的各批待存儲數據的數據標識; 所述數據標識查詢模塊,用于查詢處于異常狀態的數據存儲客戶端處理的上一批次待存儲數據的數據標識具體包括: 在Hbase數據庫中查找處于異常狀態的數據存儲客戶端的斷點信息,獲取該數據客戶端處理的上一批次待存儲數據的數據標識。
7.如權利要求6所述的數據恢復裝置,其特征在于,預先設置Hbase數據庫的版本數為1
8.如權利要求5或6所述的數據恢復裝置,其特征在于,所述所述待存儲數據中的每條數據記錄具有數據記錄唯一標識,所述數據記錄唯一標識為該數據記錄關鍵詞與MD5碼的組合。
【文檔編號】G06F17/30GK104360915SQ201410601850
【公開日】2015年2月18日 申請日期:2014年10月31日 優先權日:2014年10月31日
【發明者】杜旭苗 申請人:北京思特奇信息技術股份有限公司