亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種基于虛擬機的負載均衡控制方法與流程

文檔序號:11774185閱讀:354來源:國知局

本發(fā)明涉及云計算領域,具體涉及一種基于虛擬機的負載均衡控制方法。



背景技術:

隨著移動互聯網的快速發(fā)展以及互聯網3g技術的不斷成熟,網絡訪問用戶、訪問流量以及訪問請求數都在成倍增長,世界各地的互聯網公司都在竭盡全力來爭奪由移動互聯網用戶不斷增長所帶來的商機。據不完全統(tǒng)計,google的服務器數量早已突破1000萬臺,而國內像阿里巴巴、新浪、百度等互聯網企業(yè)的服務器也都達到2萬臺以上。必須采取高效合理的方法來部署這些服務器,才能為企業(yè)提供穩(wěn)定的商業(yè)服務。另外,服務器數量的擴充需求推高了互聯網企業(yè)的成本,每擴展一臺服務器都會給互聯網企業(yè)帶來新的成本。與此同時,集群的擴展也給數據中心的運行環(huán)境帶來了不穩(wěn)定性,新增的服務器所帶來的訪問量在服務器端極度不均衡,即有時忙的服務器分配的訪問量大,閑的服務器反而分配較小,這種情況是不安全的,容易導致服務器宕機而形成網絡阻塞。如果是集群的中心節(jié)點出現問題,整個集群就會崩潰。

在商業(yè)和技術需求雙重因素的驅使下,云計算技術在不同的互聯網公司得到了充分發(fā)展。這些企業(yè)的數據中心再也不像原始單點集成式那樣簡單的部署服務器,而是采用了更高效的體系架構,更靈活的集群部署,更合理的資源配置來構建資源服務器池,而最能體現這樣特點的架構無疑是云計算服務體系架構。

云計算技術是分布式計算技術、虛擬機技術、負載均衡技術等傳統(tǒng)技術的綜合發(fā)展。其中,云計算服務平臺中的虛擬化技術也變得極為關鍵,相比單個的服務器組成的集群,基于虛擬機的集群的服務運行和服務部署具有以下特點:

(1)高擴展:虛擬機獨立于硬件層,基于內核1層和應用層3層之間,虛擬機通過鏡像文件來管理虛擬實例。通過配置好包含相關服務的鏡像文件,加上cpu、內存等物理資源,添加或剔除一臺應用服務器將變得非常的簡潔,只需管理相關鏡像文件即可,更重要的是,虛擬出的物理機實例計算能力跟真實服務器沒有兩樣。

(2)高可靠:大規(guī)模服務器的部署必然伴隨著服務器故障的產生,服務器數量越多,故障率也就越多。故障的產生不僅帶來服務器更換成本,同時給運維人員帶來運行維護的時間成本。虛擬機只需切換有故障的服務器實例,或者遷移實時任務,甚至跨地域地實現數據中心服務的無縫遷移,這些措施都可以通過云服務平臺下的虛擬化技術來實現。

(3)獨立性強:虛擬機技術實現了cpu的虛擬化、i/o的虛擬化以及內存等物理資源的虛擬化,虛擬化的物理資源是相互獨立的,服務器實例之間互不干擾。

linux服務器下虛擬機技術包括xen完全虛擬化和kvm半虛擬化,這些虛擬化技術已經集成在相關的開源云計算平臺中。目前ubuntu下的openstack采用了kvm虛擬機管理云資源實例,centos下的eucalyptus的則采取了完全虛擬化的機制。

云計算的分布式技術可以集成大量的服務器,提高系統(tǒng)的存儲和計算能力,同時云計算的虛擬化技術可以有效管理服務器,提高單個服務器資源的利用率。但是,隨著移動互聯網的發(fā)展,電腦、筆記本、智能手機、平板電腦等用戶的訪問流量全天24小時不間斷的匯聚到服務器池中,異構的云服務平臺的服務器實例資源大小不一,過重的負載量必然導致服務器端的負載不均衡。所以,云服務平臺系統(tǒng)架構的負載均衡成為云服務平臺能否高效運行的一個重要環(huán)節(jié),也是現有技術急需解決的問題。



