本發明涉及云計算資源調度技術領域,特別是指一種容器云資源調度方法。
背景技術:
在物理資源上運用虛擬化技術,不僅可以提高系統的可靠性、有效性以及可擴展性。目前大部分的云商家都采用了hypervisor虛擬化技術來實現物理資源與虛擬資源的映射關系,具體的,通過對物理資源的抽象,完成虛擬資源的創建。在這種模式下,虛擬化的基本單元是虛擬機,每一個虛擬機安裝有完整的操作系統,可以通過虛擬化工具把虛擬機中的操作指令轉換到物理資源上。以虛擬機為單位的虛擬架構已經被廣泛應用于云計算的彈性資源供應中,但基于虛擬機的云資源管理缺乏靈活性和有效性。它會占據大量的cpu和內存資源,帶來了不必要的開銷,操作系統在啟動的同時會等待較長時間,因此基于容器的虛擬化技術(container-basedvirtualizatiion)應用而生,它在底層運行一個主操作系統。
所述容器與虛擬機是有一定差別的,例如,一臺虛擬機所占用的資源往往比一個容器多達十倍不止,因為虛擬機需要創建自己的操作系統,而且不同虛擬機無法共享應用程序的依賴資源;而不同的容器可以共享同一個主操作系統,不需要模擬硬件,不需要將容器指令轉換到物理資源上面,只需將每個容器的宿主隔離,從而實現了多個容器共享一個主機的資源。一般一臺物理資源(也可以稱為物理機)上只能創建十幾臺虛擬機,但卻可以創建上百臺容器,因此,容器是一種輕量級虛擬化技術,它能夠在保持程序獨立性的同時兼顧資源的共享,在基于容器的虛擬化技術中,容器既是隔離的命名空間,也是資源容器,它能有效的將單個操作系統管理的資源劃分成隔離的組,從而更好的在隔離的組之間平衡有沖突的資源需求。容器在進程級別隔離并使用宿主機的內核,而不需要虛擬化整個操作系統。
容器云是現在云計算中比較流行的一種虛擬化手段,彈性資源調度和分配是容器云最主要的特點。但是,現有的不具有網絡認知能力的容器云資源調度策略會導致整個容器云平臺性能的下降,這是因為整個容器云平臺的資源調度分配沒有考慮到網絡狀態信息。
而當加入具有認知能力的認知網絡時,有些創建好的容器可能會在下一次用戶申請相同任務的情況下使用,在這種情況下就不必再重新創建新的容器,直接調用已經創建好的容器進行資源調度,從而大大增加了的資源的利用率。
技術實現要素:
本發明要解決的技術問題是提供一種容器云資源調度方法,以解決現有技術所存在的容器云資源調度分配時沒有考慮到網絡狀態信息,導致容器云平臺性能的下降的問題。
為解決上述技術問題,本發明實施例提供一種容器云資源調度方法,包括:
獲取用戶提交的申請資源的服務請求;
對獲取的所述服務請求進行分析,得到所述服務請求的任務中各子任務的資源請求;
通過認知環感知云數據中心當前的網絡資源狀態信息和容器負載狀態信息,其中,所述認知環包括:觀察、定向、決策和動作環節;
根據各子任務的資源請求及認知環感知到的云數據中心當前的網絡資源狀態信息和容器負載狀態信息,生成資源調度方案,所述資源調度方案包括:為每個子任務分配容器;
根據生成的資源調度方案對各子任務進行資源調度。
進一步地,所述獲取用戶提交的申請資源的服務請求包括:
獲取用戶提交的申請資源的服務請求;
對獲取的用戶提交的申請資源的服務請求進行解析,得到用戶的身份信息和用戶所申請的資源信息。
進一步地,所述對獲取的所述服務請求進行分析,得到所述服務請求的任務中各子任務的資源請求包括:
根據得到的用戶的身份信息,對用戶進行身份驗證;
身份驗證通過后,對得到的用戶所申請的資源信息進行分析,得到所述服務請求的任務中各子任務的資源請求。
進一步地,在身份驗證通過后,對得到的用戶所申請的資源信息進行分析,得到所述服務請求的任務中各子任務的資源請求之后,所述方法還包括:
分析每個子任務的資源請求的相關參數,并結合云數據中心中可用資源總量判斷是否可以完成用戶提交的所述服務請求;
若能完成用戶提交的所述服務請求,則執行根據各子任務的資源請求及認知環感知到的云數據中心當前的網絡資源狀態信息和容器負載狀態信息,生成資源調度方案的步驟。
進一步地,所述根據各子任務的資源請求及認知環感知到的云數據中心當前的網絡資源狀態信息和容器負載狀態信息,生成資源調度方案包括:
通過計算狀態接口獲取認知環感知到的當前的容器負載狀態信息;
通過網絡狀態接口獲取認知環感知到的當前的網絡資源狀態信息;
根據得到的各子任務的資源請求,并結合獲取到的認知環感知到的云數據中心當前的網絡資源狀態信息和容器負載狀態信息,生成資源調度方案。
進一步地,所述根據生成的資源調度方案對各子任務進行資源調度包括:
將生成的資源調度方案發送給基礎設施管理組件,以便于所述基礎設施管理組件根據接收到的資源調度方案,通過基于容器的虛擬化技術進行容器的創建、注銷或者遷移;
將各子任務分發到相應容器上進行資源調度。
進一步地,所述通過基于容器的虛擬化技術進行容器的創建包括:
根據網絡拓撲信息將需要進行大量數據交流的容器按需創建在多個物理資源上或創建在同一物理資源上,所述大量數據交流是指容器之間的通信量超過預設閾值。
進一步地,所述通過基于容器的虛擬化技術進行容器的創建包括:
將執行同一服務請求的容器創建在網絡距離上最近的物理資源上或同一物理資源上。
進一步地,所述將各子任務分發到相應容器上進行資源調度包括:
當某子任務被分發到相應容器上后,判斷當前容器所處理的業務量是否超過預設閾值;
若超過預設閾值,則創建一個新的容器或將所述子任務分配到其他待處理業務量較少的容器上進行資源調度。
進一步地,在根據生成的資源調度方案對各子任務進行資源調度之后,所述方法還包括:
當再次獲取用戶提交的申請資源的服務請求后,基于認知環自身所具有的學習方法判斷當前的服務請求中是否有與上次相同的子任務進行資源請求分配資源;
若有,則將與上次相同的子任務分配給上次已創建容器。
本發明的上述技術方案的有益效果如下:
上述方案中,獲取用戶提交的申請資源的服務請求;對獲取的所述服務請求進行分析,得到所述服務請求的任務中各子任務的資源請求;通過認知環感知云數據中心當前的網絡資源狀態信息和容器負載狀態信息,其中,所述認知環包括:觀察、定向、決策和動作環節;根據各子任務的資源請求及認知環感知到的云數據中心當前的網絡資源狀態信息和容器負載狀態信息,生成資源調度方案,所述資源調度方案包括:為每個子任務分配容器;根據生成的資源調度方案對各子任務進行資源調度;這樣,通過各子任務的資源請求及認知環感知到的云數據中心當前的網絡資源狀態信息和容器負載狀態信息,為各子任務分配容器,根據為各子任務分配的容器對各子任務進行資源調度,實現容器的調度平衡,保證整個容器云平臺上全局的網絡流量均衡,不會形成區域性網絡資源緊張的問題,從而提高容器云平臺性能。
附圖說明
圖1為本發明實施例提供的容器云資源調度方法的流程示意圖;
圖2為本發明實施例提供的認知環的原理示意圖;
圖3為本發明實施例提供的容器云資源調度系統的結構示意圖。
具體實施方式
為使本發明要解決的技術問題、技術方案和優點更加清楚,下面將結合附圖及具體實施例進行詳細描述。
本發明針對現有的容器云資源調度分配時沒有考慮到網絡狀態信息,導致容器云平臺性能的下降的問題,提供一種容器云資源調度方法。
如圖1所示,本發明實施例提供的容器云資源調度方法,包括:
s101,獲取用戶提交的申請資源的服務請求;
s102,對獲取的所述服務請求進行分析,得到所述服務請求的任務中各子任務的資源請求;
s103,通過認知環感知云數據中心當前的網絡資源狀態信息和容器負載狀態信息,其中,所述認知環包括:觀察、定向、決策和動作環節;
s104,根據各子任務的資源請求及認知環感知到的云數據中心當前的網絡資源狀態信息和容器負載狀態信息,生成資源調度方案,所述資源調度方案包括:為每個子任務分配容器;
s105,根據生成的資源調度方案對各子任務進行資源調度。
本發明實施例所述的容器云資源調度方法,獲取用戶提交的申請資源的服務請求;對獲取的所述服務請求進行分析,得到所述服務請求的任務中各子任務的資源請求;通過認知環感知云數據中心當前的網絡資源狀態信息和容器負載狀態信息,其中,所述認知環包括:觀察、定向、決策和動作環節;根據各子任務的資源請求及認知環感知到的云數據中心當前的網絡資源狀態信息和容器負載狀態信息,生成資源調度方案,所述資源調度方案包括:為每個子任務分配容器;根據生成的資源調度方案對各子任務進行資源調度;這樣,通過各子任務的資源請求及認知環感知到的云數據中心當前的網絡資源狀態信息和容器負載狀態信息,為各子任務分配容器,根據為各子任務分配的容器對各子任務進行資源調度,實現容器的調度平衡,保證整個容器云平臺上全局的網絡流量均衡,不會形成區域性網絡資源緊張的問題,從而提高容器云平臺性能。
本實施例中,在容器云平臺中,加入認知網絡的認知環結構,將認知環功能整合到云計算資源調度中,輔助容器云資源的智能處理與分配。具體的,能夠根據各子任務的資源請求及認知環感知到的云數據中心當前的網絡資源狀態信息和容器負載狀態信息,為各子任務分配容器,從而達到資源管理的優化,提高資源的利用性和可行性,實現整個容器云平臺的全網性能優化目標。
本實施例中,所述認知環的四大環節分別是觀察(observe)、定向(orient)、決策(decide)和動作(act),通過認知環的四大環節能夠從過去的決策中學習并將其應用于未來的決策中;所述認知環還可以包括:學習環節,學習的目的是為了防止產生的錯誤內容對未來的決策造成影響;所述認知環的最大特點就是有認知能力和學習能力,所述認知環將應用于認知網絡環境中來應對過去決策和環境(所述環境可以包括但不限于:當前的網絡資源狀態信息和容器負載狀態信息),如圖2所示。
為了實現本實施例所述的容器云資源調度方法,還需一套容器云資源調度系統,如圖3所示,所述容器云資源調度系統包括:云控制器、用戶交互組件、認知環控制中心、決策中心、基礎設施管理組件,每個組件都具有各自負責的功能,互相之間又進行通信,以保證資源調度管理過程順利有序地進行。
本實施例中,認知環是認知環控制中心的核心組件,所述認知環控制中心用于收集、存儲整個云數據中心當前的網絡資源狀態信息和容器負載狀態信息。
本實施例中,所述云控制器,用于獲取用戶提交的申請資源的服務請求,對獲取的用戶提交的申請資源的服務請求進行解析,得到用戶的身份信息和用戶所申請的資源信息,將得到的用戶的身份信息和用戶所申請的資源信息發送給所述用戶交互組件。
本實施例中,所述云控制器還可以做出處理服務等級協議和維護調度系統及用戶相關的元數據。
在前述容器云資源調度方法的具體實施方式中,進一步地,
所述對獲取的所述服務請求進行分析,得到所述服務請求的任務中各子任務的資源請求包括:
根據得到的用戶的身份信息,對用戶進行身份驗證;
身份驗證通過后,對得到的用戶所申請的資源信息進行分析,得到所述服務請求的任務中各子任務的資源請求。
本實施例中,所述用戶交互組件根據接收到的用戶的身份信息對用戶進行身份驗證,身份驗證通過后,對接收到的用戶所申請的資源信息進行分析,得到所述服務請求的任務中各子任務的資源請求,并將得到的各子任務的資源請求發送至決策中心。
在前述容器云資源調度方法的具體實施方式中,進一步地,在身份驗證通過后,對得到的用戶所申請的資源信息進行分析,得到所述服務請求的任務中各子任務的資源請求之后,所述方法還包括:
分析每個子任務的資源請求的相關參數,并結合云數據中心中可用資源總量判斷是否可以完成用戶提交的所述服務請求;
若能完成用戶提交的所述服務請求,則執行根據各子任務的資源請求及認知環感知到的云數據中心當前的網絡資源狀態信息和容器負載狀態信息,生成資源調度方案的步驟。
本實施例中,所述相關參數包括:各子任務完成所需的時間,任務大小,以此來給每個子任務都設置一個優先級,然后根據所處就緒狀態的優先級順序進行任務執行。
本實施例中,決策中心接收到各子任務的資源請求后,會根據各子任務的資源請求及認知環感知到的云數據中心當前的網絡資源狀態信息和容器負載狀態信息,生成資源調度方案,從而動態調節資源調度中的不均衡問題,具體的:
決策中心通過計算狀態接口獲取認知環感知到的當前的容器負載狀態信息;
決策中心通過網絡狀態接口獲取認知環感知到的當前的網絡資源狀態信息;
決策中心根據得到的各子任務的資源請求,并結合獲取到的認知環感知到的云數據中心當前的網絡資源狀態信息和容器負載狀態信息,生成資源調度方案。
在前述容器云資源調度方法的具體實施方式中,進一步地,所述根據生成的資源調度方案對各子任務進行資源調度包括:
將生成的資源調度方案發送給基礎設施管理組件,以便于所述基礎設施管理組件根據接收到的資源調度方案,通過基于容器的虛擬化技術進行容器的創建、注銷或者遷移;
將各子任務分發到相應容器上進行資源調度。
本實施例中,所述基礎設施管理組件負責對云數據中心的集群、物理資源(例如,物理機)、虛擬資源(例如:容器)以及虛擬鏡像進行管理,包括物理資源的啟動關閉、虛擬資源的創建刪除、配置信息的修改等等。將決策中心生成的資源調度方案發送給基礎設施管理組件,當所述基礎設施管理組件接收到決策中心發出的資源調度方案時,通過基于容器的虛擬化技術進行容器的創建、注銷或者遷移,最后將各子任務分發到相應容器上,由相應容器對相應的子任務進行資源調度。
在前述容器云資源調度方法的具體實施方式中,進一步地,所述通過基于容器的虛擬化技術進行容器的創建包括:
根據網絡拓撲信息將需要進行大量數據交流的容器按需創建在多個物理資源上或創建在同一物理資源上,所述大量數據交流是指容器之間的通信量超過預設閾值。
本實施例中,根據網絡拓撲信息把需要進行大量數據交流的容器按需創建在多個物理資源上或創建在同一物理資源上,從而大大減少了數據傳輸所需要經過的網絡區域,降低了網絡流量,緩解了網絡擁堵的狀況。
在前述容器云資源調度方法的具體實施方式中,進一步地,所述通過基于容器的虛擬化技術進行容器的創建包括:
將執行同一服務請求的容器創建在網絡距離上最近的物理資源上或同一物理資源上。
本實施例中,將執行同一服務請求的容器創建在網絡距離上最近的物理資源上或同一物理資源上,從而加快了容器之間的通訊和數據交流的速度,達到提高應用速度的目的。
在前述容器云資源調度方法的具體實施方式中,進一步地,所述將各子任務分發到相應容器上進行資源調度包括:
當某子任務被分發到相應容器上后,判斷當前容器所處理的業務量是否超過預設閾值;
若超過預設閾值,則創建一個新的容器或將所述子任務分配到其他待處理業務量較少的容器上進行資源調度。
本實施例中,在各個物理資源中,容器的數量和容器的負載會隨時間不斷變化,當某子任務提交到某個容器上后,若當前容器所處理的業務量超過預設閾值,則創建一個新的容器或將所述子任務分配到其他待處理業務量較少的容器上進行資源調度。
在前述容器云資源調度方法的具體實施方式中,進一步地,所述認知環還包括:學習環節;
在根據生成的資源調度方案對各子任務進行資源調度之后,所述方法還包括:
當再次獲取用戶提交的申請資源的服務請求后,基于認知環自身所具有的學習方法判斷當前的服務請求中是否有與上次相同的子任務進行資源請求分配資源;
若有,則將與上次相同的子任務分配給上次已創建容器。
本實施例中,當云控制器再次獲取到申請資源的服務請求后,通過認知環自身所具有的學習方法判斷當前的服務請求中是否有與上次相同的子任務進行資源請求分配資源,若有,則認知環控制中心通過網絡狀態接口告知決策中心,由決策中心直接將與上次相同的子任務分配給上次已經創建好容器,而不需要再通過基礎設施管理組件創建新的容器,節省了容器資源,達到資源的優化管理。
本實施例提供的容器云資源調度方法,不僅適用于普通用戶發起的申請資源的服務請求,同樣適用于系統管理員發起的管理請求。
需要說明的是,在本文中,諸如第一和第二等之類的關系術語僅僅用來將一個實體或者操作與另一個實體或操作區分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關系或者順序。
以上所述是本發明的優選實施方式,應當指出,對于本技術領域的普通技術人員來說,在不脫離本發明所述原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應視為本發明的保護范圍。