本發(fā)明專利技術(shù)提供了一種容量擴(kuò)展方法及裝置,其中,該方法包括:獲取在增加服務(wù)器節(jié)點(diǎn)后的當(dāng)前分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)中服務(wù)器節(jié)點(diǎn)的節(jié)點(diǎn)數(shù)量,其中,當(dāng)前分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)中包括新增服務(wù)器節(jié)點(diǎn)和初始服務(wù)器節(jié)點(diǎn);根據(jù)服務(wù)器節(jié)點(diǎn)的節(jié)點(diǎn)數(shù)量對(duì)當(dāng)前分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)中初始服務(wù)器節(jié)點(diǎn)上的分片數(shù)據(jù)進(jìn)行分裂擴(kuò)展,以得到擴(kuò)展后的分片數(shù)據(jù);在當(dāng)前分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)中重新分布擴(kuò)展后的分片數(shù)據(jù),以使該新增服務(wù)器節(jié)點(diǎn)和該初始服務(wù)器節(jié)點(diǎn)中每一個(gè)節(jié)點(diǎn)上的分片數(shù)據(jù)的分片數(shù)量滿足預(yù)定條件。通過(guò)本發(fā)明專利技術(shù),解決了相關(guān)技術(shù)在系統(tǒng)運(yùn)行初期預(yù)先設(shè)置大量分片,導(dǎo)致分片開(kāi)銷太大的問(wèn)題,進(jìn)而達(dá)到了減小分片開(kāi)銷的效果。
【技術(shù)實(shí)現(xiàn)步驟摘要】
容量擴(kuò)展方法及裝置
本專利技術(shù)涉及通信領(lǐng)域,具體而言,涉及一種容量擴(kuò)展方法及裝置。
技術(shù)介紹
云計(jì)算(CloudComputing)是網(wǎng)格計(jì)算(GridComputing)、分布式計(jì)算(DistributedComputing)、并行計(jì)算(ParallelComputing)、效用計(jì)算(UtilityComputing)網(wǎng)絡(luò)存儲(chǔ)(NetworkStorageTechnologies)、虛擬化(Virtualization)、負(fù)載均衡(LoadBalance)等傳統(tǒng)計(jì)算機(jī)技術(shù)和網(wǎng)絡(luò)技術(shù)發(fā)展融合的產(chǎn)物。它旨在通過(guò)網(wǎng)絡(luò)把多個(gè)成本相對(duì)較低的計(jì)算實(shí)體整合成一個(gè)具有強(qiáng)大計(jì)算能力的系統(tǒng)。分布式存儲(chǔ)是云計(jì)算范疇中的一個(gè)領(lǐng)域,其作用是提供海量數(shù)據(jù)的分布式存儲(chǔ)服務(wù)以及高速讀寫(xiě)訪問(wèn)的能力。分布式存儲(chǔ)系統(tǒng)是由若干服務(wù)器節(jié)點(diǎn)(以下簡(jiǎn)稱“節(jié)點(diǎn)”)和客戶端互相連接構(gòu)成的。所述數(shù)據(jù)由鍵(Key)和值(Value)構(gòu)成,Key相當(dāng)于數(shù)據(jù)的索引,Value是Key所代表的數(shù)據(jù)內(nèi)容。邏輯上Key和Value是一對(duì)一的關(guān)系。為方便管理數(shù)據(jù),將數(shù)據(jù)按不同應(yīng)用劃分為不同的空間,每個(gè)空間劃分為多個(gè)分片,然后將數(shù)據(jù)按分片放入節(jié)點(diǎn)進(jìn)行存儲(chǔ)和管理,節(jié)點(diǎn)和分片是一對(duì)多的關(guān)系。為實(shí)現(xiàn)分片間數(shù)據(jù)的均衡分布,將key通過(guò)一定算法(MD5等)生成key的Hash值,通過(guò)一定的算法計(jì)算該hash值對(duì)應(yīng)的分片ID(如對(duì)hash值按分片總數(shù)取模),從而將數(shù)據(jù)均勻分布在空間的各個(gè)分片上,這樣只要按節(jié)點(diǎn)存儲(chǔ)能力調(diào)整其上分片的個(gè)數(shù)即可充分利用系統(tǒng)資源。在分布式存儲(chǔ)系統(tǒng)中,一個(gè)常見(jiàn)的問(wèn)題是隨著應(yīng)用規(guī)模的擴(kuò)大原有存儲(chǔ)系統(tǒng)無(wú)法承擔(dān)更多的應(yīng)用數(shù)據(jù),最簡(jiǎn)單的方法就是向分布式存儲(chǔ)系統(tǒng)中增加節(jié)點(diǎn),而問(wèn)題的關(guān)鍵在于如何在不影響系統(tǒng)正常工作的前提下讓新增加的節(jié)點(diǎn)承擔(dān)起數(shù)據(jù)存儲(chǔ)服務(wù)。如果系統(tǒng)中分片的數(shù)量遠(yuǎn)大于節(jié)點(diǎn)個(gè)數(shù)則可以將部分分片通過(guò)遷移的方式調(diào)整到新的節(jié)點(diǎn)上使新節(jié)點(diǎn)承擔(dān)起數(shù)據(jù)存儲(chǔ)服務(wù),而如果分片數(shù)較少呢?在分片數(shù)僅比節(jié)點(diǎn)多一些的情況下,遷移分片至新節(jié)點(diǎn)雖然能讓新節(jié)點(diǎn)承擔(dān)起數(shù)據(jù)存儲(chǔ)服務(wù),但很難根據(jù)節(jié)點(diǎn)能力調(diào)整節(jié)點(diǎn)負(fù)荷,容易導(dǎo)致節(jié)點(diǎn)間負(fù)荷不均;更嚴(yán)重的情況是分片數(shù)小于系統(tǒng)當(dāng)前節(jié)點(diǎn)數(shù),同一個(gè)分片只能在一個(gè)節(jié)點(diǎn)上,這樣就導(dǎo)致部分節(jié)點(diǎn)沒(méi)有分片,嚴(yán)重浪費(fèi)資源。針對(duì)上述問(wèn)題,相關(guān)技術(shù)方案中,數(shù)據(jù)遷移一般采用以下解決方法:通過(guò)預(yù)估將來(lái)系統(tǒng)的規(guī)模,按將來(lái)的規(guī)模對(duì)初始分片數(shù)進(jìn)行配置;當(dāng)前系統(tǒng)可能只有三個(gè)節(jié)點(diǎn),但是預(yù)計(jì)將來(lái)可能擴(kuò)容為1000個(gè)節(jié)點(diǎn)的大型分布式系統(tǒng),故現(xiàn)在就將分片數(shù)配置為10000個(gè)或者更多,從而使新節(jié)點(diǎn)的加入只需要通過(guò)遷移分片就可以簡(jiǎn)單完成。這種方案的問(wèn)題在于分片本身是有額外開(kāi)銷的,節(jié)點(diǎn)每多一個(gè)分片就會(huì)多一份開(kāi)銷,原來(lái)1G數(shù)據(jù)存儲(chǔ)的額外開(kāi)銷可能是10M,而現(xiàn)在因?yàn)閱蝹€(gè)節(jié)點(diǎn)分片多了則可能變成100M甚至更多,需要等到預(yù)估的將來(lái)才能降至10M;原來(lái)新增加一個(gè)節(jié)點(diǎn)可能只需要遷移10個(gè)分片,而現(xiàn)在則是1000個(gè)甚至更多,雖然數(shù)據(jù)量上來(lái)看可能相差不多,但流程上增加了100倍,出問(wèn)題的概率也增加了100倍。隨著技術(shù)的發(fā)展,目前方案1還出現(xiàn)了一種演進(jìn)版本,即輕量級(jí)的分片。分片的開(kāi)銷低了,同樣規(guī)模的分布式系統(tǒng)就可以有更多的分片,但分片的開(kāi)銷并不會(huì)憑空消失,如原來(lái)需要分片管理的資源分配現(xiàn)在分片不管理了交給了節(jié)點(diǎn),因?yàn)榉秶鷶U(kuò)大了,分配資源可能遭遇更大的鎖沖突。針對(duì)相關(guān)技術(shù)中,在系統(tǒng)運(yùn)行初期預(yù)先設(shè)置大量分片,導(dǎo)致分片開(kāi)銷太大的問(wèn)題,尚未提出有效地解決方案。
技術(shù)實(shí)現(xiàn)思路
本專利技術(shù)提供了一種容量擴(kuò)展方法及裝置,以至少解決相關(guān)技術(shù)中在擴(kuò)容過(guò)程中,需要預(yù)先設(shè)置大量分片,導(dǎo)致分片開(kāi)銷太大的問(wèn)題。根據(jù)本專利技術(shù)的一個(gè)方面,提供了一種容量擴(kuò)展方法,包括:獲取在增加服務(wù)器節(jié)點(diǎn)后的當(dāng)前分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)中服務(wù)器節(jié)點(diǎn)的節(jié)點(diǎn)數(shù)量,其中,所述當(dāng)前分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)中包括新增服務(wù)器節(jié)點(diǎn)和初始服務(wù)器節(jié)點(diǎn);根據(jù)所述服務(wù)器節(jié)點(diǎn)的節(jié)點(diǎn)數(shù)量對(duì)所述當(dāng)前分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)中所述初始服務(wù)器節(jié)點(diǎn)上的分片數(shù)據(jù)進(jìn)行分裂擴(kuò)展,以得到擴(kuò)展后的分片數(shù)據(jù);在所述當(dāng)前分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)中重新分布所述擴(kuò)展后的分片數(shù)據(jù),以使所述新增服務(wù)器節(jié)點(diǎn)和所述初始服務(wù)器節(jié)點(diǎn)中每一個(gè)節(jié)點(diǎn)上的分片數(shù)據(jù)的分片數(shù)量滿足預(yù)定條件。可選地,根據(jù)所述服務(wù)器節(jié)點(diǎn)的節(jié)點(diǎn)數(shù)量對(duì)所述當(dāng)前分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)中所述初始服務(wù)器節(jié)點(diǎn)上的分片數(shù)據(jù)進(jìn)行分裂擴(kuò)展,以得到擴(kuò)展后的分片數(shù)據(jù)包括:判斷所述初始服務(wù)器節(jié)點(diǎn)上的分片數(shù)據(jù)的分片數(shù)量是否大于所述服務(wù)器節(jié)點(diǎn)的節(jié)點(diǎn)數(shù)量;若所述初始服務(wù)器節(jié)點(diǎn)上的分片數(shù)據(jù)的分片數(shù)量小于所述服務(wù)器節(jié)點(diǎn)的節(jié)點(diǎn)數(shù)量,則在所述初始服務(wù)器節(jié)點(diǎn)中按照所述初始服務(wù)器節(jié)點(diǎn)中的分片數(shù)據(jù)的分片數(shù)量的預(yù)定倍數(shù)進(jìn)行分裂擴(kuò)展,以得到所述擴(kuò)展后的分片數(shù)據(jù)。可選地,所述在所述初始服務(wù)器節(jié)點(diǎn)中按照所述初始服務(wù)器節(jié)點(diǎn)中的分片數(shù)據(jù)的分片數(shù)量的預(yù)定倍數(shù)進(jìn)行分裂擴(kuò)展包括:對(duì)所述初始服務(wù)器節(jié)點(diǎn)中分片號(hào)為i的分片數(shù)據(jù)按照預(yù)定倍數(shù)X進(jìn)行分裂擴(kuò)展,以得到擴(kuò)展后的分片號(hào)集合(i*X,i*X+X-1),其中,所述i為0到所述初始服務(wù)器節(jié)點(diǎn)中的分片數(shù)據(jù)的分片總量之間的任意一個(gè)自然數(shù);建立與擴(kuò)展后的所述分片號(hào)集合中每一個(gè)分片號(hào)對(duì)應(yīng)的過(guò)濾器和指針,以得到用于訪問(wèn)擴(kuò)展后的每一個(gè)分片號(hào)對(duì)應(yīng)的分片數(shù)據(jù)的連接。可選地,在所述當(dāng)前分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)中重新分布所述擴(kuò)展后的分片數(shù)據(jù)包括:根據(jù)最小遷移路徑生成遷移列表,其中,所述遷移列表中至少包括待遷移的分片數(shù)據(jù),以及所述待遷移的分片數(shù)據(jù)在遷移前的源服務(wù)器節(jié)點(diǎn)地址和在遷移后的目標(biāo)服務(wù)器節(jié)點(diǎn)地址;將所述待遷移的分片數(shù)據(jù)按照所述遷移列表由所述源服務(wù)器節(jié)點(diǎn)復(fù)制遷移至所述目標(biāo)服務(wù)器節(jié)點(diǎn)。可選地,在將所述待遷移的分片數(shù)據(jù)按照所述遷移列表由所述源服務(wù)器節(jié)點(diǎn)復(fù)制遷移至所述目標(biāo)服務(wù)器節(jié)點(diǎn)時(shí),還包括:接收客戶端發(fā)送的操作請(qǐng)求,其中,所述操作請(qǐng)求用于對(duì)所述待遷移的分片數(shù)據(jù)執(zhí)行預(yù)定操作;響應(yīng)所述操作請(qǐng)求對(duì)所述初始服務(wù)器中的分片數(shù)據(jù)執(zhí)行所述預(yù)定操作,并將所述預(yù)定操作的操作記錄保存到Redo日志中,其中,所述操作記錄用于對(duì)遷移后的所述服務(wù)器節(jié)點(diǎn)中的分片數(shù)據(jù)執(zhí)行所述預(yù)定操作。可選地,在將所述待遷移的分片數(shù)據(jù)按照所述遷移列表由所述源服務(wù)器節(jié)點(diǎn)復(fù)制遷移至所述目標(biāo)服務(wù)器節(jié)點(diǎn)時(shí),還包括:若已完成所述遷移的分片數(shù)據(jù)的分片數(shù)量大于等于預(yù)定閾值,則鎖定所述初始服務(wù)器節(jié)點(diǎn)中的分片數(shù)據(jù),其中,在鎖定所述初始服務(wù)器節(jié)點(diǎn)中的分片數(shù)據(jù)之后,所述初始服務(wù)器節(jié)點(diǎn)中的分片數(shù)據(jù)將拒絕執(zhí)行所述操作。根據(jù)本專利技術(shù)的另一方面,提供了一種容量擴(kuò)展裝置,包括:獲取模塊,用于獲取在增加服務(wù)器節(jié)點(diǎn)后的當(dāng)前分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)中服務(wù)器節(jié)點(diǎn)的節(jié)點(diǎn)數(shù)量,其中,所述當(dāng)前分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)中包括新增服務(wù)器節(jié)點(diǎn)和初始服務(wù)器節(jié)點(diǎn);第一處理模塊,用于根據(jù)所述服務(wù)器節(jié)點(diǎn)的節(jié)點(diǎn)數(shù)量對(duì)所述當(dāng)前分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)中所述初始服務(wù)器節(jié)點(diǎn)上的分片數(shù)據(jù)進(jìn)行分裂擴(kuò)展,以得到擴(kuò)展后的分片數(shù)據(jù);第二處理模塊,用于在所述當(dāng)前分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)中重新分布所述擴(kuò)展后的分片數(shù)據(jù),以使所述新增服務(wù)器節(jié)點(diǎn)和所述初始服務(wù)器節(jié)點(diǎn)中每一個(gè)節(jié)點(diǎn)上的分片數(shù)據(jù)的分片數(shù)量滿足預(yù)定條件。可選地,所述第一處理模塊包括:判斷單元,用于判斷所述初始服務(wù)器節(jié)點(diǎn)上的分片數(shù)據(jù)的分片數(shù)量是否大于所述服務(wù)器節(jié)點(diǎn)的節(jié)點(diǎn)數(shù)量;處理單元,用于在所述初始服務(wù)器節(jié)點(diǎn)上的本文檔來(lái)自技高網(wǎng)...