技術實現要素:

至少部分的解決現有技術中存在的問題,本發(fā)明提出一種基于虛擬機的負載均衡控制方法,所述方法用于在云計算環(huán)境下對資源進行調度,所述方法包括:

(1)調度處理器接收用戶的虛擬機任務請求,調度處理器根據當前各個數據中心的負載狀態(tài),將虛擬機任務請求轉發(fā)給某一個數據中心;云計算環(huán)境中包含若干個數據中心,每個數據中心由若干個物理機組成;每個物理機中包括若干個虛擬機;

(2)數據中心在接到虛擬機任務請求之后,為該虛擬機任務請求找到一臺物理機,將分配結果返回給調度處理器;

(3)調度處理器接收數據中心發(fā)來的虛擬機任務請求分配結果,并發(fā)送給用戶。

其中,步驟(1)中所述調度處理器根據當前各個數據中心的負載狀態(tài),將虛擬機任務請求轉發(fā)給某一個數據中心,具體包括:

調度處理器計算每個數據中心的資源負載值(xd1,…,xdi…,xdn),按照該值由小到大的順序為數據中心排隊;其中,xdi表示第i個數據中心的資源負載值,n表示所述云資源環(huán)境下的數據中心個數;

選擇數據中心隊列中的第一個數據中心,將虛擬機任務請求轉發(fā)到所述第一個數據中心。

優(yōu)選的,所述第一個數據中心根據虛擬機任務請求,為用戶分配物理機;若分配物理機失敗,則將所述虛擬機任務請求轉發(fā)到所述數據中心隊列中的下一個數據中心,在下一個數據中心中為用戶分配物理機,直至分配物理機成功或者所有數據中心分配物理機失?。?/p>

更新分配到虛擬機任務的物理機的剩余資源。

優(yōu)選的,所述第一個數據中心根據虛擬機任務請求,為用戶分配物理機,包括:

首先根據用戶請求的虛擬機類型將物理機按該類型的利用率升序排列,所述虛擬機類型包括cpu類型、內存類型、存儲類型;

根據該類型的利用率將物理機劃分成多個區(qū)間,每個區(qū)間的大小可以動態(tài)設置,然后找出利用率最低的物理機所在的區(qū)間的所有物理機,將虛擬機任務試分配在該區(qū)間的所有物理機上,分別計算該區(qū)間物理機分配虛擬機任務后每個物理機的cpu利用率,內存利用率,存儲利用率三者的方差,得到每個物理機的負載均衡值;

選取負載均衡值最低的物理機開始分配虛擬機,只要分配該虛擬機任務后該物理機的容量沒有超過閾值,則成功分配,否則取下一個負載均衡值次小的物理機進行分配,如果該區(qū)間所有物理機都不能分配,則取出下一個區(qū)間的物理機進行分配,直到分配成功為止。

優(yōu)選的,所述計算該區(qū)間物理機分配虛擬機任務后每個物理機的cpu利用率,內存利用率,存儲利用率三者的方差,得到每個物理機的負載均衡值,具體包括:

cb=(avg-cpu_u)2+(avg-mem_u)2+(avg-stor_u)2,

avg=(cpu_u+mem_u+stor_u)/3

其中,cb表示物理機的負載均衡值,cpu_u、mem_u、stor_u分別表示物理機的cpu利用率、內存利用率、存儲利用率,avg表示物理機的cpu利用率、內存利用率、存儲利用率的平均值。

優(yōu)選的,所述第一個數據中心根據虛擬機任務請求,為用戶分配物理機,包括:

計算一個時間窗口t內所述第一個數據中心所接收到的所有虛擬機任務和該數據中心中所有物理機之間的資源負載矩陣;

根據所述資源負載矩陣為所述一個時間窗口t內所述第一個數據中心所接收到的所有虛擬機任務分配物理機。

優(yōu)選的,所述計算一個時間窗口t內所述第一個數據中心所接收到的所有虛擬機任務和該數據中心中所有物理機之間的資源負載矩陣,具備包括:

計算一個時間窗口t內所述第一個數據中心所接收到的所有虛擬機任務中的每個虛擬機任務相對該數據中心中所有物理機中每個物理機的資源負載vij,

其中,vij表示一個時間窗口t內所述第一個數據中心所接收到的所有虛擬機任務中的第i個虛擬機任務相對該數據中心中對j個物理機的資源負載,

表示一個時間窗口t內所述第一個數據中心所接收到的所有虛擬機任務中的第i個虛擬機任務相對該數據中心中對j個物理機的cpu資源負載;tcpui表示第i個虛擬機任務所需要的cpu資源,pcpuj表示第j個物理機剩余的可用cpu資源;

表示一個時間窗口t內所述第一個數據中心所接收到的所有虛擬機任務中的第i個虛擬機任務相對該數據中心中對j個物理機的內存資源負載;tmemi表示第i個虛擬機任務所需要的內存資源,pmemj表示第j個物理機剩余的可用內存資源;

表示一個時間窗口t內所述第一個數據中心所接收到的所有虛擬機任務中的第i個虛擬機任務相對該數據中心中對j個物理機的存儲資源負載;tstori表示第i個虛擬機任務所需要的存儲資源,pstorj表示第j個物理機剩余的可用存儲資源;

α、β、γ分別cpu資源負載權值、內存資源負載權值、存儲資源負載權值;

所述資源負載矩陣表示為:

所述矩陣表示在一個時間窗口t內有m個可用的物理機,有n個需要被調度的虛擬機任務請求,vij代表第i個任務在第j個物理機上的負載值v。

優(yōu)選的,α、β、γ分別取值0.5、0.3、0.2。

優(yōu)選的,所述根據所述資源負載矩陣為所述一個時間窗口t內所述第一個數據中心所接收到的所有虛擬機任務分配物理機,具體包括:

找出每個虛擬機任務的最小v值vi,即針對矩陣的每一行,找出每一行的最小值;

vi=min{vi1,vi2,…,vim};

然后,找出這些最小值中的最大值vmax,

vmax=max{v1,v2,…,vn};

找出vmax所在的任務i,該任務就是第一個將要被分配的任務,它將被調度到該任務所在行的vij是

vmax的下j所代表的第j個物理機上;隨后刪除任務i在矩陣中的那一行,并更新矩陣中的其它任務在第j個節(jié)點上的l值,即都加上vmax(這是因為其它任務如果要在第j個物理機上執(zhí)行需要等待任務i執(zhí)行,故它們的l值要加上vmax);矩陣更新完畢后進行下一個任務調度的計算,重復以上過程,并最終確定了所有任務的調度順序和調度去向。

本發(fā)明提出了基于虛擬機的負載均衡控制方法,提高了資源利用效率、減少任務處理時間。

附圖說明

圖1為本發(fā)明一種基于虛擬機的負載均衡控制方法的流程圖;

具體實施方式

下面將結合本發(fā)明的附圖,對本發(fā)明的技術方案進行清楚、完整地描述。這里將詳細地對示例性實施例進行說明,其示例表示在附圖中。下面的描述涉及附圖時,除非另有表示,不同附圖中的相同數字表示相同或相似的要素。以下示例性實施例中所描述的實施方式并不代表與本發(fā)明相一致的所有實施方式。相反,它們僅是與如所附權利要求書中所詳述的、本發(fā)明的一些方面相一致的裝置和方法的例子。

參見圖1,本發(fā)明提出了一種基于虛擬機的負載均衡控制方法,所述方法用于在云計算環(huán)境下對資源進行調度,所述方法包括:

(1)調度處理器接收用戶的虛擬機任務請求,調度處理器根據當前各個數據中心的負載狀態(tài),將虛擬機任務請求轉發(fā)給某一個數據中心;云計算環(huán)境中包含若干個數據中心,每個數據中心由若干個物理機組成;每個物理機中包括若干個虛擬機;

(2)數據中心在接到虛擬機任務請求之后,為該虛擬機任務請求找到一臺物理機,將分配結果返回給調度處理器;

