本發(fā)明屬于計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種虛擬機(jī)部署方法及裝置。
背景技術(shù):
在互聯(lián)網(wǎng)高速發(fā)展的今天,云計(jì)算采用創(chuàng)新的計(jì)算模式使用戶通過互聯(lián)網(wǎng)隨時(shí)獲得近乎無限的計(jì)算能力和豐富多樣的信息服務(wù)。云計(jì)算融合了以虛擬化技術(shù),借助虛擬化技術(shù)的伸縮性和靈活性,提高了資源利用率,節(jié)省了成本。具體地,一臺(tái)實(shí)體的物理機(jī)共計(jì)32核,可以分配出30個(gè)虛擬機(jī)(virtualmachine,簡稱vm),每個(gè)vm需要4個(gè)核,此時(shí)該物理機(jī)虛擬出30個(gè)虛擬機(jī),理論上需要120個(gè)核,但是實(shí)際上物理機(jī)只有32核。實(shí)際應(yīng)用中所有業(yè)務(wù)不會(huì)同時(shí)處于滿負(fù)荷狀態(tài),為了節(jié)省成本,提高資源利用率,云計(jì)算中共用處于低負(fù)荷狀態(tài)的核,以完成單臺(tái)物理機(jī)虛擬出30個(gè)虛擬機(jī)的目的。
通過上述虛擬方式進(jìn)行虛擬化,大量數(shù)據(jù)可能會(huì)出現(xiàn)共用一個(gè)虛擬機(jī)的狀況,就導(dǎo)致該虛擬機(jī)的負(fù)載壓力過大的問題。例如在淘寶應(yīng)用中旗艦店的商品數(shù)量往往比普通店鋪的商品數(shù)量高出很多,而且搜索熱度也會(huì)比普通店鋪高,當(dāng)基于上述虛擬方式進(jìn)行虛擬化時(shí),有可能出現(xiàn)多個(gè)旗艦店的商品數(shù)據(jù)部署到同一個(gè)虛擬機(jī)上的情況,在買家基于賣家進(jìn)行搜索時(shí),就會(huì)出現(xiàn)所處虛擬機(jī)負(fù)載壓力大的問題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提供一種虛擬機(jī)部署方法及裝置,用于解決現(xiàn)有虛擬化方式在大量數(shù)據(jù)部署到同一虛擬機(jī)上時(shí)會(huì)導(dǎo)致虛擬機(jī)負(fù)載壓力過大的問題。
為了實(shí)現(xiàn)上述目的,本發(fā)明提供了一種虛擬機(jī)部署方法,包括:
對(duì)待處理數(shù)據(jù)進(jìn)行打散分片獲取分片節(jié)點(diǎn);
依據(jù)所述分片節(jié)點(diǎn)的數(shù)據(jù)量為所述分片節(jié)點(diǎn)分配目標(biāo)虛擬機(jī);
將所述分片節(jié)點(diǎn)部署到所述目標(biāo)虛擬機(jī)上。
為了實(shí)現(xiàn)上述目的,本發(fā)明提供了一種虛擬機(jī)部署裝置,包括:
打散模塊,用于對(duì)待處理數(shù)據(jù)進(jìn)行打散分片獲取分片節(jié)點(diǎn);
分配模塊,用于依據(jù)所述分片節(jié)點(diǎn)的數(shù)據(jù)量為所述分片節(jié)點(diǎn)分配目標(biāo)虛擬機(jī);
部署模塊,用于將所述分片節(jié)點(diǎn)部署到所述目標(biāo)虛擬機(jī)上。
本發(fā)明的虛擬機(jī)部署方法及裝置,通過對(duì)待處理數(shù)據(jù)進(jìn)行打散分片獲取分片節(jié)點(diǎn),依據(jù)分片節(jié)點(diǎn)的數(shù)據(jù)量為分片節(jié)點(diǎn)分配目標(biāo)虛擬機(jī),將分片節(jié)點(diǎn)部署到目標(biāo)虛擬機(jī)上。本實(shí)施例中分片節(jié)點(diǎn)分配虛擬機(jī)時(shí)先通過數(shù)據(jù)打散的方式來控制分片節(jié)點(diǎn)的數(shù)據(jù)量,再分配與該數(shù)據(jù)量相匹配的虛擬機(jī),從而可以避免虛擬機(jī)出現(xiàn)過載的現(xiàn)象,更好實(shí)現(xiàn)了負(fù)載均衡。
附圖說明
圖1為本發(fā)明實(shí)施例一的虛擬機(jī)部署方法的流程示意圖;
圖2為本發(fā)明實(shí)施例二的虛擬機(jī)部署方法的流程示意圖;
圖3為本實(shí)施例二中提供的一致性hash算法打散數(shù)據(jù)的示意圖;
圖4為本實(shí)施例二中提供的數(shù)據(jù)打散后的結(jié)果示意圖;
圖5為本實(shí)施例二中提供的虛擬機(jī)部署方法的應(yīng)用示意圖之一;
圖6為本實(shí)施例二中提供的虛擬機(jī)部署方法的應(yīng)用示意圖之二;
圖7為本發(fā)明實(shí)施例三的虛擬機(jī)部署裝置的結(jié)構(gòu)示意圖;
圖8為本發(fā)明實(shí)施例四的虛擬機(jī)部署裝置的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面結(jié)合附圖對(duì)本發(fā)明實(shí)施例提供的虛擬機(jī)部署方法及裝置進(jìn)行詳細(xì)描述。
實(shí)施例一
如圖1所示,其為本發(fā)明實(shí)施例一的虛擬機(jī)部署方法的流程示意圖,該虛擬機(jī)部署方法包括:
步驟101、對(duì)待處理數(shù)據(jù)進(jìn)行打散分片獲取分片節(jié)點(diǎn)。
實(shí)際應(yīng)用中,為了對(duì)數(shù)據(jù)進(jìn)行存儲(chǔ),需要對(duì)大數(shù)據(jù)進(jìn)行打散分片,將整體的大數(shù)據(jù)進(jìn)行分?jǐn)偞鎯?chǔ),這樣每個(gè)存儲(chǔ)數(shù)據(jù)的設(shè)備的數(shù)據(jù)量相對(duì)小一些,降低存儲(chǔ)設(shè)備的壓力。
本實(shí)施例中,對(duì)待處理數(shù)據(jù)按照預(yù)設(shè)的打散算法進(jìn)行打散分片,獲取到分片節(jié)點(diǎn),其實(shí)分片節(jié)點(diǎn)就是一個(gè)打散后的分片數(shù)據(jù)。具體地,首先按照待處理數(shù)據(jù)的數(shù)據(jù)量大小設(shè)定打散的片數(shù),設(shè)定完片數(shù)后,基于打散算法將待處理數(shù)據(jù)進(jìn)行打散分片。
例如,待處理數(shù)據(jù)為20億條數(shù)據(jù),可以打散成256片,也就是將20億條數(shù)據(jù)打散成256個(gè)分片節(jié)點(diǎn)。在淘寶業(yè)務(wù)的場景下,可以采用hash算法對(duì)商品數(shù)據(jù)打散分片,基于打散獲取到的分片節(jié)點(diǎn)存儲(chǔ)商品數(shù)據(jù)。
步驟102、依據(jù)所述分片節(jié)點(diǎn)的數(shù)據(jù)量為所述分片節(jié)點(diǎn)分配目標(biāo)虛擬機(jī)。
獲取到各分片節(jié)點(diǎn)的數(shù)據(jù)量是不同的,在獲取到分片節(jié)點(diǎn)后,計(jì)算每個(gè)分片節(jié)點(diǎn)的數(shù)據(jù)量。
在獲取到分片節(jié)點(diǎn)的數(shù)據(jù)量之后,為分片節(jié)點(diǎn)分配目標(biāo)虛擬機(jī),本實(shí)施中,該目標(biāo)虛擬機(jī)需要具備處理分片節(jié)點(diǎn)所包含的數(shù)據(jù)量的處理能力,其中,處理能力可以用cpu、內(nèi)存和磁盤等性能參數(shù)中的至少一個(gè)進(jìn)行表征。
步驟103、將所述分片節(jié)點(diǎn)部署到所述目標(biāo)虛擬機(jī)上。
為分片節(jié)點(diǎn)選取出目標(biāo)虛擬機(jī)后,將分片節(jié)點(diǎn)部署到目標(biāo)虛擬機(jī)上。
本實(shí)施例提供的虛擬機(jī)部署方法,通過對(duì)待處理數(shù)據(jù)進(jìn)行打散分片獲取分片節(jié)點(diǎn),計(jì)算分片節(jié)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)量,依據(jù)分片節(jié)點(diǎn)的數(shù)據(jù)量為分片節(jié)點(diǎn)分配目標(biāo)虛擬機(jī),將分片節(jié)點(diǎn)部署到目標(biāo)虛擬機(jī)上。本實(shí)施例中分片節(jié)點(diǎn)分配虛擬機(jī)時(shí)先通過數(shù)據(jù)打散的方式來控制分片節(jié)點(diǎn)的數(shù)據(jù)量,再分配與該數(shù)據(jù)量相匹配的虛擬機(jī),從而可以避免虛擬機(jī)出現(xiàn)過載的現(xiàn)象,更好地實(shí)現(xiàn)了負(fù)載均衡。
實(shí)施例二
如圖2所示,其為本發(fā)明實(shí)施例二的虛擬機(jī)部署方法的流程示意圖, 該虛擬機(jī)部署方法包括:
步驟201、將所有虛擬機(jī)的性能參數(shù)輸入到所述機(jī)器池中。
為便于對(duì)虛擬機(jī)進(jìn)行分配,本實(shí)施例中將所有vm的性能參數(shù)輸入到機(jī)器池中,vm的性能參數(shù)包括vm的內(nèi)存大小、磁盤大小、核數(shù)等。
步驟202、對(duì)待處理數(shù)據(jù)進(jìn)行打散分片獲取分片節(jié)點(diǎn)。
步驟203、獲取分片節(jié)點(diǎn)的備份數(shù)據(jù)。
具體地,采用一致性哈希(hash)算法來對(duì)待處理數(shù)據(jù)進(jìn)行打散分片,首先按照待處理數(shù)據(jù)的數(shù)據(jù)量大小設(shè)定打散的片數(shù),設(shè)定完片數(shù)后,基于一致性hash算法進(jìn)行打散分片。為了保證數(shù)據(jù)的安全性,可以對(duì)分片節(jié)點(diǎn)進(jìn)行備份,獲取該分片節(jié)點(diǎn)的備份數(shù)據(jù)。
如圖3所示,其為本實(shí)施例二中提供的一致性hash算法打散數(shù)據(jù)的示意圖。一致性hash算法具體地將value映射到一個(gè)32位的鍵(key)值,也即是0~2^32-1次方的數(shù)值空間,將這個(gè)空間想象成一個(gè)首(0)尾(2^32-1)相接的圓環(huán)。再將數(shù)據(jù)映射到具體的節(jié)點(diǎn)(node)上,如key%n,key是數(shù)據(jù)的key,n是節(jié)點(diǎn)數(shù)。圖3中所示,環(huán)上的大圓圈代表一個(gè)節(jié)點(diǎn),環(huán)上的小圓圈代表節(jié)點(diǎn)數(shù)據(jù),每個(gè)節(jié)點(diǎn)下面設(shè)置有主數(shù)據(jù)和備份數(shù)據(jù)。
例如,有10億條數(shù)據(jù)需要打散,通過一致性hash算法可以將數(shù)據(jù)打散成如圖4所示的結(jié)果。圖中將10億條數(shù)據(jù)打散成4片,每個(gè)分片對(duì)應(yīng)一個(gè)分片節(jié)點(diǎn)。為了提高數(shù)據(jù)的安全性,以及保證服務(wù)的延續(xù)性,對(duì)數(shù)據(jù)進(jìn)行備份,每個(gè)分片節(jié)點(diǎn)下面設(shè)置有多份數(shù)據(jù),而且分片節(jié)點(diǎn)下的多份數(shù)據(jù)之間為平等關(guān)系,也就是說,多份數(shù)據(jù)之間互為主備份數(shù)據(jù)。例如,分片節(jié)點(diǎn)1下包括數(shù)據(jù)1~數(shù)據(jù)4,其中數(shù)據(jù)1、數(shù)據(jù)2、數(shù)據(jù)3以及數(shù)據(jù)4互為主備份數(shù)據(jù)。分片節(jié)點(diǎn)2下包括數(shù)據(jù)1~數(shù)據(jù)2,其中數(shù)據(jù)1與數(shù)據(jù)2互為主備份數(shù)據(jù)。
步驟204、計(jì)算分片節(jié)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)量。
具體地,獲取分片節(jié)點(diǎn)中一條數(shù)據(jù)所包含的字段個(gè)數(shù)、每個(gè)字段對(duì)應(yīng)的字段類型以及一條數(shù)據(jù)所包含的表數(shù)目,以及分片節(jié)點(diǎn)所包含的詞條數(shù),該詞條數(shù)用于指示出分片節(jié)點(diǎn)包含多少條數(shù)據(jù)。進(jìn)一步地,根據(jù) 一條數(shù)據(jù)所包含的字段個(gè)數(shù)、每個(gè)字段對(duì)應(yīng)的字段類型以及所包含的表數(shù)目能夠計(jì)算出一條數(shù)據(jù)占用的比特?cái)?shù)。實(shí)際中,當(dāng)獲取到字段類型后,就可以得到該字段類型所占用的比特?cái)?shù),例如,整型數(shù)據(jù)int占用4比特(byte);長整型數(shù)據(jù)(long)占用4byte;雙整型數(shù)據(jù)(double)占用8byte,字符串(char)占用2byte等。進(jìn)一步地,根據(jù)詞條數(shù)和分片節(jié)點(diǎn)中一條數(shù)據(jù)所占用的比特?cái)?shù),計(jì)算得到分片節(jié)點(diǎn)的數(shù)據(jù)量。具體地,將詞條數(shù)與一條數(shù)據(jù)所占用的比特?cái)?shù)相乘,得到分片節(jié)點(diǎn)的數(shù)據(jù)量。
步驟205、根據(jù)數(shù)據(jù)量獲取處理分片節(jié)點(diǎn)所需的處理能力。
其中,所述處理能力用cpu、內(nèi)存和磁盤性能參數(shù)中的至少一個(gè)進(jìn)行表征。
在搜索引擎的應(yīng)用場景下,獲取分片節(jié)點(diǎn)的數(shù)據(jù)量,基于數(shù)據(jù)量獲取處理分片節(jié)點(diǎn)所需的處理能力?;讷@取的一條數(shù)據(jù)的比特?cái)?shù)與預(yù)設(shè)的搜索特性膨脹系數(shù)、合并索引系數(shù),計(jì)算該分片節(jié)點(diǎn)所需的磁盤大小,在計(jì)算出所需的磁盤大小后,根據(jù)該磁盤大小可以獲取到分片節(jié)點(diǎn)所需的內(nèi)存大小以及所需中央處理器(centralprocessingunit,簡稱cpu)的性能。
實(shí)際應(yīng)用中,在構(gòu)建索引時(shí)索引級(jí)數(shù)越多,搜索時(shí)所需要的時(shí)間就會(huì)越長,說明搜索難度就會(huì)越高,相當(dāng)于搜索進(jìn)行了膨脹,本實(shí)施例中,預(yù)先設(shè)置一個(gè)搜索特性膨脹系數(shù),該搜索特性膨脹系數(shù)可以根據(jù)經(jīng)驗(yàn)進(jìn)行設(shè)定。在使用docvalue搜索方式時(shí),磁盤和內(nèi)存的搜索膨脹系數(shù)分別設(shè)置為1.17和0.85。在vsearch中合并索引系數(shù)約大于2。
步驟206、從機(jī)器池中為分片節(jié)點(diǎn)選取性能與所述處理能力匹配的目標(biāo)虛擬機(jī)。
具體地,根據(jù)處理分片節(jié)點(diǎn)所需的處理能力,從機(jī)器池中選取性能與該處理能力匹配的目標(biāo)虛擬機(jī)??蛇x地,根據(jù)分片節(jié)點(diǎn)所需的處理能力中磁盤和內(nèi)存與預(yù)設(shè)系數(shù),計(jì)算出目標(biāo)虛擬機(jī)對(duì)應(yīng)的磁盤和內(nèi)存的大小,例如,將處理能力中磁盤和內(nèi)存分別與該預(yù)設(shè)的系數(shù)做乘法得到目標(biāo)虛擬機(jī)的磁盤和內(nèi)存的大小。例如,分片節(jié)點(diǎn)所需的內(nèi)存大小=目標(biāo)虛擬機(jī)的內(nèi)存*75%,分片節(jié)點(diǎn)所需的磁盤大?。侥繕?biāo)虛擬機(jī)的磁盤*75%。 從機(jī)器池中選取目標(biāo)虛擬機(jī)的過程中,可以優(yōu)先從低配機(jī)器池中選擇,逐步往高配機(jī)器池中選取,以達(dá)到使用最優(yōu)配置。
下面舉例進(jìn)行說明:如圖5所示,圖中將20億條數(shù)據(jù)打散成n片,每個(gè)分片對(duì)應(yīng)一個(gè)分片節(jié)點(diǎn)。當(dāng)數(shù)據(jù)未進(jìn)行備份時(shí),計(jì)算出每分片節(jié)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)量,然后根據(jù)獲取到數(shù)據(jù)量能夠得到處理分片節(jié)點(diǎn)所需的處理能力,其中,如圖5中所示,處理能力包括處理分片節(jié)點(diǎn)所需的磁盤大小、所需的內(nèi)存大小以及所需cpu性能等。然后根據(jù)該所需的處理能力,從機(jī)器池中獲取到與分片節(jié)點(diǎn)匹配的目標(biāo)虛擬機(jī)。圖中包括m個(gè)物理機(jī),m個(gè)物理機(jī)虛擬出n個(gè)虛擬機(jī),其中m<n。物理機(jī)1包括虛擬機(jī)1和虛擬機(jī)2,物理機(jī)2包括虛擬機(jī)3,物理機(jī)3包括虛擬機(jī)4……物理機(jī)m包括虛擬機(jī)n。其中,分片節(jié)點(diǎn)1部署在虛擬機(jī)1上,分片節(jié)點(diǎn)2部署在虛擬機(jī)2上……分片節(jié)點(diǎn)n部署在虛擬機(jī)n上。
步驟207、從機(jī)器池中為備份數(shù)據(jù)選取性能與所述處理能力匹配的第一虛擬機(jī)。
本實(shí)施例中,為了提高數(shù)據(jù)的安全性,以及保證服務(wù)的延續(xù)性,為分片節(jié)點(diǎn)進(jìn)行了備份,在為分片節(jié)點(diǎn)分配目標(biāo)虛擬機(jī)的同時(shí),還需要為分片節(jié)點(diǎn)的備份數(shù)據(jù)分配虛擬機(jī)。由于備份數(shù)據(jù)與分片節(jié)點(diǎn)中的數(shù)據(jù)完全一致,在為備份數(shù)據(jù)分配虛擬機(jī)時(shí),也從機(jī)器池中按照分片節(jié)點(diǎn)所需的處理能力,選取性能與處理能力匹配的第一虛擬機(jī)作為備份數(shù)據(jù)對(duì)應(yīng)的虛擬機(jī)。
步驟208、判斷目標(biāo)虛擬機(jī)與第一虛擬機(jī)是否屬于同一物理機(jī)。
在分配虛擬機(jī)時(shí),如果目標(biāo)虛擬機(jī)和第一虛擬機(jī)屬于同一物理機(jī)時(shí),在物理機(jī)出現(xiàn)故障無法正常運(yùn)行時(shí),該分片節(jié)點(diǎn)的數(shù)據(jù)就不能再提供服務(wù)。為了避免主備份數(shù)據(jù)被分配屬于同一物理機(jī)的虛擬機(jī)上,本實(shí)施例中在獲取到目標(biāo)虛擬機(jī)和第一虛擬機(jī)后,進(jìn)一步判斷該目標(biāo)虛擬機(jī)和第一虛擬機(jī)是否屬于同一物理機(jī)。
如果判斷結(jié)果為是,執(zhí)行步驟209;否則,執(zhí)行步驟210。
步驟209、重新為備份數(shù)據(jù)從所述機(jī)器池中選取與所述處理能力匹配的第一虛擬機(jī)直到目標(biāo)虛擬機(jī)與第一虛擬機(jī)不屬于同一物理機(jī)為止。
如果目標(biāo)虛擬機(jī)和第一虛擬機(jī)屬于同一個(gè)物理機(jī),為了保證當(dāng)目標(biāo)虛擬機(jī)所在的物理機(jī)出現(xiàn)故障后,備份數(shù)據(jù)可以繼續(xù)提供服務(wù),本實(shí)施例中為備份數(shù)據(jù)重新選取第一虛擬機(jī),直到選取出的第一虛擬機(jī)和目標(biāo)虛擬機(jī)不屬于同一物理機(jī)上為止。在獲取到與目標(biāo)虛擬機(jī)不屬于同一物理機(jī)的第一虛擬機(jī)后,執(zhí)行步驟210。
步驟210、將分片節(jié)點(diǎn)以及備份數(shù)據(jù)分別部署到目標(biāo)虛擬機(jī)和第一虛擬機(jī)上。
下面舉例進(jìn)行說明:如圖6所示,圖中將20億條數(shù)據(jù)打散成n片,每個(gè)分片對(duì)應(yīng)一個(gè)分片節(jié)點(diǎn)。每個(gè)分片節(jié)點(diǎn)下包括多個(gè)備份數(shù)據(jù),例如分片節(jié)點(diǎn)1包括數(shù)據(jù)1、備份數(shù)據(jù)1和備份數(shù)據(jù)2,分片節(jié)點(diǎn)2包括數(shù)據(jù)1和備份數(shù)據(jù)1,分片節(jié)點(diǎn)3包括數(shù)據(jù)1和數(shù)據(jù)備份1……分片節(jié)點(diǎn)n包括數(shù)據(jù)1、備份數(shù)據(jù)1~備份數(shù)據(jù)3。圖中包括m個(gè)物理機(jī),m個(gè)物理機(jī)虛擬出n個(gè)虛擬機(jī),其中m<n。物理機(jī)1包括虛擬機(jī)1和虛擬機(jī)2,物理機(jī)2包括虛擬機(jī)3,物理機(jī)3包括虛擬機(jī)4……物理機(jī)m包括虛擬機(jī)n。
在對(duì)主數(shù)據(jù)即數(shù)據(jù)1~數(shù)據(jù)n部署虛擬機(jī)時(shí),從機(jī)器池中獲取到與各主數(shù)據(jù)匹配的目標(biāo)虛擬機(jī)。其中,數(shù)據(jù)1部署在虛擬機(jī)1上,數(shù)據(jù)2部署在虛擬機(jī)2上……數(shù)據(jù)n部署在虛擬機(jī)n上。
在對(duì)備份數(shù)據(jù)部署虛擬機(jī)時(shí),分片節(jié)點(diǎn)1的備份數(shù)據(jù)1部署在虛擬機(jī)3上,分片節(jié)點(diǎn)2的備份數(shù)據(jù)1部署在虛擬機(jī)4上,分片節(jié)點(diǎn)3的備份數(shù)據(jù)1部署在虛擬機(jī)1上……分片節(jié)點(diǎn)n的備份數(shù)據(jù)1部署在虛擬機(jī)k上。其中,k小于n。分片節(jié)點(diǎn)1的備份數(shù)據(jù)2部署在虛擬機(jī)4上,……分片節(jié)點(diǎn)n的備份數(shù)據(jù)1部署在虛擬機(jī)i上,其中,i小于n。分片節(jié)點(diǎn)n的備份數(shù)據(jù)3部署在虛擬機(jī)i上,其中,i小于n。
此時(shí),在為備份數(shù)據(jù)部署虛擬機(jī)時(shí)需要考慮備份數(shù)據(jù)不能部署在與目標(biāo)虛擬機(jī)處于同一物理機(jī)上的虛擬機(jī)上。
在該示例中,備份數(shù)據(jù)的數(shù)量不能成為限制本發(fā)明的條件,備份數(shù)據(jù)的數(shù)量并不進(jìn)行限定。
本實(shí)施例提供的虛擬機(jī)部署方法,通過對(duì)待處理數(shù)據(jù)進(jìn)行打散分片獲取分片節(jié)點(diǎn),計(jì)算分片節(jié)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)量,依據(jù)分片節(jié)點(diǎn)的數(shù)據(jù)量為 分片節(jié)點(diǎn)分配目標(biāo)虛擬機(jī),并且為分片節(jié)點(diǎn)進(jìn)行備份,并為備份數(shù)據(jù)分配第一虛擬機(jī),當(dāng)目標(biāo)虛擬機(jī)與第一虛擬機(jī)不屬于同一物理機(jī)時(shí),將分片節(jié)點(diǎn)和備份數(shù)據(jù)分別部署到目標(biāo)虛擬機(jī)和第一虛擬機(jī)上。本實(shí)施例中分片節(jié)點(diǎn)分配虛擬機(jī)時(shí)先通過數(shù)據(jù)打散的方式來控制分片節(jié)點(diǎn)的數(shù)據(jù)量,再分配與該數(shù)據(jù)量相匹配的虛擬機(jī),從而可以避免虛擬機(jī)出現(xiàn)過載的現(xiàn)象,更好地實(shí)現(xiàn)了負(fù)載均衡。
實(shí)施例三
如圖7所示,其為本發(fā)明實(shí)施例三的虛擬機(jī)部署裝置的結(jié)構(gòu)示意圖,該虛擬機(jī)部署裝置包括:打散模塊11、分配模塊12和部署模塊13。
其中,打散模塊11,用于對(duì)待處理數(shù)據(jù)進(jìn)行打散分片獲取分片節(jié)點(diǎn)。
本實(shí)施例中,打散模塊11,對(duì)待處理數(shù)據(jù)按照預(yù)算的打散算法進(jìn)行打散分片,獲取到分片節(jié)點(diǎn),其實(shí)分片節(jié)點(diǎn)就是一個(gè)打散后的分片數(shù)據(jù)。具體地,首先打散模塊11,按照待處理數(shù)據(jù)的數(shù)據(jù)量大小設(shè)定打散的片數(shù),設(shè)定完片數(shù)后,基于打散算法將待處理數(shù)據(jù)進(jìn)行打散分片。
分配模塊12,用于依據(jù)分片節(jié)點(diǎn)的數(shù)據(jù)量為分片節(jié)點(diǎn)分配目標(biāo)虛擬機(jī)。
獲取到各分片節(jié)點(diǎn)的數(shù)據(jù)量是不同的,在獲取到分片節(jié)點(diǎn)后,計(jì)算每個(gè)分片節(jié)點(diǎn)的數(shù)據(jù)量。在獲取到分片節(jié)點(diǎn)的數(shù)據(jù)量之后,分配模塊12為分片節(jié)點(diǎn)分配目標(biāo)虛擬機(jī),本實(shí)施中,該目標(biāo)虛擬機(jī)需要具備處理分片節(jié)點(diǎn)所包含的數(shù)據(jù)量得處理能力,其中,處理能力可以用cpu、內(nèi)存和磁盤等性能參數(shù)進(jìn)行表征。
部署模塊13,用于將分片節(jié)點(diǎn)部署到目標(biāo)虛擬機(jī)上。
本實(shí)施例提供的虛擬機(jī)部署裝置,通過對(duì)待處理數(shù)據(jù)進(jìn)行打散分片獲取分片節(jié)點(diǎn),依據(jù)分片節(jié)點(diǎn)的數(shù)據(jù)量為分片節(jié)點(diǎn)分配目標(biāo)虛擬機(jī),將分片節(jié)點(diǎn)部署到目標(biāo)虛擬機(jī)上。本實(shí)施例中分片節(jié)點(diǎn)分配虛擬機(jī)時(shí)先通過數(shù)據(jù)打散的方式來控制分片節(jié)點(diǎn)的數(shù)據(jù)量,再分配與該數(shù)據(jù)量相匹配的虛擬機(jī),從而可以避免虛擬機(jī)出現(xiàn)過載的現(xiàn)象,更好地實(shí)現(xiàn)了負(fù)載均衡。
實(shí)施例四
如圖8所示,其為本發(fā)明實(shí)施例四的虛擬機(jī)部署裝置的結(jié)構(gòu)示意圖,該虛擬機(jī)部署裝置包括:輸入模塊20、打散模塊21、計(jì)算模塊22、分配模塊23、部署模塊24、備份模塊25和判斷模塊26。
其中,輸入模塊20,用于在打散模塊對(duì)待處理數(shù)據(jù)進(jìn)行打散分片獲取分片節(jié)點(diǎn)之前,將所有虛擬機(jī)的性能參數(shù)輸入到機(jī)器池中。
進(jìn)一步地,打散模塊21,用于對(duì)待處理數(shù)據(jù)進(jìn)行打散分片獲取分片節(jié)點(diǎn)。
進(jìn)一步地,計(jì)算模塊22,用于計(jì)算分片節(jié)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)量。
其中,計(jì)算模塊22,具體用于獲取分片節(jié)點(diǎn)所包含的詞條數(shù),以及獲取分片節(jié)點(diǎn)中一條數(shù)據(jù)所占用的比特?cái)?shù),根據(jù)詞條數(shù)和一條數(shù)據(jù)所占用的比特?cái)?shù)計(jì)算得到數(shù)據(jù)量。
進(jìn)一步地,分配模塊23,用于依據(jù)分片節(jié)點(diǎn)的數(shù)據(jù)量為分片節(jié)點(diǎn)分配目標(biāo)虛擬機(jī)。
本實(shí)施例中提供了一種分配模塊23可選的結(jié)構(gòu)方式,包括:獲取單元231和選取單元232。
獲取單元231,用于根據(jù)數(shù)據(jù)量獲取處理分片節(jié)點(diǎn)所需的處理能力;其中,處理能力用cpu、內(nèi)存和磁盤性能參數(shù)進(jìn)行表征。
其中,獲取單元231,具體用于根據(jù)預(yù)設(shè)的搜索特性膨脹系數(shù)、合并搜索系數(shù)以及所述數(shù)據(jù)量計(jì)算獲取處分片節(jié)點(diǎn)所需的處理能力。將搜索特性膨脹系數(shù)與合并搜索系數(shù)以及數(shù)據(jù)量相乘,得到處理該分片節(jié)點(diǎn)所需的磁盤的大小,根據(jù)磁盤的大小選取相應(yīng)的內(nèi)存和cpu。
選取單元232,用于從機(jī)器池中為分片節(jié)點(diǎn)選取性能與處理能力匹配的目標(biāo)虛擬機(jī)。
進(jìn)一步地,選取單元232具體用于優(yōu)先從低配機(jī)器池逐步往高配機(jī)器池中選取所述目標(biāo)虛擬機(jī),以達(dá)到使用最優(yōu)配置。
進(jìn)一步地,部署模塊24,用于將分片節(jié)點(diǎn)部署到目標(biāo)虛擬機(jī)上。
進(jìn)一步地,備份模塊25,用于在計(jì)算模塊22計(jì)算分片節(jié)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)量之前,對(duì)分片節(jié)點(diǎn)進(jìn)行備份,獲取分片節(jié)點(diǎn)的備份數(shù)據(jù)。
進(jìn)一步地,分配模塊23,還用于在部署模塊24將分片節(jié)點(diǎn)部署到目 標(biāo)虛擬機(jī)上之前,從機(jī)器池中為備份數(shù)據(jù)選取性能與處理能力匹配的第一虛擬機(jī)。
進(jìn)一步地,判斷模塊26,用于判斷目標(biāo)虛擬機(jī)與第一虛擬機(jī)是否屬于同一物理機(jī)。
進(jìn)一步地,分配模塊23,還用于在判斷模塊26判斷出目標(biāo)虛擬機(jī)與第一虛擬機(jī)屬于同一物理機(jī)時(shí),重新為備份數(shù)據(jù)從機(jī)器池中選取與所述處理能力匹配的第一虛擬機(jī)直到目標(biāo)虛擬機(jī)與第一虛擬機(jī)不屬于同一物理機(jī)為止。
進(jìn)一步地,部署模塊24,還用于在判斷模塊判斷出目標(biāo)虛擬機(jī)與第一虛擬機(jī)不屬于同一物理機(jī)時(shí),將備份數(shù)據(jù)部署到第一虛擬機(jī)上。
本實(shí)施例提供的虛擬機(jī)部署裝置,通過對(duì)待處理數(shù)據(jù)進(jìn)行打散分片獲取分片節(jié)點(diǎn),計(jì)算分片節(jié)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)量,依據(jù)分片節(jié)點(diǎn)的數(shù)據(jù)量為分片節(jié)點(diǎn)分配目標(biāo)虛擬機(jī),并且為分片節(jié)點(diǎn)進(jìn)行備份,并為備份數(shù)據(jù)分配第一虛擬機(jī),當(dāng)目標(biāo)虛擬機(jī)與第一虛擬機(jī)不屬于同一物理機(jī)時(shí),將分片節(jié)點(diǎn)和備份數(shù)據(jù)分別部署到目標(biāo)虛擬機(jī)和第一虛擬機(jī)上。本實(shí)施例中分片節(jié)點(diǎn)分配虛擬機(jī)時(shí)先通過數(shù)據(jù)打散的方式來控制分片節(jié)點(diǎn)的數(shù)據(jù)量,再分配與該數(shù)據(jù)量相匹配的虛擬機(jī),從而可以避免虛擬機(jī)出現(xiàn)過載的現(xiàn)象,更好地實(shí)現(xiàn)了負(fù)載均衡。
本領(lǐng)域普通技術(shù)人員可以理解:實(shí)現(xiàn)上述各方法實(shí)施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成。前述的程序可以存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中。該程序在執(zhí)行時(shí),執(zhí)行包括上述各方法實(shí)施例的步驟;而前述的存儲(chǔ)介質(zhì)包括:rom、ram、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
最后應(yīng)說明的是:以上各實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述各實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分或者全部技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的范圍。