【技術(shù)保護(hù)點(diǎn)】
一種容量擴(kuò)展方法,其特征在于,包括:獲取在增加服務(wù)器節(jié)點(diǎn)后的當(dāng)前分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)中服務(wù)器節(jié)點(diǎn)的節(jié)點(diǎn)數(shù)量,其中,所述當(dāng)前分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)中包括新增服務(wù)器節(jié)點(diǎn)和初始服務(wù)器節(jié)點(diǎn);根據(jù)所述服務(wù)器節(jié)點(diǎn)的節(jié)點(diǎn)數(shù)量對(duì)所述當(dāng)前分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)中所述初始服務(wù)器節(jié)點(diǎn)上的分片數(shù)據(jù)進(jìn)行分裂擴(kuò)展,以得到擴(kuò)展后的分片數(shù)據(jù);在所述當(dāng)前分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)中重新分布所述擴(kuò)展后的分片數(shù)據(jù),以使所述新增服務(wù)器節(jié)點(diǎn)和所述初始服務(wù)器節(jié)點(diǎn)中每一個(gè)節(jié)點(diǎn)上的分片數(shù)據(jù)的分片數(shù)量滿足預(yù)定條件。
【技術(shù)特征摘要】
1.一種容量擴(kuò)展方法,其特征在于,包括:獲取在增加服務(wù)器節(jié)點(diǎn)后的當(dāng)前分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)中服務(wù)器節(jié)點(diǎn)的節(jié)點(diǎn)數(shù)量,其中,所述當(dāng)前分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)中包括新增服務(wù)器節(jié)點(diǎn)和初始服務(wù)器節(jié)點(diǎn);根據(jù)所述服務(wù)器節(jié)點(diǎn)的節(jié)點(diǎn)數(shù)量對(duì)所述當(dāng)前分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)中所述初始服務(wù)器節(jié)點(diǎn)上的分片數(shù)據(jù)進(jìn)行分裂擴(kuò)展,以得到擴(kuò)展后的分片數(shù)據(jù);在所述當(dāng)前分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)中重新分布所述擴(kuò)展后的分片數(shù)據(jù),以使所述新增服務(wù)器節(jié)點(diǎn)和所述初始服務(wù)器節(jié)點(diǎn)中每一個(gè)節(jié)點(diǎn)上的分片數(shù)據(jù)的分片數(shù)量滿足預(yù)定條件。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,根據(jù)所述服務(wù)器節(jié)點(diǎn)的節(jié)點(diǎn)數(shù)量對(duì)所述當(dāng)前分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)中所述初始服務(wù)器節(jié)點(diǎn)上的分片數(shù)據(jù)進(jìn)行分裂擴(kuò)展,以得到擴(kuò)展后的分片數(shù)據(jù)包括:判斷所述初始服務(wù)器節(jié)點(diǎn)上的分片數(shù)據(jù)的分片數(shù)量是否大于所述服務(wù)器節(jié)點(diǎn)的節(jié)點(diǎn)數(shù)量;若所述初始服務(wù)器節(jié)點(diǎn)上的分片數(shù)據(jù)的分片數(shù)量小于所述服務(wù)器節(jié)點(diǎn)的節(jié)點(diǎn)數(shù)量,則在所述初始服務(wù)器節(jié)點(diǎn)中按照所述初始服務(wù)器節(jié)點(diǎn)中的分片數(shù)據(jù)的分片數(shù)量的預(yù)定倍數(shù)進(jìn)行分裂擴(kuò)展,以得到所述擴(kuò)展后的分片數(shù)據(jù)。3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述在所述初始服務(wù)器節(jié)點(diǎn)中按照所述初始服務(wù)器節(jié)點(diǎn)中的分片數(shù)據(jù)的分片數(shù)量的預(yù)定倍數(shù)進(jìn)行分裂擴(kuò)展包括:對(duì)所述初始服務(wù)器節(jié)點(diǎn)中分片號(hào)為i的分片數(shù)據(jù)按照預(yù)定倍數(shù)X進(jìn)行分裂擴(kuò)展,以得到擴(kuò)展后的分片號(hào)集合(i*X,i*X+X-1),其中,所述i為0到所述初始服務(wù)器節(jié)點(diǎn)中的分片數(shù)據(jù)的分片總量之間的任意一個(gè)自然數(shù);建立與擴(kuò)展后的所述分片號(hào)集合中每一個(gè)分片號(hào)對(duì)應(yīng)的過(guò)濾器和指針,以得到用于訪問(wèn)擴(kuò)展后的每一個(gè)分片號(hào)對(duì)應(yīng)的分片數(shù)據(jù)的連接。4.根據(jù)權(quán)利要求1所述的方法,其特征在于,在所述當(dāng)前分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)中重新分布所述擴(kuò)展后的分片數(shù)據(jù)包括:根據(jù)最小遷移路徑生成遷移列表,其中,所述遷移列表中至少包括待遷移的分片數(shù)據(jù),以及所述待遷移的分片數(shù)據(jù)在遷移前的源服務(wù)器節(jié)點(diǎn)地址和在遷移后的目標(biāo)服務(wù)器節(jié)點(diǎn)地址;將所述待遷移的分片數(shù)據(jù)按照所述遷移列表由所述源服務(wù)器節(jié)點(diǎn)復(fù)制遷移至所述目標(biāo)服務(wù)器節(jié)點(diǎn)。5.根據(jù)權(quán)利要求4所述的方法,其特征在于,在將所述待遷移的分片數(shù)據(jù)按照所述遷移列表由所述源服務(wù)器節(jié)點(diǎn)復(fù)制遷移至所述目標(biāo)服務(wù)器節(jié)點(diǎn)時(shí),還包括:接收客戶端發(fā)送的操作請(qǐng)求,其中,所述操作請(qǐng)求用于對(duì)所述待遷移的分片數(shù)據(jù)執(zhí)行預(yù)定操作;響應(yīng)所述操作請(qǐng)求對(duì)所述初始服務(wù)器中的分片數(shù)據(jù)執(zhí)行所述預(yù)定操作,并將所述預(yù)定操作的操作記錄保存到Redo日志中,其中,所述操作記錄用于對(duì)遷移后的所述服務(wù)器節(jié)點(diǎn)中的分片數(shù)據(jù)執(zhí)行所述預(yù)定操作。6.根據(jù)權(quán)利要求5所述的方法,其特征在于,在將所述待遷移的分片數(shù)據(jù)按照所述遷移列表由所述源服務(wù)器節(jié)點(diǎn)復(fù)制遷移至所述目標(biāo)服務(wù)器節(jié)點(diǎn)時(shí),還包括:若已完成所述遷移的分片數(shù)據(jù)的分片數(shù)量大于等于預(yù)定閾值,則鎖定所述初始服務(wù)器節(jié)點(diǎn)中的分...
【專利技術(shù)屬性】
技術(shù)研發(fā)人員:陳典強(qiáng),郭斌,韓銀俊,
申請(qǐng)(專利權(quán))人:南京中興新軟件有限責(zé)任公司,
類型:發(fā)明
國(guó)別省市:江蘇,32
還沒(méi)有人留言評(píng)論。發(fā)表了對(duì)其他瀏覽者有用的留言會(huì)獲得科技券。