(3)調度處理器接收數據中心發(fā)來的虛擬機任務請求分配結果,并發(fā)送給用戶。

調度處理器還用于接收數據中心發(fā)來的資源更新信息,并更新資源信息庫;當某個數據中心的信息發(fā)生改變時,數據中心會給調度處理器發(fā)來更新后的信息,調度處理器收到之后,更新自身的數據庫,保持與數據中心數據庫的一致性,以便在分配虛擬機任務請求時使用。

調度處理器還用于管理數據中心,包括數據中心的注冊和刪除;當有新的數據中心需要加入到該云計算環(huán)境時,需要在調度處理器注冊,將該數據中心的信息加入到調度處理器的數據庫;當有數據中心需要刪除時,在調度處理器的數據庫將該數據中心的相應信息刪除。

用戶提交的虛擬機任務請求包括虛擬機使用的開始時間、結束時間、虛擬機的類型。

步驟(1)中所述調度處理器根據當前各個數據中心的負載狀態(tài),將虛擬機任務請求轉發(fā)給某一個數據中心,具體包括:

調度處理器計算每個數據中心的資源負載值(xd1,…,xdi…,xdn),按照該值由小到大的順序為數據中心排隊;其中,xdi表示第i個數據中心的資源負載值,n表示所述云資源環(huán)境下的數據中心個數;

選擇數據中心隊列中的第一個數據中心,將虛擬機任務請求轉發(fā)到所述第一個數據中心;

所述第一個數據中心根據虛擬機任務請求,為用戶分配物理機;若分配物理機失敗,則將所述虛擬機任務請求轉發(fā)到所述數據中心隊列中的下一個數據中心,在下一個數據中心中為用戶分配物理機,直至分配物理機成功或者所有數據中心分配物理機失??;

更新分配到虛擬機任務的物理機的剩余資源。

所述調度處理器計算每個數據中心的資源負載值(xd1,…,xdi…,xdn),具體包括:

vcpuj、vmemj、vstorj分別表示數據中心di中虛擬機j所需要的cpu大小、內存大小、存儲大小,m表示數據中心di所包含的所有虛擬機的數量。

所述第一個數據中心根據虛擬機任務請求,為用戶分配物理機,其一實施例包括:

首先根據用戶請求的虛擬機類型將物理機按該類型的利用率升序排列,所述虛擬機類型包括cpu類型、內存類型、存儲類型;

根據該類型的利用率將物理機劃分成多個區(qū)間,每個區(qū)間的大小可以動態(tài)設置,然后找出利用率最低的物理機所在的區(qū)間的所有物理機,將虛擬機任務試分配在該區(qū)間的所有物理機上,分別計算該區(qū)間物理機分配虛擬機任務后每個物理機的cpu利用率,內存利用率,存儲利用率三者的方差,得到每個物理機的負載均衡值;

選取負載均衡值最低的物理機開始分配虛擬機,只要分配該虛擬機任務后該物理機的容量沒有超過閾值,則成功分配,否則取下一個負載均衡值次小的物理機進行分配,如果該區(qū)間所有物理機都不能分配,則取出下一個區(qū)間的物理機進行分配,直到分配成功為止。

把物理機劃分成多個區(qū)間,每個區(qū)間的大小可以動態(tài)設置,每次都從利用率最小的物理機所在區(qū)間進行分配,這樣能保證先將任務分配給利用率小的物理機,保證整個數據中心比較均衡。同時每次只從一個區(qū)間中尋找物理機大大的減少了算法的運行時間。

所述計算該區(qū)間物理機分配虛擬機任務后每個物理機的cpu利用率,內存利用率,存儲利用率三者的方差,得到每個物理機的負載均衡值,具體包括:

cb=(avg-cpu_u)2+(avg-mem_u)2+(avg-stor_u)2,

avg=(cpu_u+mem_u+stor_u)/3

其中,cb表示物理機的負載均衡值,cpu_u、mem_u、stor_u分別表示物理機的cpu利用率、內存利用率、存儲利用率,avg表示物理機的cpu利用率、內存利用率、存儲利用率的平均值。

