一種系統(tǒng)擴(kuò)容時(shí)零數(shù)據(jù)遷移的數(shù)據(jù)分布存儲(chǔ)方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種系統(tǒng)擴(kuò)容時(shí)零數(shù)據(jù)迀移的數(shù)據(jù)分布存儲(chǔ)方法及系統(tǒng)。
【背景技術(shù)】
[0002]分布式存儲(chǔ)系統(tǒng),是將數(shù)據(jù)分散存儲(chǔ)在多臺(tái)獨(dú)立的設(shè)備上。傳統(tǒng)的網(wǎng)絡(luò)存儲(chǔ)系統(tǒng)采用集中的存儲(chǔ)服務(wù)器存放所有數(shù)據(jù),存儲(chǔ)服務(wù)器成為系統(tǒng)性能的瓶頸,也是可靠性和安全性的焦點(diǎn),不能滿足大規(guī)模存儲(chǔ)應(yīng)用的需要。分布式網(wǎng)絡(luò)存儲(chǔ)系統(tǒng)采用可擴(kuò)展的系統(tǒng)結(jié)構(gòu),利用多臺(tái)存儲(chǔ)服務(wù)器分擔(dān)存儲(chǔ)負(fù)荷,利用位置服務(wù)器定位存儲(chǔ)信息,它不但提高了系統(tǒng)的可靠性、可用性和存取效率,還易于擴(kuò)展。
[0003]但是現(xiàn)在的分布式存儲(chǔ)系統(tǒng)的數(shù)據(jù)存儲(chǔ)層往往采用各類哈希方法進(jìn)行數(shù)據(jù)分布,在數(shù)據(jù)規(guī)模不斷擴(kuò)大需要擴(kuò)容的時(shí)候,無(wú)論是常見(jiàn)的哈希方式,還是一致性哈希方式,都需要進(jìn)行大規(guī)模的數(shù)據(jù)迀移,這樣造成了所需的時(shí)間、帶寬和人力等各類的巨大成本。
【發(fā)明內(nèi)容】
[0004]為了解決上述技術(shù)問(wèn)題,本發(fā)明的目的是提供一種實(shí)現(xiàn)簡(jiǎn)單,能有效節(jié)省成本的一種系統(tǒng)擴(kuò)容時(shí)零數(shù)據(jù)迀移的數(shù)據(jù)分布存儲(chǔ)方法及系統(tǒng)。
[0005]本發(fā)明所采用的技術(shù)方案是:
一種系統(tǒng)擴(kuò)容時(shí)零數(shù)據(jù)迀移的數(shù)據(jù)分布存儲(chǔ)方法,包括以下步驟:
A、通過(guò)接入層接收用戶請(qǐng)求并將其轉(zhuǎn)發(fā)至路由層;
B、通過(guò)路由層將用戶請(qǐng)求轉(zhuǎn)發(fā)至存儲(chǔ)層中對(duì)應(yīng)的集群,并將其廣播至該集群的所有機(jī)器;
C、根據(jù)用戶請(qǐng)求,對(duì)應(yīng)集群的所有機(jī)器對(duì)數(shù)據(jù)進(jìn)行相應(yīng)的處理。
[0006]作為所述的一種系統(tǒng)擴(kuò)容時(shí)零數(shù)據(jù)迀移的數(shù)據(jù)分布存儲(chǔ)方法的進(jìn)一步改進(jìn),所述步驟B包括:
B1、根據(jù)存儲(chǔ)層內(nèi)集群預(yù)設(shè)的劃分規(guī)則,計(jì)算出用戶請(qǐng)求對(duì)應(yīng)的集群;
B2、判斷用戶請(qǐng)求是否是增加請(qǐng)求,若是,則執(zhí)行步驟B3 ;反之,則執(zhí)行步驟B4 ;
B3、獲取用戶請(qǐng)求對(duì)應(yīng)的集群的單播域名對(duì)應(yīng)的單臺(tái)機(jī)器的IP,并將其增加至用戶請(qǐng)求內(nèi);
B4、將用戶請(qǐng)求廣播至對(duì)應(yīng)集群的所有機(jī)器。
[0007]作為所述的一種系統(tǒng)擴(kuò)容時(shí)零數(shù)據(jù)迀移的數(shù)據(jù)分布存儲(chǔ)方法的進(jìn)一步改進(jìn),所述步驟C包括:
Cl、判斷用戶請(qǐng)求是否是增加請(qǐng)求,若是,則執(zhí)行步驟C5 ;反之,則執(zhí)行步驟C2 ;
C2、判斷用戶請(qǐng)求是否是刪除請(qǐng)求,若是,則執(zhí)行步驟C3 ;反之,則執(zhí)行步驟C4 ;
C3、根據(jù)用戶請(qǐng)求,在本機(jī)查找對(duì)應(yīng)數(shù)據(jù)的存儲(chǔ)位置,并將其刪除;
C4、根據(jù)用戶請(qǐng)求,在本機(jī)查找和讀取對(duì)應(yīng)的數(shù)據(jù),并返回讀取的數(shù)據(jù); C5、判斷用戶請(qǐng)求內(nèi)的IP是否與本機(jī)的IP —致,若是,則在本機(jī)查找添加的存儲(chǔ)位置并將數(shù)據(jù)添加至本機(jī);反之,則根據(jù)預(yù)設(shè)的業(yè)務(wù)要求進(jìn)行對(duì)應(yīng)的處理。
[0008]作為所述的一種系統(tǒng)擴(kuò)容時(shí)零數(shù)據(jù)迀移的數(shù)據(jù)分布存儲(chǔ)方法的進(jìn)一步改進(jìn),所述執(zhí)行步驟BI之前還包括有規(guī)劃步驟,所述規(guī)劃步驟具體包括:
BP1、根據(jù)預(yù)期后將到達(dá)的數(shù)據(jù)規(guī)模,將存儲(chǔ)層劃分為對(duì)應(yīng)的集群組數(shù);
BP2、對(duì)每組集群配備廣播域名和單播域名;
BP3、解析某組集群的廣播域名,得到該組集群內(nèi)全部機(jī)器的IP信息;
BP4、解析某組集群的單播域名,得到該組集群內(nèi)特定單臺(tái)機(jī)器的IP信息。
[0009]作為所述的一種系統(tǒng)擴(kuò)容時(shí)零數(shù)據(jù)迀移的數(shù)據(jù)分布存儲(chǔ)方法的進(jìn)一步改進(jìn),所述步驟D還包括有擴(kuò)容步驟,所述擴(kuò)容步驟具體包括:
E1、偵測(cè)需要擴(kuò)容的集群,并對(duì)偵測(cè)到的集群新配置一臺(tái)空閑機(jī)器或在該集群內(nèi)選取一臺(tái)空閑機(jī)器;
E2、修改該集群的單播域名對(duì)應(yīng)的IP為新配置或選取的機(jī)器的IP ;
E3、將新配置或選取的機(jī)器的IP添加至該集群的廣播域名對(duì)應(yīng)的IP列表中。
[0010]作為所述的一種系統(tǒng)擴(kuò)容時(shí)零數(shù)據(jù)迀移的數(shù)據(jù)分布存儲(chǔ)方法的進(jìn)一步改進(jìn),所述每個(gè)用戶請(qǐng)求均對(duì)應(yīng)唯一的KEY值。
[0011]作為所述的一種系統(tǒng)擴(kuò)容時(shí)零數(shù)據(jù)迀移的數(shù)據(jù)分布存儲(chǔ)方法的進(jìn)一步改進(jìn),所述預(yù)設(shè)的劃分規(guī)則為:根據(jù)用戶請(qǐng)求中的KEY值對(duì)集群數(shù)量值進(jìn)行取模運(yùn)算,得出結(jié)果即為對(duì)應(yīng)的集群。
[0012]本發(fā)明所采用的另一技術(shù)方案是:
一種系統(tǒng)擴(kuò)容時(shí)零數(shù)據(jù)迀移的數(shù)據(jù)分布存儲(chǔ)系統(tǒng),包括:
請(qǐng)求接收單元,用于通過(guò)接入層接收用戶請(qǐng)求并將其轉(zhuǎn)發(fā)至路由層;
請(qǐng)求廣播單元,用于通過(guò)路由層將用戶請(qǐng)求轉(zhuǎn)發(fā)至存儲(chǔ)層中對(duì)應(yīng)的集群,并將其廣播至該集群的所有機(jī)器;
請(qǐng)求處理單元,用于根據(jù)用戶請(qǐng)求,對(duì)應(yīng)集群的所有機(jī)器對(duì)數(shù)據(jù)進(jìn)行相應(yīng)的處理。
[0013]作為所述的一種系統(tǒng)擴(kuò)容時(shí)零數(shù)據(jù)迀移的數(shù)據(jù)分布存儲(chǔ)系統(tǒng)的進(jìn)一步改進(jìn),所述請(qǐng)求廣播單元包括:
計(jì)算單元,用于根據(jù)存儲(chǔ)層內(nèi)集群預(yù)設(shè)的劃分規(guī)則,計(jì)算出用戶請(qǐng)求對(duì)應(yīng)的集群;
判斷單元,用于判斷用戶請(qǐng)求是否是增加請(qǐng)求,若是,則執(zhí)行IP獲取單元;反之,則執(zhí)行廣播單元;
IP獲取單元,用于獲取用戶請(qǐng)求對(duì)應(yīng)的集群的單播域名對(duì)應(yīng)的單臺(tái)機(jī)器的IP,并將其增加至用戶請(qǐng)求內(nèi);
廣播單元,用于將用戶請(qǐng)求廣播至對(duì)應(yīng)集群的所有機(jī)器。
[0014]作為所述的一種系統(tǒng)擴(kuò)容時(shí)零數(shù)據(jù)迀移的數(shù)據(jù)分布存儲(chǔ)系統(tǒng)的進(jìn)一步改進(jìn),所述請(qǐng)求處理單元包括:
第一判斷單元,用于判斷用戶請(qǐng)求是否是增加請(qǐng)求,若是,則執(zhí)行增加請(qǐng)求處理單元;反之,則執(zhí)行第二判斷單元;
第二判斷單元,用于判斷用戶請(qǐng)求是否是刪除請(qǐng)求,若是,則執(zhí)行刪除請(qǐng)求處理單元;反之,則執(zhí)行查找請(qǐng)求處理單元; 刪除請(qǐng)求處理單元,用于根據(jù)用戶請(qǐng)求,在本機(jī)查找對(duì)應(yīng)數(shù)據(jù)的存儲(chǔ)位置,并將其刪除;
查找請(qǐng)求處理單元,用于根據(jù)用戶請(qǐng)求,在本機(jī)查找和讀取對(duì)應(yīng)的數(shù)據(jù),并返回讀取的數(shù)據(jù);
增加請(qǐng)求處理單元,用于判斷用戶請(qǐng)求內(nèi)的IP是否與本機(jī)的IP —致,若是,則在本機(jī)查找添加的存儲(chǔ)位置并將數(shù)據(jù)添加至本機(jī);反之,則根據(jù)預(yù)設(shè)的業(yè)務(wù)要求進(jìn)行對(duì)應(yīng)的處理。
[0015]本發(fā)明的有益效果是:
本發(fā)明一種系統(tǒng)擴(kuò)容時(shí)零數(shù)據(jù)迀移的數(shù)據(jù)分布存儲(chǔ)方法及系統(tǒng)通過(guò)在集群內(nèi)引入的廣播域名和單播域名,進(jìn)而對(duì)用戶請(qǐng)求的數(shù)據(jù)進(jìn)行對(duì)應(yīng)的處理,從而在擴(kuò)容時(shí)通過(guò)變更單播域名對(duì)應(yīng)的單臺(tái)機(jī)器即可輕松完成擴(kuò)容工作。本發(fā)明簡(jiǎn)單便捷,在數(shù)據(jù)規(guī)模擴(kuò)大需要擴(kuò)容時(shí),無(wú)需進(jìn)行數(shù)據(jù)迀移,在能大大節(jié)省各類成本的同時(shí),還能有效提高響應(yīng)速度。
【附圖說(shuō)明】
[0016]下面結(jié)合附圖對(duì)本發(fā)明的【具體實(shí)施方式】作進(jìn)一步說(shuō)明:
圖1是本發(fā)明一種系統(tǒng)擴(kuò)容時(shí)零數(shù)據(jù)迀移的數(shù)據(jù)分布存儲(chǔ)方法的步驟流程圖;
圖2是本發(fā)明一種系統(tǒng)擴(kuò)容時(shí)零數(shù)據(jù)迀移的數(shù)據(jù)分布存儲(chǔ)方法步驟B的步驟流程圖; 圖3是本發(fā)明一種系統(tǒng)擴(kuò)容時(shí)零數(shù)據(jù)迀移的數(shù)據(jù)分布存儲(chǔ)方法步驟C的步驟流程圖; 圖4是本發(fā)明一種系統(tǒng)擴(kuò)容時(shí)零數(shù)據(jù)迀移的數(shù)據(jù)分布存儲(chǔ)系統(tǒng)的模塊方框圖。
【具體實(shí)施方式】
[0017]參考圖1,本發(fā)明一種系統(tǒng)擴(kuò)容時(shí)零數(shù)據(jù)迀移的數(shù)據(jù)分布存儲(chǔ)方法,包括以下步驟:
A、通過(guò)接入層接收用戶請(qǐng)求并將其轉(zhuǎn)發(fā)至路由層;
B、通過(guò)路由層將用戶請(qǐng)求轉(zhuǎn)發(fā)至存儲(chǔ)層中對(duì)應(yīng)的集群,并將其廣播至該集群的所有機(jī)器;
C、根據(jù)用戶請(qǐng)求,對(duì)應(yīng)集群的所有機(jī)器對(duì)數(shù)據(jù)進(jìn)行相應(yīng)的處理。
[0018]參考圖2,作為所述的一種系統(tǒng)擴(kuò)容時(shí)零數(shù)據(jù)迀移的數(shù)據(jù)分布存儲(chǔ)方法的進(jìn)一步改進(jìn),所述步驟B包括:
B1、根據(jù)存儲(chǔ)層內(nèi)集群預(yù)設(shè)的劃分規(guī)則,計(jì)算出用戶請(qǐng)求對(duì)應(yīng)的集群;
B2、判斷用戶請(qǐng)求是否是增加請(qǐng)求,若是,則執(zhí)行步驟B3 ;反之,則執(zhí)行步驟B4 ;
B3、獲取用戶請(qǐng)求對(duì)應(yīng)的集群的單播域名對(duì)應(yīng)的單臺(tái)機(jī)器的IP,并將其增加至用戶請(qǐng)求內(nèi);
B4、將用戶請(qǐng)求廣播至對(duì)應(yīng)集群的所有機(jī)器。
[0019]參考圖3,作為所述的一種系統(tǒng)擴(kuò)容時(shí)零數(shù)據(jù)迀移的數(shù)據(jù)分布存儲(chǔ)方法的進(jìn)一步改進(jìn),所述步驟C包括:
Cl、判斷用戶請(qǐng)求是否是增加請(qǐng)求,若是,則執(zhí)行步驟C5 ;反之,則執(zhí)行步驟C2 ;
C2、判斷用戶請(qǐng)求是否是刪除請(qǐng)求,若是,則執(zhí)行步驟C3 ;反之,則執(zhí)行步驟C4 ;
C3、根據(jù)用戶請(qǐng)求,在本機(jī)查找對(duì)應(yīng)數(shù)據(jù)的存儲(chǔ)位置,并將其刪除;
C4、根據(jù)用戶請(qǐng)求,在本機(jī)查找和讀取對(duì)應(yīng)的數(shù)據(jù),并返回讀取的數(shù)據(jù); C5、判斷用戶請(qǐng)求內(nèi)的IP是否與本機(jī)的IP —致,若是,則在本機(jī)查找添加的存儲(chǔ)位置并將數(shù)據(jù)添加至本機(jī);反之,則根據(jù)預(yù)設(shè)的業(yè)務(wù)要求進(jìn)行對(duì)應(yīng)的處理。
[0020]作為所述的一種系統(tǒng)擴(kuò)容時(shí)零數(shù)據(jù)迀移的數(shù)據(jù)分布存儲(chǔ)方法的進(jìn)一步改進(jìn),所述執(zhí)行步驟BI之前還包括有規(guī)劃步驟,所述規(guī)劃步驟具體包括:
BP1、根據(jù)預(yù)期后將到達(dá)的數(shù)據(jù)規(guī)模,將存儲(chǔ)層劃分為對(duì)應(yīng)的集群組數(shù);
BP2、對(duì)每組集群配備廣播域名和單播域名;
BP3、解析某組集群的廣播域名,得到該組集群內(nèi)全部機(jī)器的IP信息;
BP4、解析某組集群的單播域名,得到該組集群內(nèi)特定單臺(tái)機(jī)器的IP信息。
[0021]作為所述的一種系統(tǒng)擴(kuò)容時(shí)零數(shù)據(jù)迀移的數(shù)據(jù)分布存儲(chǔ)方法的進(jìn)一步改進(jìn),所述步驟D還包括有擴(kuò)容步驟,所述擴(kuò)容步驟具體包括:
E1、偵測(cè)需要擴(kuò)容的集群,并對(duì)偵測(cè)到的集群新配置一臺(tái)空閑機(jī)器或在該集群內(nèi)選取一臺(tái)空閑機(jī)器;
E2、修改該集群的單播域名對(duì)應(yīng)的IP為新配置或選取的機(jī)器的IP ;
E3、將新配置或選取的機(jī)器的IP添加至該集群的廣播域名對(duì)應(yīng)的IP列表中。
[0022]作為所述的一種系統(tǒng)擴(kuò)容時(shí)零數(shù)據(jù)迀移的數(shù)據(jù)分布存儲(chǔ)方法的進(jìn)一步改進(jìn),所述每個(gè)用戶請(qǐng)求均對(duì)應(yīng)唯一的KEY值。
[0023]作為所述的一種系統(tǒng)擴(kuò)容時(shí)零數(shù)據(jù)迀移的數(shù)據(jù)分布存儲(chǔ)方法的進(jìn)一步改進(jìn),所述預(yù)設(shè)的劃分規(guī)則為:根據(jù)用戶請(qǐng)求中的KEY值對(duì)集群數(shù)量值進(jìn)行取模運(yùn)算,得出結(jié)果即為對(duì)應(yīng)的集群。
[0024]參考圖4,本發(fā)明一種系統(tǒng)擴(kuò)容時(shí)零數(shù)據(jù)迀