用率為資源分配的指標,使物理機具有更高的資源利用率。
【附圖說明】
[0034]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
[0035]圖1為本發(fā)明實施例提供的基于OpenStack的虛擬機迀移方法的流程圖;
[0036]圖2為本發(fā)明實施例提供的基于OpenStack的虛擬機迀移方法中建立虛擬機的方法流程圖;
[0037]圖3為本發(fā)明實施例提供的基于OpenStack的虛擬機迀移方法中返回建立錯誤信息的方法流程圖;
[0038]圖4為本發(fā)明實施例提供的基于OpenStack的虛擬機迀移方法中計算得到各虛擬機的第一綜合利用率的方法流程圖;
[0039]圖5為本發(fā)明實施例提供的基于OpenStack的虛擬機迀移方法中計算得到各虛擬機的第一綜合利用率的另一方法流程圖;
[0040]圖6為本發(fā)明實施例提供的基于OpenStack的虛擬機迀移方法中返回迀移錯誤信息的方法流程圖;
[0041]圖7為本發(fā)明實施例提供的基于OpenStack的虛擬機迀移裝置的系統(tǒng)框圖;
[0042]圖8為本發(fā)明實施例提供的基于OpenStack的虛擬機迀移裝置的另一系統(tǒng)框圖;
[0043]圖9為本發(fā)明實施例提供的基于OpenStack的虛擬機迀移裝置中建立模塊的結(jié)構(gòu)框圖;
[0044]圖10為本發(fā)明實施例提供的基于OpenStack的虛擬機迀移裝置中第二計算模塊的結(jié)構(gòu)框圖。
【具體實施方式】
[0045]下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0046]圖1為本發(fā)明實施例提供的基于OpenStack的虛擬機迀移方法的流程圖,以同時考慮了 CPU利用率、內(nèi)存利用率和磁盤利用率的綜合利用率為資源分配的指標,使物理機具有更高的資源利用率;參照圖1,該基于OpenStack的虛擬機迀移方法可以包括:
[0047]步驟SlOO:根據(jù)所有虛擬機的CPU利用率、內(nèi)存利用率和磁盤利用率依據(jù)預設(shè)虛擬機調(diào)度策略計算得到各虛擬機的第一綜合利用率,并將所有所述第一綜合利用率大于預設(shè)第一閾值的第一虛擬機加入迀移隊列;
[0048]可選的,可以是每隔預設(shè)時間間隔對虛擬機進行一次迀移,也可以是在接收虛擬機迀移請求后對虛擬機進行迀移。
[0049]當每隔預設(shè)時間間隔對虛擬機進行一次迀移時,每隔預設(shè)時間間隔獲取所有虛擬機的CPU利用率、內(nèi)存利用率和磁盤利用率,然后根據(jù)所有所述虛擬機的CPU利用率、內(nèi)存利用率和磁盤利用率依據(jù)預設(shè)虛擬機調(diào)度策略計算得到各虛擬機的第一綜合利用率。
[0050]當在接收虛擬機迀移請求后對虛擬機進行迀移時,則在接收到虛擬機迀移請求后,獲取所有虛擬機的CPU利用率、內(nèi)存利用率和磁盤利用率,根據(jù)所有所述虛擬機的CPU利用率、內(nèi)存利用率和磁盤利用率依據(jù)預設(shè)虛擬機調(diào)度策略計算得到各虛擬機的第一綜合利用率。
[0051]可選的,接收的虛擬機迀移請求可以為動態(tài)迀移請求,當接收的虛擬機迀移請求可以為動態(tài)迀移請求時,對虛擬機進行熱迀移。
[0052]步驟SllO:當檢測到所述迀移隊列不為空時,確定所有未加入所述迀移隊列的第二虛擬機相對應的第一物理機,根據(jù)所述第二虛擬機的CPU利用率、內(nèi)存利用率和磁盤利用率依據(jù)預設(shè)物理機調(diào)度策略計算得到各所述第一物理機的第二綜合利用率,確定所述第一物理機中所有所述第二綜合利用率不大于預設(shè)第二閾值的第二物理機;
[0053]若檢測到所述迀移隊列不為空,則說明存在第一綜合利用率大于預設(shè)第一閾值的虛擬機,即存在需要進行迀移的虛擬機,因此,當檢測到所述迀移隊列不為空時,需要確定可以進行迀移的物理機,將該需要進行迀移的虛擬機迀移至該可以進行迀移的物理機中。
[0054]相反的,若檢測到所述迀移隊列為空,則說明不存在第一綜合利用率大于預設(shè)第一閾值的虛擬機,即不存在需要進行迀移的虛擬機,無需對虛擬機進行迀移操作。
[0055]可選的,可以在當檢測到所述迀移隊列為空時,進行虛擬機的建立操作,判斷是否接收到虛擬機建立請求,若接收到,則根據(jù)所有所述虛擬機的CPU利用率、內(nèi)存利用率和磁盤利用率依據(jù)預設(shè)物理機調(diào)度策略計算得到各所述物理機的第二綜合利用率,確定所有所述第二綜合利用率不大于預設(shè)第二閾值的第三物理機,在任一所述第三物理機中建立虛擬機。
[0056]可選的,在建立虛擬機的過程中,在確定所有第二綜合利用率不大于預設(shè)第二閾值的第三物理機后,可以判斷是否存在第二綜合利用率不大于預設(shè)第二閾值的第三物理機,若存在,則在任一所述第三物理機中建立虛擬機,完成虛擬機建立操作,若不存在,則返回建立錯誤信息,操作結(jié)束。
[0057]可選的,可以在確定第一物理機中所有第二綜合利用率不大于預設(shè)第二閾值的第二物理機后,判斷是否存在第二綜合利用率不大于預設(shè)第二閾值的第二物理機,若存在,則進行步驟S120,若不存在,則返回迀移錯誤信息,操作結(jié)束。
[0058]步驟S120:根據(jù)預設(shè)代價函數(shù)計算各所述第二物理機中所有虛擬機的權(quán)值,將各所述第二物理機中所有虛擬機中權(quán)值最小的虛擬機作為目的虛擬機,將所述迀移隊列中位于隊頭的第一虛擬機迀移至所述目的虛擬機。
[0059]基于上述技術(shù)方案,本發(fā)明實施例提供的種基于OpenStack的虛擬機迀移方法,根據(jù)所有所述虛擬機的CPU利用率、內(nèi)存利用率和磁盤利用率依據(jù)預設(shè)虛擬機調(diào)度策略計算得到各虛擬機的第一綜合利用率,并將所有所述綜合利用率大于預設(shè)第一閾值的第一虛擬機加入迀移隊列;當檢測到所述迀移隊列不為空時,確定所有未加入隊列的第二虛擬機相對應的第一物理機,根據(jù)所述第二虛擬機的CPU利用率、內(nèi)存利用率和磁盤利用率依據(jù)預設(shè)物理機調(diào)度策略計算得到各所述第一物理機的第二綜合利用率,確定所述第一物理機中所有所述第二綜合利用率不大于預設(shè)第二閾值的第二物理機;根據(jù)預設(shè)代價函數(shù)計算各所述第二物理機中所有虛擬機的權(quán)值,將各所述第二物理機中所有虛擬機中權(quán)值最小的虛擬機作為目的虛擬機,將所述迀移隊列中位于隊頭的第一虛擬機迀移至所述目的虛擬機。根據(jù)虛擬機的CPU利用率、內(nèi)存利用率和磁盤利用率依據(jù)預設(shè)虛擬機調(diào)度策略計算得到各虛擬機的第一綜合利用率,以該第一綜合利用率為依據(jù),挑選出需要進行迀移的第一虛擬機,根據(jù)未加入隊列的第二虛擬機的CPU利用率、內(nèi)存利用率和磁盤利用率依據(jù)預設(shè)物理機調(diào)度策略計算得到各第一物理機的第二綜合利用率,以該第二綜合利用率為依據(jù),挑選出適合進行迀移的第二物理機,最后將選出的需要進行迀移的第一虛擬機迀移至選出的適合進行迀移的第二物理機中權(quán)值最小的虛擬機中,實現(xiàn)虛擬機迀移,資源的分配,以同時考慮了 CPU利用率、內(nèi)存利用率和磁盤利用率的綜合利用率為資源分配的指標,使物理機具有更高的資源利用率。
[0060]可選的,