所述第一個數據中心根據虛擬機任務請求,為用戶分配物理機,其又一實施例包括:

計算一個時間窗口t內所述第一個數據中心所接收到的所有虛擬機任務和該數據中心中所有物理機之間的資源負載矩陣;

根據所述資源負載矩陣為所述一個時間窗口t內所述第一個數據中心所接收到的所有虛擬機任務分配物理機。

所述計算一個時間窗口t內所述第一個數據中心所接收到的所有虛擬機任務和該數據中心中所有物理機之間的資源負載矩陣,具備包括:

計算一個時間窗口t內所述第一個數據中心所接收到的所有虛擬機任務中的每個虛擬機任務相對該數據中心中所有物理機中每個物理機的資源負載vij,

其中,vij表示一個時間窗口t內所述第一個數據中心所接收到的所有虛擬機任務中的第i個虛擬機任務相對該數據中心中對j個物理機的資源負載,

表示一個時間窗口t內所述第一個數據中心所接收到的所有虛擬機任務中的第i個虛擬機任務相對該數據中心中對j個物理機的cpu資源負載;tcpui表示第i個虛擬機任務所需要的cpu資源,pcpuj表示第j個物理機剩余的可用cpu資源;

表示一個時間窗口t內所述第一個數據中心所接收到的所有虛擬機任務中的第i個虛擬機任務相對該數據中心中對j個物理機的內存資源負載;tmemi表示第i個虛擬機任務所需要的內存資源,pmemj表示第j個物理機剩余的可用內存資源;

表示一個時間窗口t內所述第一個數據中心所接收到的所有虛擬機任務中的第i個虛擬機任務相對該數據中心中對j個物理機的存儲資源負載;tstori表示第i個虛擬機任務所需要的存儲資源,pstorj表示第j個物理機剩余的可用存儲資源;

α、β、γ分別cpu資源負載權值、內存資源負載權值、存儲資源負載權值,在一實施例中,α、β、γ分別取值0.5、0.3、0.2;

所述資源負載矩陣表示為:

所述矩陣表示在一個時間窗口t內有m個可用的物理機,有n個需要被調度的虛擬機任務請求,vij代表第i個任務在第j個物理機上的負載值v。

所述根據所述資源負載矩陣為所述一個時間窗口t內所述第一個數據中心所接收到的所有虛擬機任務分配物理機,具體包括:

找出每個虛擬機任務的最小v值vi,即針對矩陣的每一行,找出每一行的最小值;

vi=min{vi1,vi2,…,vim};

然后,找出這些最小值中的最大值vmax,

vmax=max{v1,v2,…,vn};

找出vmax所在的任務i,該任務就是第一個將要被分配的任務,它將被調度到該任務所在行的vij是

vmax的下j所代表的第j個物理機上;隨后刪除任務i在矩陣中的那一行,并更新矩陣中的其它任務在第j個節(jié)點上的l值,即都加上vmax(這是因為其它任務如果要在第j個物理機上執(zhí)行需要等待任務i執(zhí)行,故它們的l值要加上vmax);矩陣更新完畢后進行下一個任務調度的計算,重復以上過程,并最終確定了所有任務的調度順序和調度去向。

本發(fā)明提出的一種基于虛擬機的負載均衡控制方法,還進一步包括:

對數據中心物理機當前時刻t的下一時刻t+1的資源負載情況進行預估;

根據物理機物理機當前時刻t的資源負載和下一時刻t+1的資源負載,選擇需要遷出虛擬機的物理機以及所遷出虛擬機待遷入的物理機。

所述對數據中心物理機當前時刻t的下一時刻t+1的資源負載情況進行預估,具體包括:

w(t+1)=μw(t)+δw(t-1)+ωw(t-2),其中w(t+1)、w(t)、w(t-1)、w(t-2)分別表示時刻t+1、t、t-1、t-2時物理機的資源負載,μ、δ、ω為權值,在一實施例中分別取值0.5、0.3、0.2。

所述選擇需要遷出虛擬機的物理機,具體包括:

