本發明涉及云計算技術領域,并且更具體地涉及一種實現云數據中心負載均衡的方法和系統。
背景技術:
傳統的數據中心以物理設備為基本單位向用戶提供服務器租賃服務,云數據中心采用虛擬化技術搭建虛擬設備來取代傳統的物理設備以作為向外提供服務的數據中心的基本單位。虛擬技術可以在一臺物理設備上運行多臺虛擬設備,提高物理設備的資源利用率。
云計算環境下,由于用戶需求的多樣性、動態變化性強以及服務器資源異構性強、規模大等原因,容易導致數據中心內物理設備間出現負載不均衡的情況:一部分物理設備出現負載過重、效率降低,而另一部分設備處于空閑狀態,從而導致云資源的大量浪費。此外,由于資源分配不均,使得某些用戶的用戶體驗效果大打折扣,如圖1(a)所示。
虛擬設備遷移技術作為一種負載均衡技術,是在虛擬設備運行過程中,將整個虛擬設備的運行狀態完整、快速地從原所在的宿主物理設備遷移到新的物理設備上,使數據中心能夠快速地實現資源調度,從而提高了整個云數據中心的整體資源利用率,減少了資源的浪費。同時通過虛擬設備遷移技術將超負荷運行的物理設備上運行的虛擬設備遷移到合適的低負荷物理設備上,從而提高系統的運行效率。虛擬設備遷移調度示意圖如圖1(b)所示。
傳統的虛擬設備遷移算法大多采用節點中一種代表性的資源使用情況作為當前節點的負載度量,然而,物理設備包含多種數據資源,采用單一負載度量指標容易導致負載度量不準確;進一步,在大多數情況下,未考慮數據中心的負載最佳飽和度,對云數據中心的負載均衡調整后空閑的物理設備沒有進行處理;另外,由于用戶請求和服務器負載的動態變化引起的負載瞬時峰值,傳統的基于閾值的算法會導致虛擬機的不必要遷移,造成系統額外的開銷。
技術實現要素:
針對上述現有技術中存在的問題,本發明的目的在于提供一種云數據中心負載均衡的方法和系統,其可以解決傳統的虛擬設備遷移算法帶來的負載量化不足、負載瞬時峰值導致虛擬設備不必要的遷移的問題,同時,對調整后的物理設備負載情況進行評估,以更好地應對云數據中心負載的動態變化和虛擬設備分配問題。
根據本發明,提供一種云數據中心負載均衡的方法,該方法包括以下步驟:
步驟一:確定量化負載節點的度量指標;
步驟二:對物理設備和所述物理設備上的虛擬設備進行資源量化監控以確定所述物理設備的負載參數信息;
步驟三:將所述負載參數信息與最佳負載區間進行比較以確定負載均衡調整時機;
步驟四:根據所述負載參數信息確定所述物理設備的狀態;
步驟五:根據所述物理設備的所述狀態對所述虛擬設備進行負載均衡操作。
進一步地,所述負載均衡調整時機為:當所述負載參數信息超出所述最佳負載區間的上限值時,觸發所述負載均衡操作。
進一步地,當所述負載參數信息超出所述最佳負載區間的上限時,進一步包括以下步驟:將p個時間周期內的負載參數信息的平均值作為初值,采用一次指數平滑法預測n個負載值,如果至少m個所述負載值不處于所述最佳負載區間,則觸發負載均衡操作,其中n>3,m<n。
進一步地,進一步包括確定遷出虛擬設備的步驟:對于處于負載高狀態的物理設備,根據高負載類型,按照負載由高到低的順序對所述負載高狀態的物理設備中的虛擬設備進行遷出,直至所述負載高狀態的物理設備處于最佳負載狀態。
進一步地,進一步包括確定接收待遷入的虛擬設備的物理設備的步驟:對于處于負載低狀態的物理設備,根據低負載類型,按照負載由低到高的順序將所述待遷入的虛擬設備遷入至所述負載低狀態的物理設備。
進一步地,所述度量指標包含cpu、內存和/或網絡帶寬;和/或,所述負載參數信息包含cpu利用率、內存利用率和/或網絡帶寬利用率。
進一步地,在所述負載均衡操作之后,將系統負載飽和度與系統最佳負載飽和度進行比較來確定所述物理設備的負載分配情況。
進一步地,進一步包括以下步驟:
若所述系統負載飽和度位于所述系統最佳負載飽和度區間內,則無需進行任何操作;
若所述系統負載飽和度小于所述系統最佳負載飽和度的區間的下限值,則將負載最低的物理設備上的虛擬設備遷出,然后關閉所述負載最低的物理設備;
若所述系統負載飽和度大于所述系統最佳負載飽和度的區間的上限值,則需要向所述云數據中心申請新的物理設備。
本發明還提供一種實現云數據中心負載均衡的系統,所述系統包含資源監測模塊、物理機分類模塊、靜態調整模塊和動態調整模塊,所述資源監測模塊與所述物理機分類模塊通信地連接,所述物理機分類模塊與所述靜態調整模塊通信地連接,所述靜態調整模塊與所述動態調整模塊通信地連接,其中,
所述資源監測模塊包含數學建模模塊、數據采集模塊和負載計算模塊,所述數據采集模塊分別與所述數學建模模塊和所述負載計算模塊通信地連接;
所述靜態調整模塊包含第一源虛擬機選擇模塊、第一調整時機計算模塊、第一目標物理機選擇模塊,所述第一調整時機計算模塊分別與所述第一源虛擬機選擇模塊和所述第一目標物理機選擇模塊通信地連接;
所述動態調整模塊包含飽和度計算模塊、第二源虛擬機選擇模塊、第二調整時機計算模塊和第二目標物理機選擇模塊,所述第二調整時機計算模塊分別與所述飽和度計算模塊、所述第二源虛擬機選擇模塊和所述第二目標物理機選擇模塊通信地連接。
本發明還提供一種計算機可讀存儲介質,其上存儲有計算機程序(指令),用于實現云數據中心負載均衡,其特征在于,所述程序(指令)被處理器執行時實現上述云數據中心負載均衡的方法。
本發明的有益技術效果為:本發明通過在整個云數據中心中均衡負載,能夠均勻地分配云數據中心的資源,提高云數據中心的整體資源利用率、減少資源的浪費。同時,本發明通過考慮云數據中心的負載最佳飽和度,對云數據中心的負載均衡調整后空閑的物理設備進行處理,以避免不必要的遷移,減少云數據中心額外的開銷。
附圖說明
圖1(a)為虛擬設備遷移前的內存利用率的示意圖;
圖1(b)為根據本發明的一個實施例的虛擬設備遷移后的內存利用率的示意圖;
圖2為根據本發明的另一實施例的云數據中心負載均衡方法的流程圖;
圖3為根據本發明的另一實施例的云數據中心負載均衡系統的結構框圖。
具體實施方式
為了使本發明的目的、技術方案及優點更加清楚明白,下面結合附圖,對本發明進行進一步詳細說明。應當理解的是,此處所描述的具體實施例僅用以解釋本發明,并不用于限定本發明。
根據本發明,提供一種云數據中心負載均衡的方法,該方法包括以下步驟:
步驟一:確定量化負載節點的度量指標;
步驟二:對物理設備和物理設備上的虛擬設備進行資源量化監控以確定物理設備的負載參數信息;
步驟三:將負載參數信息與最佳負載區間進行比較以確定負載均衡調整時機;
步驟四:根據負載參數信息確定物理設備的狀態;
步驟五:根據物理設備的狀態對虛擬設備進行負載均衡操作。
進一步地,負載均衡調整時機為:當負載參數信息超出最佳負載區間的上限值時,觸發負載均衡操作。
進一步地,當負載參數信息超出最佳負載區間的上限時,進一步包括以下步驟:將p個時間周期內的負載參數信息的平均值作為初值,采用一次指數平滑法預測未來的n個負載值,如果至少m個負載值不處于最佳負載區間,則觸發負載均衡操作,其中n>3,m<n。
進一步地,進一步包括確定遷出虛擬設備的步驟:對于處于負載高狀態的物理設備,根據高負載類型,按照負載由高到低的順序對負載高狀態的物理設備中的虛擬設備進行遷出,直至負載高狀態的物理設備處于最佳負載狀態。
進一步地,進一步包括確定接收待遷入的虛擬設備的物理設備的步驟:對于處于負載低狀態的物理設備,根據低負載類型,按照負載由低到高的順序將待遷入的虛擬設備遷入至負載低狀態的物理設備。
進一步地,度量指標包含cpu、內存和/或網絡帶寬;和/或,負載參數信息包含cpu利用率、內存利用率和/或網絡帶寬利用率。
進一步地,在負載均衡操作之后,將系統負載飽和度與系統最佳負載飽和度進行比較來確定物理設備的負載分配情況。
進一步地,進一步包括以下步驟:
若系統負載飽和度位于系統最佳負載飽和度區間內,則無需進行任何操作;
若系統負載飽和度小于系統最佳負載飽和度的區間的下限值,則將負載最低的物理設備上的虛擬設備遷出,然后關閉負載最低的物理設備;
若系統負載飽和度大于系統最佳負載飽和度的區間的上限值,則需要向云數據中心申請新的物理設備。
具體來講,圖1(a)示出了虛擬設備遷移前云數據中心系統內存的利用率,物理設備1和物理設備2出現了負載過重、效率降低的情況,而物理設備3和物理設備4基本處于空閑狀態。圖1(b)示出了根據本發明闡述的負載均衡方法的虛擬設備遷移后的示意圖,從圖1(b)中可以看出,虛擬設備3(vm3)從物理設備1遷出并遷入物理設備3中,vm8從物理設備4遷出并遷入物理設備3中,由此,物理設備1、2、3的內存利用率大體相等,同時關閉物理設備4以節省云數據中心的系統資源,提高云數據中心整體的資源利用率,減少資源的浪費。
圖2示出了根據本發明的另一實施例的云數據中心負載均衡方法的流程圖。方法開始于框s201。在框s201,確定云數據中心所有物理設備的負載參數信息,例如cpu(中央處理單元)、內存和網絡帶寬的利用率,同時,采集虛擬設備的負載參數信息并計算每個物理設備上部署的虛擬設備的cpu、內存和網絡帶寬的總和(即云數據中心資源利用率),然后,方法前進到框s202。
在框s202,定義最佳負載區間(例如,[0.7,0.8]),將在框s201中計算的資源利用率與最佳負載區間進行比較以確定資源利用率是否超過最佳負載區間的上限值,如果資源利用率超過最佳負載區間的上限值,則方法前進到框s203并觸發負載均衡操作。如果資源利用率未超過最佳負載區間的上限值,則方法返回到框s201,繼續定期采集物理設備和物理設備上的虛擬設備的負載信息。其中,最佳負載區間是指物理機性能表現最好時,其資源利用率的區間,該區間是根據物理設備自身的性質以及經驗,人為定義的一個區間。
在框s203,為了解決瞬時負載峰值導致虛擬設備的不必要遷移,取最初p個周期(例如10秒)內的負載監控數據的平均值作為初值,然后采用一次指數平滑法來預測未來n(n為大于1的整數,例如n=6)個周期的負載值,其中,平滑系數為0.6,然后,方法前進到框s204。在框s204,判斷是否有m(m為小于n的正整數,例如m=4)個預測的負載值超過負載最佳區間的上限值,如果不存在m個預測的負載值超過負載最佳區間的上限值,則方法返回到框s201,如果存在m個預測的負載值超過負載最佳區間的上限值,則方法前進到框s205。
在框s205,根據負載參數信息對物理設備進行分類并按照如下要求進行排序:
對于處于負載較高狀態的物理設備,按照物理設備的負載由高到低的順序進行排序;
對于處于負載較低狀態的物理設備,按照物理設備的負載由低到高的順序進行排序。
由此,確定需要遷出虛擬設備的物理設備和接收待遷入的虛擬設備的物理設備。然后,方法前進到框s206。
在框s206,將處于負載較高狀態的物理設備中的虛擬設備遷移到處于負載較低狀態的物理設備。具體來講,根據物理設備的過高負載類型進行選擇,若物理設備的cpu負載過高,則選擇cpu需求最大的虛擬設備進行遷移;若物理設備的內存負載過高,則選擇內存需求最大的虛擬設備進行遷移;若物理設備的網絡帶寬負載過高,則選擇網絡帶寬需求最大的虛擬設備進行遷移。如果根據上述原則將需求最大的虛擬設備遷移后,該物理設備的負載仍然過高,則繼續根據上述原則進行遷移,直至該物理設備的負載處于最佳負載狀態。對于處于負載較低狀態的物理設備,按照負載由低到高的順序進行排序,并依據此順序對該物理設備實施虛擬設備的遷入操作。然后,方法前進到框s207。
在框s207,為了解決傳統負載均衡方法對物理設備負載實時動態變化考慮欠缺,導致頻繁開啟、關閉物理設備的問題,也為了更好地應對云數據中心負載的動態變化和虛擬設備分配需求。本發明給出了如下解決方案:通過系統負載飽和度來確定云數據中心物理設備的負載分配情況,進而采取相應的措施。具體地,首先,定義系統最佳飽和度區間(例如[0.85,0.9]),其次計算負載均衡調整后系統的飽和度,若系統的飽和度處于最佳飽和度區間內,則表明云數據中心的物理設備負載分配較合適,能夠應對負載動態變化和虛擬設備分配需求;若系統的飽和度小于最佳飽和度區間的下限值,則表明云數據中心處于低負載狀態的物理設備數量較多,則將負載最低的物理設備上的虛擬設備遷出(遷移的原則是接收被遷移的虛擬設備的物理設備的負載不超過最佳負載區間的上限值),若該物理設備上的所有虛擬設備均被遷出,則關閉該物理設備。然后,重新計算系統的飽和度,重復上述過程,直至系統的飽和度處于最佳飽和度區間內;若系統的飽和度大于最佳飽和度區間的上限,則表明數據中心的物理設備負載過高,為了應對負載動態變化和虛擬機分配,需要向云數據中心申請新的物理設備。方法結束。其中,飽和度是指系統負載飽和度,即系統在某一時刻t,其資源利用率處于最佳負載區間的物理機與云數據中心所有物理機的比值,最佳飽和度區間也是人為定義的。
圖3示出了根據本發明的另一實施例的云數據中心負載均衡系統的結構框圖。如圖3所示,系統包括依次通信地連接的資源監測模塊、物理機分類模塊、靜態調整模塊和動態調整模塊,其中,資源監測模塊包含數學建模模塊、數據采集模塊和負載計算模塊,數據采集模塊分別與數學建模模塊和負載計算模塊通信地連接,數學建模模塊采用數學計算方式給出資源負載均衡調整的時機、要遷移的虛擬設備及其所在的物理設備、以及要遷入虛擬設備的物理設備,數據采集模塊用于采集物理設備和虛擬設備的cpu、內存和網絡帶寬等負載參數信息,負載計算模塊用于計算每臺物理設備上部署的虛擬設備的cpu、內存、網絡帶寬的總和。物理機分類模塊將對物理設備的狀態進行分類,以識別物理設備處于負載高狀態、負載低狀態和最佳負載狀態。靜態調整模塊包括源虛擬機選擇模塊、調整時機計算模塊和目標物理機選擇模塊,調整時機計算模塊分別與源虛擬機選擇模塊和目標物理機選擇模塊通信地連接,源虛擬機選擇模塊用于確定哪些虛擬設備需要遷移,目標物理機選擇模塊用于確定虛擬設備將被遷移到哪些物理設備上,調整時機計算模塊用于確定何時將源虛擬設備遷移到目標物理設備上。動態調整模塊包含飽和度計算模塊、源虛擬機選擇模塊、調整時機計算模塊和目標物理機選擇模塊,其中調整時機計算模塊分別與飽和度計算模塊、源虛擬機選擇模塊和目標物理機選擇模塊通信地連接,飽和度計算模塊用于計算系統的負載飽和度、將系統的負載飽和度與最佳飽和度進行比較并將比較結果傳送到調整時機計算模塊,源虛擬機選擇模塊用于確定哪些虛擬設備需要遷移,目標物理機選擇模塊用于確定虛擬設備將被遷移到哪些物理設備上,調整時機計算模塊用于確定何時將源虛擬設備遷移到目標物理設備上。
本發明還提供一種計算機可讀存儲介質,其上存儲有計算機程序(指令),用于實現云數據中心負載均衡,其特征在于,所述程序(指令)被處理器執行時實現上述云數據中心負載均衡的方法。
關于這里的過程、系統、方法等,應理解的是,雖然這樣的過程中的步驟描述為按照一定的順序排列發生,但這樣的過程可以采用以這里描述的順序之外的順序完成的描述的步驟實施操作。進一步應該理解的是,某些步驟可以同時執行,可以添加其他步驟,或者可以省略這里的某些步驟。換言之,這里的過程的描述提供用于說明某些實施例的目的,并且不應該以任何方式解釋為限制要求保護的發明。
相應地,應理解的是上面的描述的目的是說明而不是限制。在閱讀上面的描述時,除了提供的示例外許多實施例和應用都是顯而易見的。本發明的范圍應參照所附權利要求以及與權利要求所要求的權利等效的全部范圍而確定,而不是參照上面的說明而確定。可以預期的是這里所討論的領域將出現進一步的發展,并且所公開的系統和方法將可以結合到這樣的未來的實施例中。總之,應理解的是本發明能夠進行修正和變化。
還應當理解的是,任何的過程或過程中的步驟可以與其它公開的過程或步驟組合以形成本公開范圍內的結構。本文公開的示例性結構、和過程是為了說明的目的,而不應被解釋為限制。