本發(fā)明涉及云計算技術,尤指一種負載均衡方法和裝置。
背景技術:
隨著云計算的快速發(fā)展,云數(shù)據(jù)中心管理平臺需要管理的計算、網(wǎng)絡資源越來越多,經(jīng)常出現(xiàn)對服務器或虛擬機大規(guī)模的訪問,訪問速度緩慢,嚴重時會導致宕機。例如云海os云數(shù)據(jù)中心管理平臺中的負載均衡設備集成了openstack云計算管理平臺的負載均衡器,后者包含監(jiān)聽器、成員池及成員,其中成員即虛擬機,負載均衡器通過監(jiān)聽器監(jiān)聽成員池里的成員的信息,比如網(wǎng)絡流量等,對高負載或低負載的成員進行均衡負載。比如某虛擬機成員流量負載過高,那么負載均衡器會把流量轉發(fā)到其它負載低的虛擬機成員上。但是,如果所有成員的負載都過高,該負載均衡器就無能為力了。
技術實現(xiàn)要素:
為了解決上述技術問題,本發(fā)明實施例提供了一種負載均衡方法和裝置,可以實現(xiàn)成員級別的擴容和縮容,增強了云數(shù)據(jù)中心管理平臺的負載均衡功能,提高了系統(tǒng)的性能。
為了達到本發(fā)明目的,一方面,本發(fā)明實施例提供了一種負載均衡方法,包括:
定時獲取云數(shù)據(jù)中心管理平臺中虛擬機的各個監(jiān)控資源的負載數(shù)據(jù);
根據(jù)獲取的所述負載數(shù)據(jù)以及預先創(chuàng)建的負載均衡器中的負載均衡策略判斷是否需要進行擴容或縮容;根據(jù)判斷結果以及所述負載均衡策略執(zhí)行相應的擴容或縮容操作。
與現(xiàn)有技術相比,本發(fā)明實施例通過定時獲取云數(shù)據(jù)中心管理平臺中虛擬機的各個監(jiān)控資源的負載數(shù)據(jù);根據(jù)獲取的所述負載數(shù)據(jù)以及預先創(chuàng)建的負載均衡器中的負載均衡策略判斷是否需要進行擴容或縮容;根據(jù)判斷結果以及所述負載均衡策略執(zhí)行相應的擴容或縮容操作。本發(fā)明實施例可以實現(xiàn)成員級別的擴容和縮容,增強了云數(shù)據(jù)中心管理平臺的負載均衡功能,提高了系統(tǒng)的性能。
進一步地,所述方法還包括:在預先創(chuàng)建的所述負載均衡器時,將所述os中已有的虛擬機作為成員添加到所述負載均衡器中。
進一步地,所述各個監(jiān)控資源包括:cpu、內(nèi)存、磁盤和/或網(wǎng)絡流量;
所述負載數(shù)據(jù)包括:與所述各個監(jiān)控資源相對應的,在預設時間內(nèi)的平均cpu使用率、平均內(nèi)存利用率、磁盤讀速率、磁盤寫速率、網(wǎng)絡流入速率和/或網(wǎng)絡流出速率;
所述負載均衡策略中包含:所述定時的時長、預設的第一負載閾值和第二負載閾值、擴容方式以及縮容方式;其中,所述第一負載閾值為預設的各個監(jiān)控資源的平均負載的上極限值,所述第二負載閾值為預設的各個監(jiān)控資源的平均負載的下極限值。
進一步地,所述擴容方式包括:啟動或創(chuàng)建新的虛擬機;
所述縮容方式包括:關閉已有虛擬機;
所述第一負載閾值包括:平均cpu使用率上極限值、平均內(nèi)存利用率上極限值、磁盤讀速率上極限值、磁盤寫速率上極限值、網(wǎng)絡流入速率上極限值和/或網(wǎng)絡流出速率上極限值;
所述第二負載閾值包括:平均cpu使用率下極限值、平均內(nèi)存利用率下極限值、磁盤讀速率下極限值、磁盤寫速率下極限值、網(wǎng)絡流入速率下極限值和/或網(wǎng)絡流出速率下極限值。
進一步地,所述根據(jù)獲取的所述負載數(shù)據(jù)以及預先創(chuàng)建的負載均衡器中的負載均衡策略判斷是否需要進行擴容或縮容包括:
將所述各個監(jiān)控資源的負載數(shù)據(jù)分別與所述第一負載閾值和所述第二負載閾值相比較;
當所述各個監(jiān)控資源的負載數(shù)據(jù)中的任意一個大于或等于所述第一負載閾值時,判定需要進行擴容;
當所述各個監(jiān)控資源的負載數(shù)據(jù)中的任意一個小于或等于所述第一負載閾值時,判定需要進行縮容。
進一步地,所述根據(jù)判斷結果以及所述負載均衡策略執(zhí)行相應的擴容或縮容操作包括:
當判定需要進行擴容時,確定所述負載均衡策略中預設的擴容方式是啟動新的虛擬機還是創(chuàng)建新的虛擬機;當確定所述負載均衡策略中預設的擴容方式是啟動新的虛擬機時,從當前已有的虛擬機中獲取處于關閉狀態(tài)的虛擬機并開啟該虛擬機;當確定所述負載均衡策略中預設的擴容方式是創(chuàng)建新的虛擬機時,根據(jù)預設的創(chuàng)建策略創(chuàng)建一個新的虛擬機,并基于該創(chuàng)建的虛擬機執(zhí)行負載均衡操作;
當判定需要進行縮容時,從當前已有的虛擬機中獲取處于閑置狀態(tài)的虛擬機并關閉該虛擬機。
進一步地,在執(zhí)行擴容操作以后,還包括:基于該開啟的虛擬機執(zhí)行負載均衡操作,或者,將該新建的虛擬機添加為所述負載均衡器的成員,并基于該新建的虛擬機執(zhí)行負載均衡操作。
另一方面,本發(fā)明實施例還提供了一種負載均衡裝置,包括:
獲取模塊,用于定時獲取云數(shù)據(jù)中心管理平臺中虛擬機的各個監(jiān)控資源的負載數(shù)據(jù);
執(zhí)行模塊,用于根據(jù)獲取的所述負載數(shù)據(jù)以及預先創(chuàng)建的負載均衡器中的負載均衡策略判斷是否需要進行擴容或縮容;根據(jù)判斷結果以及所述負載均衡策略執(zhí)行相應的擴容或縮容操作。
進一步地,所述裝置還包括:
添加模塊,用于在預先創(chuàng)建的所述負載均衡器時,將所述os中已有的虛擬機作為成員添加到所述負載均衡器中。
進一步地,所述裝置中所述各個監(jiān)控資源包括:cpu、內(nèi)存、磁盤和/或網(wǎng)絡流量;
所述負載數(shù)據(jù)包括:與所述各個監(jiān)控資源相對應的,在預設時間內(nèi)的平均cpu使用率、平均內(nèi)存利用率、磁盤讀速率、磁盤寫速率、網(wǎng)絡流入速率和/或網(wǎng)絡流出速率;
所述負載均衡策略中包含:所述定時的時長、預設的第一負載閾值和第二負載閾值、擴容方式以及縮容方式;其中,所述第一負載閾值為預設的各個監(jiān)控資源的平均負載的上極限值,所述第二負載閾值為預設的各個監(jiān)控資源的平均負載的下極限值。
本發(fā)明的其它特征和優(yōu)點將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點可通過在說明書、權利要求書以及附圖中所特別指出的結構來實現(xiàn)和獲得。
附圖說明
附圖用來提供對本發(fā)明技術方案的進一步理解,并且構成說明書的一部分,與本申請的實施例一起用于解釋本發(fā)明的技術方案,并不構成對本發(fā)明技術方案的限制。
圖1為本發(fā)明實施例負載均衡方法的流程圖;
圖2為本發(fā)明實施例負載均衡裝置的結構圖。
具體實施方式
為使本發(fā)明的目的、技術方案和優(yōu)點更加清楚明白,下文中將結合附圖對本發(fā)明的實施例進行詳細說明。需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互任意組合。
在附圖的流程圖示出的步驟可以在諸如一組計算機可執(zhí)行指令的計算機系統(tǒng)中執(zhí)行。并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。
如圖1所示,是本發(fā)明實施例負載均衡方法的流程圖,本發(fā)明實施例的方法包括以下步驟:
步驟100:定時獲取云數(shù)據(jù)中心管理平臺中虛擬機的各個監(jiān)控資源的負載數(shù)據(jù);
其中,云數(shù)據(jù)中心管理平臺例如云海os平臺。
步驟101:根據(jù)獲取的所述負載數(shù)據(jù)以及預先創(chuàng)建的負載均衡器中的負載均衡策略判斷是否需要進行擴容或縮容;根據(jù)判斷結果以及所述負載均衡策略執(zhí)行相應的擴容或縮容操作。
具體地,查詢設置的時間間隔內(nèi)所有成員的平均cpu使用率、平均內(nèi)存利用率、磁盤讀寫速率、網(wǎng)絡流入流出速率,并與策略里的閾值作比較;根據(jù)比較結果判斷是否需要進行擴容或縮容;根據(jù)判斷結果以及所述負載均衡策略執(zhí)行相應的擴容或縮容操作。
與現(xiàn)有技術相比,本發(fā)明實施例通過定時獲取云數(shù)據(jù)中心管理平臺中虛擬機的各個監(jiān)控資源的負載數(shù)據(jù);根據(jù)獲取的所述負載數(shù)據(jù)以及預先創(chuàng)建的負載均衡器中的負載均衡策略判斷是否需要進行擴容或縮容;根據(jù)判斷結果以及所述負載均衡策略執(zhí)行相應的擴容或縮容操作。本發(fā)明實施例可以實現(xiàn)成員級別的擴容和縮容,增強了云數(shù)據(jù)中心管理平臺的負載均衡功能,提高了系統(tǒng)的性能。
進一步地,所述方法還包括:在預先創(chuàng)建的所述負載均衡器時,將所述os中已有的虛擬機作為成員添加到所述負載均衡器中。
例如,用戶在云海os創(chuàng)建負載均衡器,并選擇添加云海os中已有的虛擬機作為成員。
進一步地,所述各個監(jiān)控資源包括:cpu、內(nèi)存、磁盤和/或網(wǎng)絡流量;
所述負載數(shù)據(jù)包括:與所述各個監(jiān)控資源相對應的,在預設時間內(nèi)的平均cpu使用率、平均內(nèi)存利用率、磁盤讀速率、磁盤寫速率、網(wǎng)絡流入速率和/或網(wǎng)絡流出速率;
所述負載均衡策略中包含:所述定時的時長、預設的第一負載閾值和第二負載閾值、擴容方式以及縮容方式;其中,所述第一負載閾值為預設的各個監(jiān)控資源的平均負載的上極限值,所述第二負載閾值為預設的各個監(jiān)控資源的平均負載的下極限值。
進一步地,所述擴容方式包括:啟動或創(chuàng)建新的虛擬機;
所述縮容方式包括:關閉已有虛擬機;
所述第一負載閾值包括:平均cpu使用率上極限值、平均內(nèi)存利用率上極限值、磁盤讀速率上極限值、磁盤寫速率上極限值、網(wǎng)絡流入速率上極限值和/或網(wǎng)絡流出速率上極限值;
所述第二負載閾值包括:平均cpu使用率下極限值、平均內(nèi)存利用率下極限值、磁盤讀速率下極限值、磁盤寫速率下極限值、網(wǎng)絡流入速率下極限值和/或網(wǎng)絡流出速率下極限值。
例如,在選擇添加云海os中已有的虛擬機作為成員之后,選擇負載均衡器,點擊“創(chuàng)建策略”,填寫平均高負載、平均低負載以及自動擴容/縮容時間間隔;
平均高負載包括:平均cpu使用率、平均內(nèi)存利用率、磁盤讀速率、磁盤寫速率、網(wǎng)絡流入速率、網(wǎng)絡流出速率的最高閾值及擴容方式(啟動或者創(chuàng)建虛擬機);
平均低負載包括:平均cpu使用率、平均內(nèi)存利用率、磁盤讀速率、磁盤寫速率、網(wǎng)絡流入速率、網(wǎng)絡流出速率的最低閾值及縮容方式(關閉虛擬機);
時間間隔即監(jiān)控多長時間以內(nèi)的cpu、內(nèi)存等數(shù)據(jù);
填好數(shù)據(jù)并保存,即可為負載均衡器創(chuàng)建好策略。
進一步地,所述根據(jù)獲取的所述負載數(shù)據(jù)以及預先創(chuàng)建的負載均衡器中的負載均衡策略判斷是否需要進行擴容或縮容包括:
將所述各個監(jiān)控資源的負載數(shù)據(jù)分別與所述第一負載閾值和所述第二負載閾值相比較;
當所述各個監(jiān)控資源的負載數(shù)據(jù)中的任意一個大于或等于所述第一負載閾值時,判定需要進行擴容;
當所述各個監(jiān)控資源的負載數(shù)據(jù)中的任意一個小于或等于所述第一負載閾值時,判定需要進行縮容。
進一步地,所述根據(jù)判斷結果以及所述負載均衡策略執(zhí)行相應的擴容或縮容操作包括:
當判定需要進行擴容時,確定所述負載均衡策略中預設的擴容方式是啟動新的虛擬機還是創(chuàng)建新的虛擬機;當確定所述負載均衡策略中預設的擴容方式是啟動新的虛擬機時,從當前已有的虛擬機中獲取處于關閉狀態(tài)的虛擬機并開啟該虛擬機;當確定所述負載均衡策略中預設的擴容方式是創(chuàng)建新的虛擬機時,根據(jù)預設的創(chuàng)建策略創(chuàng)建一個新的虛擬機,并基于該創(chuàng)建的虛擬機執(zhí)行負載均衡操作;
當判定需要進行縮容時,從當前已有的虛擬機中獲取處于閑置狀態(tài)的虛擬機并關閉該虛擬機。
進一步地,在執(zhí)行擴容操作以后,還包括:基于該開啟的虛擬機執(zhí)行負載均衡操作,或者,將該新建的虛擬機添加為所述負載均衡器的成員,并基于該新建的虛擬機執(zhí)行負載均衡操作。
例如,創(chuàng)建好策略后,設置定時任務,每隔15分鐘掃描負載均衡策略,并獲取監(jiān)控數(shù)據(jù)。然后執(zhí)行擴容或縮容操作,具體步驟如下:
設置定時任務,每隔15分鐘執(zhí)行自動擴容/縮容的程序;
查詢負載均衡器下的所有成員,調(diào)用監(jiān)控功能,查詢設置的時間間隔內(nèi)所有成員的平均cpu使用率、平均內(nèi)存利用率、磁盤讀寫速率、網(wǎng)絡流入流出速率,并與策略里的閾值作比較;
如果cpu、內(nèi)存、磁盤讀寫、網(wǎng)絡流入流出速率等有一個數(shù)據(jù)高于平均高負載閾值,則觸發(fā)擴容,根據(jù)選擇的擴容方式,如果是開啟,則找出關機的虛擬機成員,進行開機操作,如果是創(chuàng)建,則創(chuàng)建一個虛擬機,并調(diào)用接口添加為成員;
如果cpu、內(nèi)存、磁盤讀寫、網(wǎng)絡流入流出速率等所有數(shù)據(jù)都低于平均低負載閾值,則觸發(fā)減容,關閉一臺虛擬機;
15分鐘之后,再次掃描并循環(huán)上述操作,保持系統(tǒng)一直為負載均衡器自動進行動態(tài)的擴容或縮容。
本發(fā)明實施例可以設置平均高負載和平均低負載,它們各自包含cpu、內(nèi)存、磁盤讀寫速率、網(wǎng)絡流入流出速率的最高或最低閾值。當負載均衡器下的所有成員的平均高負載,如平均cpu使用率超過了閾值,通過一定算法,程序會自動創(chuàng)建一個虛擬機并添加為負載均衡成員,把部分負載轉移到自身,從而實現(xiàn)自動擴容。縮容也是如此:當負載均衡器下的所有成員的平均低負載,如平均cpu使用率,低于設定的閾值,通過一定算法,程序會自動關閉一個虛擬機,以提高資源利用率,減少浪費,從而實現(xiàn)自動縮容。
本發(fā)明實施例通過為負載均衡器創(chuàng)建策略,以及定時任務,為負載均衡器實現(xiàn)成員級別的自動擴容和縮容。
圖2為本發(fā)明實施例負載均衡裝置的結構圖,如圖2所示,本發(fā)明實施例另一方面提供的一種負載均衡裝置,包括:
獲取模塊201,用于定時獲取云數(shù)據(jù)中心管理平臺中虛擬機的各個監(jiān)控資源的負載數(shù)據(jù);
執(zhí)行模塊202,用于根據(jù)獲取的所述負載數(shù)據(jù)以及預先創(chuàng)建的負載均衡器中的負載均衡策略判斷是否需要進行擴容或縮容;根據(jù)判斷結果以及所述負載均衡策略執(zhí)行相應的擴容或縮容操作。
進一步地,所述裝置還包括:
添加模塊,用于在預先創(chuàng)建的所述負載均衡器時,將所述os中已有的虛擬機作為成員添加到所述負載均衡器中。
進一步地,所述裝置中所述各個監(jiān)控資源包括:cpu、內(nèi)存、磁盤和/或網(wǎng)絡流量;
所述負載數(shù)據(jù)包括:與所述各個監(jiān)控資源相對應的,在預設時間內(nèi)的平均cpu使用率、平均內(nèi)存利用率、磁盤讀速率、磁盤寫速率、網(wǎng)絡流入速率和/或網(wǎng)絡流出速率;
所述負載均衡策略中包含:所述定時的時長、預設的第一負載閾值和第二負載閾值、擴容方式以及縮容方式;其中,所述第一負載閾值為預設的各個監(jiān)控資源的平均負載的上極限值,所述第二負載閾值為預設的各個監(jiān)控資源的平均負載的下極限值。
云計算數(shù)據(jù)中心技術領域中一種動態(tài)擴容縮容的負載均衡策略。
本發(fā)明實施例作為一種基于成員的動態(tài)擴容縮容的負載均衡策略,可以設置平均高負載和平均低負載,它們各自包含cpu、內(nèi)存、磁盤讀寫速率、網(wǎng)絡流入流出速率的最高或最低閾值。當負載均衡器下的所有成員的平均高負載,如平均cpu使用率超過了閾值,通過一定算法,程序會自動創(chuàng)建一個虛擬機并添加為負載均衡成員,把部分負載轉移到自身,從而實現(xiàn)自動擴容。縮容也是如此:當負載均衡器下的所有成員的平均低負載,如平均cpu使用率,低于設定的閾值,通過一定算法,程序會自動關閉一個虛擬機,以提高資源利用率,減少浪費,從而實現(xiàn)自動縮容。
本發(fā)明實施例通過為負載均衡器創(chuàng)建負載均衡策略,以及特定算法,實現(xiàn)了成員級別的自動擴容和縮容,增強了云海os的負載均衡功能,提高了系統(tǒng)的性能。
雖然本發(fā)明所揭露的實施方式如上,但所述的內(nèi)容僅為便于理解本發(fā)明而采用的實施方式,并非用以限定本發(fā)明。任何本發(fā)明所屬領域內(nèi)的技術人員,在不脫離本發(fā)明所揭露的精神和范圍的前提下,可以在實施的形式及細節(jié)上進行任何的修改與變化,但本發(fā)明的專利保護范圍,仍須以所附的權利要求書所界定的范圍為準。