當物理機發(fā)生過載情況時和低載情況時,根據當前狀態(tài)將該物理機上的部分或全部虛擬機遷移到其它物理機上運行。

當物理機處于過載狀態(tài)時,將虛擬機按時刻t+1預估資源負載量進行降序排列,選擇未來資源負載排名前列的虛擬機進行遷出,同時,使得當前物理機能夠滿足剩下的虛擬機的時刻t+1時的資源需求;

當物理機處于低載狀態(tài)時,將所有虛擬機都遷移出當前物理機。

所述物理機過載情況包括cpu利用率大于80%,所述物理機低載情況包括cpu利用率小于20%

所述選擇所遷出虛擬機待遷入的物理機,具體包括:

根據需要遷入的虛擬機的資源需求與數據中心中所有物理機的資源信息,從中選取用于安置遷移虛擬機的物理機。

選擇策略是對所有滿足虛擬機資源分配要求的物理機預估其時刻t+1工作負載,根據預估情況劃分資源需求縮減隊列和資源需求擴大隊列,通過進一步篩選確定目的物理機,具體步驟包括:

(a)計算各物理機上的資源需求伸縮量,其值為當前物理機上所有虛擬機時刻t+1的工作負載預估總量減去當前時刻工作負載總量,它反應了虛擬機資源需求的變化趨勢;

(b)通過物理機資源總量減去當前時刻資源負載總量來計算未分配資源量,篩選出未分配資源量與資源需求伸縮量之間的差值即預計剩余資源量大于零的物理機列表,形成候選物理機列表;

(c)如果資源需求伸縮量為負值,則加入資源需求縮小隊列,并計算剩余資源量與資源伸縮量的差值以降序排列。若為正值,則加入資源需求擴大隊列,計算資源需求伸縮量與剩余資源量的比值作為安全調度因子,并依據該因子數值將隊列按升序排列,如果一方隊列為空,則直接選擇另一方排位第一的物理機機做為待遷入的物理機,若都不為空,則進一步比較兩個隊列的首位物理機,選擇其中一個作為待遷入的物理機。

基于資源負載預估的主動控制是一種前饋控制,通過預估系統(tǒng)的未來工作負載情況來預先分析物理機發(fā)生過載或低載的可能性,并根據算法進行虛擬機整合,保證系統(tǒng)處于最優(yōu)狀態(tài)。基于實際系統(tǒng)狀態(tài)信息的被動控制是一種反饋控制,通過監(jiān)測單元等系統(tǒng)組件收集各虛擬機運行過程中使用資源的實時信息以及數據中心、物理機的狀態(tài)信息作為反饋,重新調整虛擬機在物理機上的部署。

通過預估技術提前獲知資源負載的波動情況,可以讓調度器部分更加從容地實施虛擬機遷移策略,起到有針對性地提前預防作用;又可以通過反饋技術獲知調度策略的實際執(zhí)行情況,對處于過載或低載狀態(tài)的物理主機實施虛擬機遷移操作,起到實時地糾正控制作用。

所述對數據中心物理機當前時刻t的下一時刻t+1的資源負載情況進行預估,進一步包括:

統(tǒng)計當前物理機上用戶信息;

使用啟發(fā)式方法或k-鄰近算法對用戶在下一時刻t+1的所需資源u(t+1)進行預估,取u(t+1)和w(t+1)中值較大的作為下一時刻t+1當前物理機的資源負載值。

本發(fā)明提出了基于虛擬機的負載均衡控制方法,提高了資源利用效率、減少任務處理時間。

本領域技術人員在考慮說明書及實踐這里公開的發(fā)明后,將容易想到本發(fā)明的其它實施方案。本申請旨在涵蓋本發(fā)明的任何變型、用途或者適應性變化,這些變型、用途或者適應性變化遵循本發(fā)明的一般性原理并包括本發(fā)明未公開的本技術領域中的公知常識或慣用技術手段。

應當理解的是,本發(fā)明并不局限于上面已經描述并在附圖中示出的精確結構,并且可以在不脫離其范圍進行各種修改和改變。本發(fā)明的范圍僅由所附的權利要求來限制。

當前第1頁1 2 
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1