本發(fā)明涉及云計算領域,具體來說,涉及一種虛擬機啟動的方法及系統(tǒng)。
背景技術:
隨著企業(yè)硬件成本的持續(xù)增長,虛擬化技術由于其降成本和安全性等特點得到了長足發(fā)展,但嵌入式虛擬化技術目前還處于初始階段。傳統(tǒng)嵌入式虛擬化主要用在系統(tǒng)仿真方面,啟動完全模擬真機,啟動時間長。
如果將嵌入式虛擬化拓展到應用服務上,用戶更多地關心應用,而不關心啟動過程是否與真機完全一致,用戶需要快速響應及無縫使用(即用戶重新上線后,應用能恢復到上次使用結束時狀態(tài))。為了實現(xiàn)該功能,可采用嵌入式虛擬機一直在線,當用戶下線后,虛擬機繼續(xù)運行。這種處理方式雖然能滿足用戶需求,但是由于虛擬機一直運行,會造成資源的浪費。
技術實現(xiàn)要素:
技術問題:本發(fā)明所要解決的技術問題在于:提供一種虛擬機啟動的方法及系統(tǒng),能夠快速響應用戶需求,實現(xiàn)用戶虛擬機的秒級部署,且節(jié)省資源。
技術方案:為解決上述技術問題,本發(fā)明實施例采用如下方案:
第一方面,本實施例提供一種虛擬機啟動的方法,該方法包括:
S10建立虛擬機資源池,并在虛擬機資源池中創(chuàng)建虛擬機;
S20判斷用戶待建虛擬機配置是否與虛擬機資源池中的虛擬機配置相同,如果是,則進入步驟S30,如果否,則按照待建虛擬機的配置條件創(chuàng)建虛擬機;
S30從虛擬機資源池中調用與待建虛擬機配置相同的虛擬機,并啟動虛擬機,對用戶界面同步更新。
結合第一方面,作為第一種可能實現(xiàn)方式,所述的S10進一步包括:
S101根據(jù)用戶申請?zhí)摂M機的歷史信息,測算虛擬機各種操作系統(tǒng)配置的比重;
S102在資源池中劃分出部分資源,形成一個虛擬機資源池;
S103在虛擬機資源池中,按照各種虛擬機操作系統(tǒng)配置的比重,創(chuàng)建虛擬機,且配置完成后,虛擬機進入關機狀態(tài)。
結合第一方面的第一種可能實現(xiàn)方式,作為第二種可能實現(xiàn)方式,所述的S101中,依據(jù)式(1)測算各種操作系統(tǒng)類型虛擬機的比重T:
T={S(i)/Y*100%}*{P(Ci,Mi)/S(i)*100%} 式(1)
式中,S(i)表示第i種操作系統(tǒng)類型的虛擬機總數(shù),Y表示虛擬機的總數(shù),P(Ci,Mi)表示第i種操作系統(tǒng)類型的虛擬機中,具有相同cpu和相同內存的虛擬機數(shù)量。
結合第一方面的第一種可能實現(xiàn)方式,作為第三種可能實現(xiàn)方式,所述的S103中,依據(jù)式(2)確定虛擬機資源池中創(chuàng)建的虛擬機數(shù)量N:
N=min{(C*T*D/Cm),(M*T*D/Mm)} 式(2)
式中,C表示資源池中未分配的物理cpu核數(shù),Cm表示虛擬機cpu的最大核數(shù),M表示資源池中未分配的內存容量,T表示虛擬機的比重,Mm表示虛擬機的最大內存容量,D表示分配給虛擬機資源池的資源占資源池資源的比重。
結合第一方面,作為第四種可能實現(xiàn)方式,所述的方法還包括步驟S40:在虛擬機資源池中重新配置虛擬機,該虛擬機與S30中被調用虛擬機具有相同配置。
第二方面,本實施例提供一種虛擬機啟動的系統(tǒng),該系統(tǒng)包括:
建立模塊:用于建立虛擬機資源池,并在虛擬機資源池中創(chuàng)建虛擬機;
判斷模塊:用于判斷用戶待建虛擬機配置是否與虛擬機資源池中的虛擬機配置相同;如果是,則進入步驟S30,如果否,則按照待建虛擬機的配置條件創(chuàng)建虛擬機;
調用模塊:用于從虛擬機資源池中調用與待建虛擬機配置相同的虛擬機,并啟動虛擬機,對用戶界面同步更新。
結合第二方面,作為第一種可能實現(xiàn)方式,所述的建立模塊進一步包括:
測算子模塊:用于根據(jù)用戶申請?zhí)摂M機的歷史信息,測算虛擬機各種操作系統(tǒng)配置的比重;
劃分子模塊:用于在資源池中劃分出部分資源,形成一個虛擬機資源池;
創(chuàng)建子模塊:用于在虛擬機資源池中,按照各種虛擬機操作系統(tǒng)配置的比重,創(chuàng)建虛擬機,且配置完成后,虛擬機進入關機狀態(tài)。
結合第二方面的第一種可能實現(xiàn)方式,作為第二種可能實現(xiàn)方式,所述的測算子模塊依據(jù)式(1)測算虛擬機各種操作系統(tǒng)類型的比重T:
T={S(i)/Y*100%}*{P(Ci,Mi)/S(i)*100%}
式中,S(i)表示第i種操作系統(tǒng)類型的虛擬機總數(shù),Y表示虛擬機的總數(shù),P(Ci,Mi)表示第i種操作系統(tǒng)類型的虛擬機中,具有相同cpu和相同內存的虛擬機數(shù)量。
結合第二方面的第一種可能實現(xiàn)方式,作為第三種可能實現(xiàn)方式,所述的創(chuàng)建子模塊依據(jù)式(2)確定虛擬機資源池中創(chuàng)建的虛擬機數(shù)量N:
N=min{(C*T*D/Cm),(M*T*D/Mm)} 式(2)
式中,C表示資源池中未分配的物理cpu核數(shù),Cm表示虛擬機cpu的最大核數(shù),M表示資源池中未分配的內存容量,T表示虛擬機的比重,Mm表示虛擬機的最大內存容量,D表示分配給虛擬機資源池的資源占資源池資源的比重。
結合第二方面,作為第四種可能實現(xiàn)方式,所述的虛擬機啟動的系統(tǒng),還包括重置模塊:用于在虛擬機資源池中重新配置虛擬機,該虛擬機與調用模塊中被調用虛擬機具有相同配置。
有益效果:現(xiàn)有技術中,為了實現(xiàn)快速響應及無縫使用,采用嵌入式虛擬機一直在線,當用戶下線后,虛擬機繼續(xù)運行的方式。這種方式非常浪費資源。與現(xiàn)有技術相比,本發(fā)明實施例的虛擬機啟動的方法及系統(tǒng),通過在虛擬機資源池中創(chuàng)建虛擬機,當用戶需要創(chuàng)建虛擬機時,通過調用虛擬機資源池中與待建虛擬機配置相同的虛擬機即可。這種方法能夠快速響應用戶需求,實現(xiàn)用戶虛擬機的秒級部署,且節(jié)省資源。
附圖說明
圖1是本發(fā)明實施例方法的流程框圖;
圖2是本發(fā)明實施例方法中步驟S10的流程框圖;
圖3是本發(fā)明實施例系統(tǒng)的一種結構框圖;
圖4是本發(fā)明實施例系統(tǒng)的另一種結構框圖;
圖5是本發(fā)明實施例系統(tǒng)的架構圖。
具體實施方式
下面結合附圖與實施例,對本發(fā)明的技術方案作進一步詳細描述。
如圖1所示,本發(fā)明實施例提供的一種虛擬機啟動的方法,該方法包括:
S10建立虛擬機資源池,并在虛擬機資源池中創(chuàng)建虛擬機;
S20判斷用戶待建虛擬機配置是否與虛擬機資源池中的虛擬機配置相同,如果是,則進入步驟S30,如果否,則按照待建虛擬機的配置條件創(chuàng)建虛擬機;
S30從虛擬機資源池中調用與待建虛擬機配置相同的虛擬機,并啟動虛擬機,對用戶界面同步更新。
本實施例的虛擬機啟動的方法,通過預先創(chuàng)建虛擬機資源池,并在虛擬機資源池中創(chuàng)建虛擬機,使得用戶在創(chuàng)建虛擬機時,可以直接從虛擬機資源池中調用。這樣就不需要用戶按照傳統(tǒng)方式創(chuàng)建虛擬機。本實施例的虛擬機啟動的方法能夠快速響應用戶需求,實現(xiàn)用戶虛擬機的秒級部署,且節(jié)省資源。
作為優(yōu)選方案,如圖2所示,S10進一步包括:
S101根據(jù)用戶申請?zhí)摂M機的歷史信息,測算虛擬機各種操作系統(tǒng)配置的比重。例如,可以依據(jù)式(1)測算虛擬機各種操作系統(tǒng)配置的比重T:
T={S(i)/Y*100%}*{P(Ci,Mi)/S(i)*100%} 式(1)
式中,S(i)表示第i種鏡像類型的虛擬機總數(shù),Y表示虛擬機的總數(shù),P(Ci,Mi)表示第i種鏡像類型的虛擬機中,具有相同cpu和相同內存的虛擬機數(shù)量。
以CentOS操作系統(tǒng)為例:虛擬機總數(shù)為200臺,CentOS操作系統(tǒng)的虛擬機有100臺。CentOS操作系統(tǒng)的虛擬機中,cpu為雙核、內存為4G的虛擬機有50臺,其它配置有50臺。依據(jù)式(1),cpu為雙核、內存為4G的CentOS系統(tǒng)虛擬機的比重T={100/200}*{50/100}=25%。
用戶申請?zhí)摂M機的歷史信息包括每臺虛擬機的cpu核數(shù)、內存大小和操作系統(tǒng)類型。由于各用戶的需求不同,申請創(chuàng)建的虛擬機的歷史信息也不同。根據(jù)用戶申請?zhí)摂M機的歷史信息,來測算虛擬機各種操作系統(tǒng)配置的比重,使得測算的比重因用戶不同而不同。這樣,測算的比重具有個性化,針對不同的用戶有不同的比重。
S102在資源池中劃分出部分資源,形成一個虛擬機資源池。在云平臺后端資源中劃分出部分資源,形成一個虛擬機資源池。根據(jù)云平臺后端物理服務器的使用情況,可以將未使用的資源的10%分配給虛擬機資源池。
S103在虛擬機資源池中,按照各種虛擬機操作系統(tǒng)配置的比重,創(chuàng)建虛擬機,配置完成后,虛擬機進入關機狀態(tài)。
在S103中,依據(jù)式(2)確定虛擬機資源池中創(chuàng)建的虛擬機數(shù)量N:
N=min{(C*T*D/Cm),(M*T*D/Mm)} 式(2)
式中,C表示資源池中未使用的物理cpu核數(shù),Cm表示虛擬機cpu的最大核數(shù),M表示資源池中未分配的內存容量,T表示虛擬機操作類型的比重,Mm表示虛擬機的最大內存。C為可以提供給待創(chuàng)建的虛擬機資源池的物理cpu核數(shù)。D表示分配給虛擬機資源池的資源占資源池資源的比重。作為優(yōu)選,D為10%——20%。
以CentOS操作系統(tǒng)類型為例:資源池中有10000C可分配的CPU核數(shù)、20000G的可分配內存。設定虛擬機CentOS操作類型的比重T為25%,分配給虛擬機資源池的資源占資源池資源的比重D為10%。CentOS操作系統(tǒng)的虛擬機的CPU最大為8C、內存最大為32G。依據(jù)式(2)有:C*T*D/Cm=1000*25%*10%/8=3;M*T*D/Mm=20000*25%*10%/32=16??蓜?chuàng)建CentOS操作系統(tǒng)的虛擬機數(shù)量N為3臺。
上述實施例中,根據(jù)根據(jù)用戶申請?zhí)摂M機的歷史信息,在虛擬機資源池中配置虛擬機。這樣,各用戶創(chuàng)建的虛擬機操作類型的比重T不同,使得各用戶在資源池中創(chuàng)建的虛擬機數(shù)量不同。用戶使用頻率較高的虛擬機將較多的配置在虛擬機資源池中,而使用頻率較低的虛擬機將較少的配置在虛擬機資源池中。這避免了將不經常配置的虛擬機較多的設置在虛擬機資源池中,浪費資源;同時也避免了將各種操作系統(tǒng)類型的虛擬機以相同數(shù)量設置在虛擬機資源池中,浪費資源。
由于各用戶申請?zhí)摂M機的歷史信息不同,因此,在虛擬機資源池中配置的虛擬機也不同。在虛擬機資源池中創(chuàng)建虛擬機具有個性化,根據(jù)用戶不同而配置了不同的虛擬機。
為使得虛擬機資源池中的虛擬機可以長期有效的被調用,所述的虛擬機啟動的方法,還包括步驟S40:在虛擬機資源池中重新配置一虛擬機,該虛擬機與S30 中被調用虛擬機具有相同配置。這樣,無論S30調用了多少臺虛擬機,虛擬機資源池中始終有相同配置的虛擬機等待被調用。
上述實施例,能夠快速響應用戶需求,實現(xiàn)用戶虛擬機的秒級部署,所有用戶歷史申請過的各操作系統(tǒng)類型的虛擬機都會被創(chuàng)建,不會影響用戶使用。對于低比重的操作系統(tǒng)虛擬機也會創(chuàng)建。傳統(tǒng)方式創(chuàng)建啟動一臺虛擬機,需要兩分鐘左右的時間。而本實施例的啟動方法,啟動虛擬機需要5s。另外,虛擬機在物理機中存放,最大化使用物理機,提高物理機的使用效率。
如圖3所示,本實施例的一種虛擬機啟動的系統(tǒng),該系統(tǒng)包括:
建立模塊:用于建立虛擬機資源池,并在虛擬機資源池中創(chuàng)建虛擬機;
判斷模塊:用于判斷用戶待建虛擬機配置是否與虛擬機資源池中的虛擬機配置相同;如果是,則進入步驟S30,如果否,則按照待建虛擬機的配置條件創(chuàng)建虛擬機;
調用模塊:用于從虛擬機資源池中調用與待建虛擬機配置相同的虛擬機,并啟動虛擬機,對用戶界面同步更新。
本實施例的虛擬機啟動的系統(tǒng),通過建立模塊預先創(chuàng)建虛擬機資源池,并在虛擬機資源池中創(chuàng)建虛擬機,使得用戶在創(chuàng)建虛擬機時,通過判斷模塊判斷用戶待建虛擬機配置是否與虛擬機資源池中的虛擬機配置相同。如果有,則通過調用模塊從虛擬機資源池中調用與待建虛擬機配置相同的虛擬機,并啟動虛擬機;如果沒有,則按照待建虛擬機的配置條件創(chuàng)建虛擬機。如果虛擬機資源池中有與待建虛擬機配置相同的虛擬機,則通過調用模塊直接調用,而不需要用戶按照傳統(tǒng)方式創(chuàng)建虛擬機。本實施例的虛擬機啟動系統(tǒng)能夠快速響應用戶需求,實現(xiàn)用戶虛擬機的秒級部署,且節(jié)省資源。
作為優(yōu)選方案,如圖3所示,所述的建立模塊進一步包括:
測算子模塊:用于根據(jù)用戶申請?zhí)摂M機的歷史信息,測算虛擬機各種操作系統(tǒng)配置的比重。
劃分子模塊:用于在資源池中劃分出部分資源,形成一個虛擬機資源池。在云平臺后端資源中劃分出部分資源,形成一個虛擬機資源池。根據(jù)云平臺后端物理服務器的使用情況,可以將未使用的資源的10%分配給虛擬機資源池。
創(chuàng)建子模塊:用于在虛擬機資源池中,按照各種虛擬機操作系統(tǒng)配置的比重,創(chuàng)建虛擬機,且配置完成后,虛擬機進入關機狀態(tài)。
作為優(yōu)選方案,測算子模塊可以依據(jù)式(1)測算虛擬機各種操作系統(tǒng)類型的比重T:
T={S(i)/Y*100%}*{P(Ci,Mi)/S(i)*100%} 式(1)
式中,S(i)表示第i種操作系統(tǒng)類型的虛擬機總數(shù),Y表示虛擬機的總數(shù),P(Ci,Mi)表示第i種操作系統(tǒng)類型的虛擬機中,具有相同cpu和相同內存的虛擬機數(shù)量。
用戶申請?zhí)摂M機的歷史信息包括每臺虛擬機的cpu核數(shù)、內存大小和操作系統(tǒng)類型。由于各用戶的需求不同,申請創(chuàng)建的虛擬機的歷史信息也不同。根據(jù)用戶申請?zhí)摂M機的歷史信息,來測算虛擬機各種操作系統(tǒng)配置的比重,使得測算的比重因用戶不同而不同。這樣,測算的比重具有個性化,針對不同的用戶有不同的比重。
作為優(yōu)選方案,創(chuàng)建子模塊依據(jù)式(2)確定虛擬機資源池中創(chuàng)建的虛擬機數(shù)量N:
N=min{(C*T*D/Cm),(M*T*D/Mm)} 式(2)
式中,C表示資源池中未分配的物理cpu核數(shù),Cm表示虛擬機cpu的最大核數(shù),M表示資源池中未分配的內存容量,T表示虛擬機操作類型的比重,Mm表示虛擬機的最大內存容量。C為可以提供給待創(chuàng)建的虛擬機資源池的物理cpu核數(shù)。D表示分配給虛擬機資源池的資源占資源池資源的比重。作為優(yōu)選,D為10%——20%,例如10%、13%、17%、20%。當然D的取值可以超過20%,也可以小于10%。
上述實施例中,根據(jù)根據(jù)用戶申請?zhí)摂M機的歷史信息,在虛擬機資源池中配置虛擬機。這樣,各用戶創(chuàng)建的虛擬機操作類型的比重T不同,使得各用戶在資源池中創(chuàng)建的虛擬機數(shù)量不同。用戶使用頻率較高的虛擬機將較多的配置在虛擬機資源池中,而使用頻率較低的虛擬機將較少的配置在虛擬機資源池中。這避免了將不經常配置的虛擬機較多的設置在虛擬機資源池中,浪費資源;同時也避免了將各種操作系統(tǒng)類型的虛擬機以相同數(shù)量設置在虛擬機資源池中,浪費資源。
由于各用戶申請?zhí)摂M機的歷史信息不同,因此,在虛擬機資源池中配置的虛擬機也不同。在虛擬機資源池中創(chuàng)建虛擬機具有個性化,根據(jù)用戶不同而配置了不同數(shù)量的各操作系統(tǒng)的虛擬機。
如圖4所示,所述的虛擬機啟動的系統(tǒng),還包括重置模塊:用于在虛擬機資源池中重新配置虛擬機,該虛擬機與調用模塊中被調用虛擬機具有相同配置。這樣,無論調用米快調用了多少臺虛擬機,虛擬機資源池中始終有相同配置的虛擬機等待被調用。
上述實施例,能夠快速響應用戶需求,實現(xiàn)用戶虛擬機的秒級部署。傳統(tǒng)方式創(chuàng)建啟動一臺虛擬機,需要兩分鐘左右的時間。而本實施例的啟動方法,啟動虛擬機需要5s。本實施例中,所有用戶歷史申請過的各操作系統(tǒng)類型的虛擬機都會被創(chuàng)建,不會影響用戶使用。對于低比重的操作系統(tǒng)虛擬機也會創(chuàng)建。如果用戶待創(chuàng)建的虛擬機數(shù)量大于資源池中具有相同配置的虛擬機數(shù)量時,則調用模塊先調用虛擬機資源池中已有的相同配置的虛擬機供用戶使用。缺少的相同配置的虛擬機由重置模塊在虛擬機資源池中重新配置相同配置的虛擬機,再由調用模塊調用該虛擬機給用戶,直至滿足用戶需要的數(shù)量。
如圖5所示,為本實施例的系統(tǒng)架構圖。系統(tǒng)包括前臺、中臺和后臺。前臺通過界面展示給用戶。界面中有資源創(chuàng)建模塊、用戶管理模塊、消費充值模塊以及其他功能模塊。用戶通過資源創(chuàng)建模塊輸入待創(chuàng)建的虛擬機的配置情況,例如內存大小、cpu大小和操作系統(tǒng)類型。中臺包括中間調用層。中間調用層包括預資源池管理模塊、正常資源調用模塊和數(shù)據(jù)庫。預資源池管理模塊根據(jù)對用戶申請?zhí)摂M機歷史信息的分析結果以及資源池資源,創(chuàng)建虛擬機資源池,并根據(jù)虛擬機各種操作系統(tǒng)配置的比重,在虛擬機資源池中創(chuàng)建虛擬機。如果用戶待創(chuàng)建的虛擬機與虛擬機資源池中已有的虛擬機配置相同,則通過調用模塊,從虛擬機資源池中調用該虛擬機;如果用戶待創(chuàng)建的虛擬機與虛擬機資源池中虛擬機配置都不相同,則通過正常資源調用模塊創(chuàng)建虛擬機。在用戶通過調用模塊或者正常資源調用模塊配置虛擬機后,中間調用層中的數(shù)據(jù)庫都進行同步更新。中間調用層與后臺IAAS層的API接口連接。后臺包括調度管理模塊以及計算、存儲和網絡配置等功能模塊。對用戶申請?zhí)摂M機歷史信息的分析過程是在后臺的計算模塊中完成的。計算模塊的計算結果會保存在存儲模塊中,供中間調用層調用。網絡模 塊起到網絡配置和用戶賬戶信息的設置作用。網絡模塊配置的信息保存在中間調用層的數(shù)據(jù)庫中。
在虛擬機資源池中創(chuàng)建虛擬機之前,預先通過后臺的網絡模塊配置建立網絡和用戶賬戶,虛擬機資源池中的虛擬機都在此賬戶和網絡下。當用戶在界面點擊創(chuàng)建虛擬機時,根據(jù)用戶選擇的虛擬機cpu核數(shù),內存大小及操作系統(tǒng)類型,判斷虛擬機資源池中是否有相同配置的虛擬機。如果有,則隨機調取虛擬機資源池中的一個相同配置的虛擬機,修改網卡及賬戶信息后啟動虛擬機。在啟動虛擬機同時,用戶界面進行數(shù)據(jù)同步。前臺會讀取位于中間調用層的數(shù)據(jù)庫中虛擬機的網絡信息及定義的虛機名稱和密碼等信息,將這些定義的信息同步給正在啟動的虛擬機。
本領域技術人員應該知曉,實現(xiàn)上述實施例的方法或者系統(tǒng),可以通過計算機程序指令來實現(xiàn)。該計算機程序指令裝載到可編程數(shù)據(jù)處理設備上,例如計算機,從而在可編程數(shù)據(jù)處理設備上執(zhí)行相應的指令,用于實現(xiàn)上述實施例的方法或者系統(tǒng)實現(xiàn)的功能。
本領域技術人員依據(jù)上述實施例,可以對本申請進行非創(chuàng)造性的技術改進,而不脫離本發(fā)明的精神實質。這些改進仍應視為在本申請權利要求的保護范圍之內。