TWI723459B - 統一資源調度協調器及其創建虛擬機和/或容器的方法、統一資源調度系統 - Google Patents

統一資源調度協調器及其創建虛擬機和/或容器的方法、統一資源調度系統 Download PDF

Info

Publication number
TWI723459B
TWI723459B TW108124482A TW108124482A TWI723459B TW I723459 B TWI723459 B TW I723459B TW 108124482 A TW108124482 A TW 108124482A TW 108124482 A TW108124482 A TW 108124482A TW I723459 B TWI723459 B TW I723459B
Authority
TW
Taiwan
Prior art keywords
container
virtual machine
node
management module
resource
Prior art date
Application number
TW108124482A
Other languages
English (en)
Other versions
TW202021328A (zh
Inventor
祖立軍
翟孟冬
袁航
呂智慧
吳金壇
何朔
Original Assignee
大陸商中國銀聯股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 大陸商中國銀聯股份有限公司 filed Critical 大陸商中國銀聯股份有限公司
Publication of TW202021328A publication Critical patent/TW202021328A/zh
Application granted granted Critical
Publication of TWI723459B publication Critical patent/TWI723459B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5011Pool
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本發明提供了一種通過統一資源調度協調器創建虛擬機和/或容器的方法,所述方法包括:接收創建所述虛擬機和/或所述容器的指令,其中所述指令包括所述虛擬機和/或所述容器的參數;根據所述參數從物理節點中選擇出第一計算節點;根據所要創建的類型,將所述參數和所述第一節點的信息相應地發送給虛擬機管理模塊和/或容器管理模塊;在所述虛擬機和/或所述容器創建完成後,從所述虛擬機管理模塊和/或所述容器管理模塊接收資源分配情況;以及在記錄資源變化情況後,將所述資源分配情況同步給所述容器管理模塊和/或所述虛擬機管理模塊。本發明還提供了一種統一資源調度協調器、統一資源調度系統以及計算機存儲媒體。

Description

統一資源調度協調器及其創建虛擬機和/或容器的方法、統一資源調度系統
本發明涉及雲計算技術,特別地,涉及統一資源調度協調器及其創建虛擬機和/或容器的方法、統一資源調度系統以及計算機存儲媒體。
雲計算是一種按使用量付費的模式,這種模式提供可用的、便捷的、按需的網路訪問,進入可配置的計算資源共享池,(資源包括網路、服務器、存儲、應用軟件、服務),這些資源能夠被快速提供,需要投入很少的管理工作,或與服務供應商進行很少的交互。 虛擬化是雲計算構建資源池的一個主要方式。所謂虛擬化,是通過軟件手段對計算機硬件資源鏡像整合管理和再分配的一種技術。常用的手段有基於虛擬機的虛擬化和基於容器的虛擬化。 在現有的大數據應用部署虛擬機方案中,虛擬機與容器物理資源池相互獨立,分別單獨調度,例如虛擬機由OpenStack管理,容器由K8S管理,兩大開源平臺直接部署操作物理機。這樣,虛擬機與容器的物理機資源池不能複用,同時網路、存儲共享打通存在跨域瓶頸,管理複雜。也有現有方案提出將容器作為PaaS的支撐,將容器運行於虛擬機內。在該現有方案中,虛擬機與容器物理資源池仍分別單獨調度,例如虛擬機由OpenStack管理,容器由K8S管理,導致虛擬機與容器之間的網路、存儲共享打通存在瓶頸,管理複雜。 以上公開於本發明背景部分的信息僅僅旨在增加對本發明的總體背景的理解,而不應當被視為承認或以任何形式暗示該信息構成已為本領域一般技術人員所公知的現有技術。
鑒於此,根據本發明的一個方面,提供了一種通過統一資源調度協調器創建虛擬機和/或容器的方法,所述方法包括:接收創建所述虛擬機和/或所述容器的指令,其中所述指令包括所述虛擬機和/或所述容器的參數;根據所述參數從物理節點中選擇出第一計算節點;根據所要創建的類型,將所述參數和所述第一節點的信息相應地發送給虛擬機管理模塊和/或容器管理模塊,使得所述虛擬機管理模塊通過所述第一計算節點上的虛擬機管理代理模塊為所述虛擬機分配計算資源和/或使得所述容器管理模塊通過所述第一計算節點上的容器管理代理模塊為所述容器分配計算資源;在所述虛擬機和/或所述容器創建完成後,從所述虛擬機管理模塊和/或所述容器管理模塊接收資源分配情況;以及在記錄資源變化情況後,將所述資源分配情況同步給所述容器管理模塊和/或所述虛擬機管理模塊。 通過統一資源調度協調器創建虛擬機和/或容器,可將容器和虛擬機運行於同一物理機資源,使得融合調度管理成為可能。 在上述方法中,所述虛擬機和/或所述容器的參數包括所述虛擬機和/或所述容器的資源需求情況和計算資源使用方式。 在上述方法中,根據所述參數從物理節點中選擇出第一計算節點包括:根據所述虛擬機和/或所述容器的資源需求情況和計算資源使用方式,使用就近窗口查詢方法選出滿足要求的第一計算節點。 在上述方法中,根據所述虛擬機和/或所述容器的資源需求情況和計算資源使用方式,使用就近窗口查詢方法選出滿足要求的第一計算節點包括:設置一列表,其中每一個物理節點在所述列表中有唯一編號,所述物理節點包含一個或多個非統一內存訪問架構NUMA節點及可用磁盤容量,所述NUMA節點包含該節點可用的計算資源信息;獲取在所述列表中的當前窗口位置(i,i+k-1),其中i為窗口開始位置編號,k為窗口長度,(i,i+k-1)表示窗口為從編號i到編號i+k的一組物理節點;對所述當前窗口位置內的物理節點進行判斷,確定是否存在滿足容器和/或虛擬機對物理資源的需求的節點;若存在,則返回滿足需求的節點的編號j,並將窗口向後移動,新的窗口變為(j+1,j+k);以及若不存在,則將窗口向後移動,新的窗口為(i+k,i+2k-1),並判斷i是否在該新的窗口中,若是,則確定所有節點都不滿足要求。 可選地,所述方法還包括:確定專用模式NUMA節點數量占比高於第一閾值且NUMA節點利用率低於第二閾值;以及從共享模式NUMA節點中隨機選出一定數量的NUMA節點,對於從所選出的NUMA節點上分配資源的容器和/或虛擬機,將其資源使用方式修改為專用,並重新進行調度,其中選出的NUMA節點的數量在所有NUMA節點中的占比與第三閾值相對應。 在上述方法中,所述第一閾值、所述第二閾值以及所述第三閾值都為50%。 可選地,所述方法還包括:在使用就近窗口查詢方法未能找到滿足要求的計算節點時,遍歷各個計算節點並統計在各個計算節點上專用模式的NUMA節點的可用資源;根據所要創建的所述虛擬機和/或所述容器的需求,分配合適的計算節點;以及在所述合適的計算節點上,重新調度資源。 在上述方法中,所分配的資源包括計算、網路以及存儲資源。 根據本發明的另一個方面,提供了一種統一資源調度協調器,所述統一資源調度協調器包括:第一接收單元,用於接收創建所述虛擬機和/或所述容器的指令,其中所述指令包括所述虛擬機和/或所述容器的參數;選擇單元,用於根據所述參數從物理節點中選擇出第一計算節點;第一發送單元,用於根據所要創建的類型,將所述參數和所述第一節點的信息相應地發送給虛擬機管理模塊和/或容器管理模塊,使得所述虛擬機管理模塊通過所述第一計算節點上的虛擬機管理代理模塊為所述虛擬機分配計算資源和/或使得所述容器管理模塊通過所述第一計算節點上的容器管理代理模塊為所述容器分配計算資源;第二接收單元,用於在所述虛擬機和/或所述容器創建完成後,從所述虛擬機管理模塊和/或所述容器管理模塊接收資源分配情況;以及同步單元,用於在記錄資源變化情況後,將所述資源分配情況同步給所述容器管理模塊和/或所述虛擬機管理模塊。 在上述統一資源調度協調器中,所述虛擬機和/或所述容器的參數包括所述虛擬機和/或所述容器的資源需求情況和計算資源使用方式。 在上述統一資源調度協調器中,所述選擇單元配置成根據所述虛擬機和/或所述容器的資源需求情況和計算資源使用方式,使用就近窗口查詢方法選出滿足要求的第一計算節點。 在上述統一資源調度協調器中,所述選擇單元包括:存儲子單元,用於存儲一列表,其中每一個物理節點在所述列表中有唯一編號,所述物理節點包含一個或多個非統一內存訪問架構NUMA節點及可用磁盤容量,所述NUMA節點包含該節點可用的計算資源信息;獲取在所述列表中的當前窗口位置(i,i+k-1),其中i為窗口開始位置編號,k為窗口長度,(i,i+k-1)表示窗口為從編號i到編號i+k的一組物理節點;判斷子單元,用於對所述當前窗口位置內的物理節點進行判斷,確定是否存在滿足容器和/或虛擬機對物理資源的需求的節點;處理子單元,用於在存在的情況下返回滿足需求的節點的編號j,並將窗口向後移動,新的窗口變為(j+1,j+k);以及在不存在的情況下將窗口向後移動,新的窗口為(i+k,i+2k-1),並同時判斷i是否在該新的窗口中,若是,則確定所有節點都不滿足要求。 可選地,所述統一資源調度協調器還包括:確定單元,用於確定專用模式NUMA節點數量占比高於第一閾值且NUMA節點利用率低於第二閾值;修改單元,用於從共享模式NUMA節點中隨機選出一定數量的NUMA節點,對於從所選出的NUMA節點上分配資源的容器和/或虛擬機,將其資源使用方式修改為專用,並重新進行調度,其中選出的NUMA節點的數量在所有NUMA節點中的占比與第三閾值相對應。 在上述統一資源調度協調器中,所述第一閾值、所述第二閾值以及所述第三閾值都為50%。 可選地,所述統一資源調度協調器還包括:遍歷統計單元,用於在使用就近窗口查詢方法未能找到滿足要求的計算節點時,遍歷各個計算節點並統計在各個計算節點上專用模式的NUMA節點的可用資源;分配單元,用於根據所要創建的所述虛擬機和/或所述容器的需求,分配合適的計算節點;以及調度單元,用於在所述合適的計算節點上,重新調度資源。 在上述統一資源調度協調器中,所分配的資源包括計算、網路以及存儲資源。 根據本發明的又一個方面,提供了一種統一資源調度系統,包括如前所述的統一資源調度協調器。 可選地,所述系統還包括:容器管理模塊,用於為容器分配CPU和內存資源。 可選地,所述系統還包括:容器網路代理模塊,用於接收來自容器管理模塊的網路資源請求,將請求的資源模型從容器網路模型修改為第一網路模型,轉發包含所述第一網路模型的修改的網路資源請求並最終獲取網路資源。 在上述系統中,所述第一網路模型為Openstack neutron網路模型。 根據本發明的又一個方面,提供了一種計算機存儲媒體,包括指令,所述指令在運行時執行如前所述的方法。 本發明的技術方案提供了在同一物理資源池容器與虛擬機計算融合運行框架,使得可實現通過動態軟硬件環境自動配置實現不同計算力的融合運行。另外,本發明的技術方案允許網路、存儲處於統一管理調度,例如容器與虛擬機的網路資源可以處於同一租戶網路的同一網段、容器與虛擬機可以共同使用相同的存儲資源池。 通過納入本文的圖式以及隨後與圖式一起用於說明本發明的某些原理的具體實施方式,本發明的方法和裝置所具有的其它特徵和優點將更為具體地變得清楚或得以闡明。
以下說明描述了本發明的特定實施方式以教導本領域技術人員如何製造和使用本發明的最佳模式。為了教導發明原理,已簡化或省略了一些常規方面。本領域技術人員應該理解源自這些實施方式的變型將落在本發明的範圍內。本領域技術人員應該理解下述特徵能夠以各種方式接合以形成本發明的多個變型。由此,本發明並不局限於下述特定實施方式,而僅由申請專利範圍和它們的等同物限定。 在本發明的上下文中,術語NUMA是Non Uniform Memory Access Architecture的縮寫,即非統一內存訪問架構。NUMA是一種為多處理器的計算機設計的內存,內存訪問時間取決於內存相對於處理器的位置。在NUMA下,處理器訪問它自己的本地內存的速度比非本地內存(內存位於另一個處理器,或者是處理器之間共享的內存)快一些。 在本發明的上下文中,REST全稱是Representational State Transfer,中文意思是表述性狀態轉移。REST指的是一組架構約束條件和原則。如果一個架構符合REST的約束條件和原則,我們就稱它為RESTful架構。因此,在本發明的上下文中,RESTful API表示符合REST的約束條件和原則的應用程序接口。 本專利的發明人在大數據應用部署虛擬機內容的工作中發現,隨著雲計算技術深化應用,虛擬機、大數據、容器的資源池融合調度將成為趨勢,然而當前包括銀聯在內的金融機構以及其他雲服務商主要的部署模式都是獨立的物理資源池部署,即虛擬機專用一些物理機資源,大數據專用一些物理機,容器專用一些物理機資源,不同資源池之間無法實現快速切換。隨著容器技術的逐漸成熟,其應用也將趨為廣泛,因此虛擬機與容器資源的聯合調度成為關鍵技術難點。 針對該技術難點,根據本發明的一個實施例,提供了通過統一資源調度協調器創建虛擬機和/或容器的方法。如圖1所示,所述方法包括:接收創建所述虛擬機和/或所述容器的指令,其中所述指令包括所述虛擬機和/或所述容器的參數;根據所述參數從物理節點中選擇出第一計算節點;根據所要創建的類型,將所述參數和所述第一節點的信息相應地發送給虛擬機管理模塊和/或容器管理模塊,使得所述虛擬機管理模塊通過所述第一計算節點上的虛擬機管理代理模塊為所述虛擬機分配計算資源和/或使得所述容器管理模塊通過所述第一計算節點上的容器管理代理模塊為所述容器分配計算資源;在所述虛擬機和/或所述容器創建完成後,從所述虛擬機管理模塊和/或所述容器管理模塊接收資源分配情況;以及在記錄資源變化情況後,將所述資源分配情況同步給所述容器管理模塊和/或所述虛擬機管理模塊。 圖2是表示本發明的一個實施例的統一資源調度協調器2000的結構圖。如圖2所示,統一資源調度協調器2000包括第一接收單元210、選擇單元220、第一發送單元230、第二接收單元240以及同步單元250。其中,第一接收單元210用於接收創建所述虛擬機和/或所述容器的指令,其中所述指令包括所述虛擬機和/或所述容器的參數;選擇單元220用於根據所述參數從物理節點中選擇出第一計算節點;第一發送單元230用於根據所要創建的類型,將所述參數和所述第一節點的信息相應地發送給虛擬機管理模塊和/或容器管理模塊,使得所述虛擬機管理模塊通過所述第一計算節點上的虛擬機管理代理模塊為所述虛擬機分配計算資源和/或使得所述容器管理模塊通過所述第一計算節點上的容器管理代理模塊為所述容器分配計算資源;第二接收單元240用於在所述虛擬機和/或所述容器創建完成後,從所述虛擬機管理模塊和/或所述容器管理模塊接收資源分配情況;以及同步單元250用於在記錄資源變化情況後,將所述資源分配情況同步給所述容器管理模塊和/或所述虛擬機管理模塊。 圖3是表示本發明的一個實施例的統一資源調度系統。如圖3所示,統一資源調度系統包括雲統一界面、統一資源調度協調器、虛擬機管理模塊、容器管理模塊、容器網路代理模塊、存儲管理模塊、鏡像管理模塊以及網路管理模塊。 在一個實施例中,雲統一界面負責對接用戶與統一資源調度協調器,在創建開始前,用戶通過雲統一界面指定容器/虛擬機的各項參數,包括CPU數量、內存大小、磁盤大小、網路接入、使用的鏡像、計算資源使用方式等。用戶下達容器/虛擬機創建指令後,雲統一界面將容器/虛擬機參數以Json格式進行封裝,然後調用統一資源調度協調器的RESTful API將容器/虛擬機的信息發送給統一資源調度協調器。 在一個實施例中,統一資源調度協調器收到創建請求後,根據容器/虛擬機的資源需求情況和計算資源使用方式,使用調度算法從物理節點中選出一個滿足容器/虛擬機要求的物理節點。如果創建的是容器,那麼統一資源調度協調器調用容器管理模塊的RESTful API將容器參數和物理節點信息傳遞給容器管理模塊;如果創建的是虛擬機,那麼統一資源調度協調器調用虛擬機管理模塊的RESTful API將虛擬機參數和物理節點信息傳遞給虛擬機管理模塊。 在一個實施例中,容器管理模塊收到創建請求後,從鏡像管理模塊獲得容器鏡像,根據容器對計算資源的使用類型獲取物理節點上的CPU和內存,通過存儲管理模塊或docker driver獲取存儲資源,通過容器網路代理模塊獲取網路資源,最後通過docker driver完成容器的創建,並調用統一資源調度協調器的RESTful API將資源消耗情況通告給統一資源調度協調器。 在一個實施例中,容器網路代理模塊將容器對網路資源的請求轉換為OpenStack網路資源請求,並將請求發給網路管理模塊,網路管理模塊根據請求從網路資源池中分配網路資源,如ip地址、mac地址、端口等,並將分配的資源返回給容器網路代理模塊,容器網路代理模塊收到資源信息後,將網路資源分配結果返回給容器管理模塊。 在一個實施例中,虛擬機管理模塊收到創建請求後,從鏡像管理模塊獲得容器鏡像,根據虛擬機對計算資源的使用類型獲取物理節點上的CPU和內存,通過存儲管理模塊或libvirt driver獲取存儲資源,通過網路管理模塊獲取網路資源,最後通過libvirt driver完成虛擬機的創建,並調用統一資源調度協調器的RESTful API將資源消耗情況通告給統一資源調度協調器。 在一個實施例中,容器管理模塊/虛擬機管理模塊在獲取存儲資源時,可以通過兩種途徑。一種是獲取物理節點上的存儲資源,即本地存儲資源,容器管理模塊通過docker driver,虛擬機管理模塊通過libvirt driver可以實現本地存儲資源的獲取,這種情況下在容器管理模塊/虛擬機管理模塊向統一資源調度協調器通告資源消耗情況時,應包含存儲資源消耗情況。另一種是容器管理模塊/虛擬機管理模塊通過存儲管理模塊獲取存儲資源。作為示例,存儲管理模塊可以為OpenStack Cinder,容器管理模塊/虛擬機管理模塊通過調用Cinder的RESTful API獲取分布式存儲資源,這種情況下由Cinder向統一資源調度協調器通告存儲資源消耗情況。 需要指出的是,本領域技術人員容易理解,存儲資源可以不通過Cinder進行存儲調度。例如,通過為容器掛載本地目錄,並由統一資源調度協調器進行記錄管理,也可以實現存儲資源的統一調度。 在一個實施例中,統一資源調度協調器收到容器管理模塊發送的資源消耗信息後,進行資源池中資源信息的更新,並將容器的資源消耗情況通告給虛擬機管理模塊,虛擬機管理模塊在收到信息後進行資源消耗情況的記錄。同樣的,統一資源調度協調器收到虛擬機管理模塊發送的資源消耗信息後,進行資源池中資源信息的更新,並將虛擬機的資源消耗情況通告給容器管理模塊,容器管理模塊在收到信息後進行資源消耗情況的記錄。 在一個實施例中,在容器和虛擬機刪除時,統一資源調度協調器將容器和虛擬機佔用的資源進行回收,即資源分配與創建過程相反,資源的變化情況也應同步給統一資源調度協調器。 在一個實施例中,利用統一資源調度系統創建容器/虛擬機的步驟如下所示。 首先,雲統一界面通過調用統一資源調度協調器的RESTful API,將以Json格式封裝好的參數發送給統一資源調度協調器,完成創建容器/虛擬機指令的發送。 其次,統一資源調度協調器收到創建指令後,根據資源分配類型,使用就近窗口查詢方法選出一個滿足要求的計算節點。 接著,統一資源調度協調器判斷創建的類型,如果要創建容器,則將創建參數封裝成Json並調用容器管理模塊的RESTful API發送給容器管理模塊;如果要創建虛擬機,則將創建參數封裝成Json並調用虛擬機管理模塊的RESTful API發送給虛擬機管理模塊。 然後,容器管理模塊收到創建請求後,將請求通過RPC技術轉發給步驟S2中選出的計算節點上的容器管理代理模塊,容器管理代理模塊為容器分配計算資源,包括CPU和內存,並通過容器網路代理模塊獲取網路資源,通過存儲管理模塊獲取磁盤資源,最終完成容器的創建。 在一個實施例中,容器管理模塊為OpenStack Zun;虛擬機管理模塊收到創建請求後,將請求通過RPC技術轉發給選出的計算節點上的虛擬機管理代理模塊,虛擬機管理代理模塊為虛擬機分配計算資源,包括CPU和內存,並通過網路管理模塊獲取網路資源,通過存儲管理模塊獲取磁盤資源,最終完成虛擬機的創建。在一個實施例中,虛擬機管理模塊為OpenStack Nova,容器網路代理模塊為OpenStack kuryr,網路管理模塊為OpenStack neutron,存儲管理模塊為OpenStack Cinder。 最後,容器管理模塊完成容器的創建後將資源分配情況以Json格式封裝後通過調用統一資源調度協調器的RESTful API告知統一資源調度協調器,統一資源調度協調器記錄資源變化情況後調用虛擬機管理模塊的RESTful API將資源使用情況同步給虛擬機管理模塊;虛擬機管理模塊完成虛擬機的創建後將資源分配情況以Json格式封裝後通過調用統一資源調度協調器的RESTful API告知統一資源調度協調器,統一資源調度協調器記錄資源變化情況後調用容器管理模塊的RESTful API將資源使用情況同步給容器管理模塊。 圖4是表示本發明的一個實施例的就近窗口查詢方法的流程圖。物理節點以線性列表的形式進行存儲,每一個物理節點在列表中有唯一編號,物理節點包含一個或多個NUMA節點及可用磁盤容量,NUMA節點包含該節點可用CPU數量、可用內存數量等計算資源信息。如圖4所示,就近窗口查詢方法包括如下步驟: S1:統一資源調度協調器獲取當前的窗口位置(i,i+k-1),i為窗口開始位置編號,k為窗口長度,(i,i+k-1)表示窗口為從編號i到編號i+k的一組物理節點。 S2:對窗口內的物理節點進行判斷,是否存在滿足容器/虛擬機對物理資源的需求。若存在則執行步驟S3,若不存在則執行步驟S4。 S3:返回滿足需求的計算節點的編號j,將窗口向後移動,新的窗口變為(j+1,j+k)。 S4:窗口向後移動,新的窗口為(i+k,i+2k-1),判斷i是否在該窗口中,如果在則說明所有節點都不滿足要求,返回False;如果不在則執行S2。 圖5示出了圖4的就近窗口查詢方法中所述判斷物理節點是否滿足需求的方法步驟。具體如下: S1:判斷容器/虛擬機需要的磁盤資源是否能滿足。如果容器/虛擬機需要本地磁盤,則判斷物理節點上的可用磁盤空間是否足夠,如果容器/虛擬機需要分布式存儲資源,則通過調用OpenStack Cinder的RESTful API來判斷分布式存儲資源是否足夠。如果能夠滿足容器/虛擬機需要的磁盤資源,則進入步驟S2,否則返回False。 S2:判斷容器/虛擬機對計算資源的使用方式是什麼。容器/虛擬機對計算資源的使用方式分為兩種,一種為共享模式,一種為專用模式,如果使用方式為共享模式,則進入步驟S3,如果使用方式為專用模式,則進入步驟S6。 S3:共享模式下CPU可進行超配,如果物理節點上存在一種NUMA節點,從這種NUMA節點上分配資源的容器/虛擬機都是以共享方式使用資源,則進行步驟S4,反之返回False。 S4:如果創建的類型是虛擬機,則對於物理節點上的每一個步驟S3中描述的NUMA節點,判斷其CPU、內存剩餘量的和是否滿足虛擬機的需求,如果滿足則返回True,反之返回False;如果創建的類型是容器,則對於物理節點上的每一個步驟S3中描述的NUMA節點,判斷其CPU、內存剩餘量的和是否滿足容器的需求,如果滿足則返回True,反正返回False。對於容器存在一種特殊情況,即容器沒有CPU或內存的需求,對於這種情況進行步驟S5。 S5:遍歷物理節點上所有的NUMA節點,如果存在一種NUMA節點,從這種NUMA節點上分配資源的容器沒有CPU或內存需求,且沒有虛擬機從上面分配資源,則返回True,否則返回False。 S6:專用模式下CPU不可超配,如果物理節點上存在一種NUMA節點,從這種NUMA節點上分配資源的容器/虛擬機都是以專用方式使用資源,則進行步驟S7,反之返回False。 S7:判斷S6中描述的NUMA節點上可用CPU和內存是否大於容器/虛擬機的需求,如果大於則返回True,反之返回False。 圖6示出了容器/虛擬機創建步驟中所述容器管理模塊為容器分配CPU和內存的方法步驟。具體如下: S1:判斷容器對計算資源的使用策略,如果是專用模式,執行步驟S2,如果是共享模式,執行步驟S3。 S2:在物理節點上尋找判斷物理節點是否滿足需求步驟S6中描述的NUMA節點,容器需要i個vcpu和kG內存,從該NUMA節點可用CPU編號中隨機選出i個vcpu以及kG內存,調用docker api分配給容器。 S3:判斷容器是否對CPU或內存沒有要求,如果有則進行步驟S4,反之進行步驟S5。 S4:在物理節點上尋找判斷物理節點是否滿足需求步驟S3中描述的NUMA節點,容器需要i個vcpu和kG內存,從這類NUMA節點可用CPU編號中隨機選出i個vcpu以及kG內存,調用docker api分配給容器。 S5:直接調用docker api創建容器,無需指定具體的CPU和內存情況。 圖7示出了容器/虛擬機創建步驟中所述通過容器網路代理模塊獲取網路資源的方法步驟。具體如下: S1:容器管理模塊將容器的網路資源請求,包括子網、ip地址、mac地址等參數,這些參數被封裝成Json通過RPC技術發送給容器網路代理模塊。 S2:容器網路代理模塊收到容器管理模塊的網路資源請求後,將請求的資源模型從容器網路模型改為OpenStack neutron網路模型,並將轉變後的網路資源請求通過網路管理模塊的RESTful API發送給網路管理模塊。 S3:網路管理模塊收到網路資源請求後,從網路資源池中分配可用網路資源,如ip地址、mac地址等,並生成相應的虛擬網路設備,如veth pair等,並將資源分配結果返回給容器網路代理模塊。 S4:容器網路代理模塊收到網路管理模塊neutron返回的資源信息後,將資源信息轉換為容器網路模型,並將轉換後的信息返回給容器管理模塊。 圖8示出了容器/虛擬機創建步驟中所述通過存儲管理模塊獲取磁盤資源的方法步驟。具體如下: S1:判斷容器/虛擬機需要的是本地存儲資源還是分布式存儲資源,如果是本地存儲資源,則執行步驟S2,如果是分布式存儲資源,則執行S5。 S2:判斷是容器還是虛擬機請求存儲資源,如果是容器則執行步驟S3,如果是虛擬機則執行步驟S4。 S3:容器管理模塊調用docker driver獲取本地存儲資源,並將存儲資源消耗信息加入發送給統一資源調度協調器的資源消耗信息中。 S4:虛擬機管理模塊調用libvirt driver獲取本地存儲資源,並將存儲資源消耗信息加入發送給統一資源調度協調器的資源消耗信息中。 S5:容器管理模塊/虛擬機管理模塊將對存儲資源的請求封裝成Json,通過調用存儲管理模塊的RESTful API將存儲請求發送給存儲管理模塊,存儲管理模塊根據資源請求從分布式存儲資源池中分配資源,並將分配信息發送給容器管理模塊/虛擬機管理模塊,此外,還要將存儲資源消耗情況同步給統一資源調度協調器。 圖9示出了容器獲取物理節點NUMA拓撲的方法步驟。具體如下: S1:調用Linux內核接口numactl獲取物理節點的NUMA信息。 S2:構造NUMA拓撲模型,採用key-value結構表示。NUMA拓撲包含多個NUMA節點,NUMA節點模型採用key-value結構,包括CPU編號、已用CPU編號、內存總量、內存可用量。 S3:從NUMA信息中獲取NUMA節點的CPU編號和內存總量,完成NUMA拓撲變量的賦值,已用CPU編號初始為空,內存可用量初始等於內存總量。 圖10示出了統一資源調度系統為減少因專用資源分配導致過多資源碎片而執行的方法步驟。具體如下: S1:遍歷所有NUMA節點,統計為採用專用模式容器/虛擬機分配計算資源的NUMA節點數量i,NUMA節點總量為sum,專用模式NUMA節點數量占比為i/sum。對於每一個NUMA節點,可用CPU數量為icpu ,CPU總量為sumcpu ,可用內存量為imem ,內存總量為summem ,NUMA節點利用率為(icpu /sumcpu +imem /summem )/2。 S2:判斷專用模式NUMA節點數量占比是否高於50%且NUMA節點利用率是否低於50%,如果是執行步驟S3,反之執行步驟S1。 S3:遍歷所有NUMA節點,找出所有為共享模式容器/虛擬機分配計算資源的NUMA節點,組成NUMA節點列表,從中隨機選出一半NUMA節點,遍歷從這些NUMA節點上分配計算資源的容器/虛擬機,對於每一個容器/虛擬機,將其資源使用方式改為專用,並通過統一資源調度協調器重新進行調度。 圖11是表示本發明的一個實施例的減少因專用資源分配導致過多資源碎片的方法流程圖。具體如下: S1:遍歷所有NUMA節點,統計為採用專用模式容器/虛擬機分配計算資源的NUMA節點數量i,NUMA節點總量為sum,專用模式NUMA節點數量占比為i/sum。對於每一個NUMA節點,可用CPU數量為icpu ,CPU總量為sumcpu ,可用內存量為imem ,內存總量為summem ,NUMA節點利用率為(icpu /sumcpu +imem /summem )/2。 S2:判斷專用模式NUMA節點數量占比是否高於50%且NUMA節點利用率是否低於50%,如果是執行步驟S3,反之執行步驟S1。 S3:遍歷所有NUMA節點,找出所有為共享模式容器/虛擬機分配計算資源的NUMA節點,組成NUMA節點列表,從中隨機選出一半NUMA節點,遍歷從這些NUMA節點上分配資源的容器/虛擬機,對於每一個容器/虛擬機,按照專用模式從計算節點中找到一個滿足要求的計算節點,並判斷新找到的計算節點與容器/虛擬機原來所在的計算節點是否為同一計算節點,若是,則執行S4,若不是則執行S5。 S4:容器/虛擬機在原計算節點上以專用模式進行資源分配。 S5:使用熱遷移技術將容器/虛擬機從原計算節點遷移至新找到的計算節點,並以專用模式進行資源分配。 舉例來說,參考圖12,假設雲平臺已滿足專用模式NUMA節點占比超過50%且平均利用率低於50%,其中計算節點1上的NUAM節點1和NUMA節點2是兩個專用模式的NUMA節點,NUMA節點1上的可用CPU個數為1,可用內存為2G,NUMA節點2上的可用CPU個數為2,可用內存為8G,計算節點1上有共享模式容器1,使用了NUMA節點3上的1個CPU和1G內存;計算節點2上有共享模式容器2,使用了NUMA節點4上的1個CPU和1G內存,以及NUMA節點5上的1個CPU和2G內存。 在工作過程中,首先將容器1改為專用模式,並使用就近窗口查詢方法遍歷所有專用模式的NUMA節點,發現計算節點1上的NUMA節點1滿足容器1的需求,從NUMA節點1上為容器1分配資源,並從NUMA節點3上回收相應資源。然後將容器2改為專用模式,並使用就近窗口查詢方法遍歷所有專用模式的NUMA節點,發現計算節點1上的NUMA節點2滿足容器2的需求,將容器2從計算節點2熱遷移至計算節點1,並從NUMA節點2上為容器2分配資源。 結束後兩個計算節點的資源使用情況如圖13所示。此時容器1以專用模式從NUMA節點1上分配資源,消耗掉了NUMA節點1上的1個CPU和1G內存;容器2以專用模式從NUMA節點2上分配資源,消耗掉了NUMA節點2上的2個CPU和3G內存,實現了碎片空間的減少。 圖14是表示本發明的另一個實施例的減少因專用資源分配導致過多資源碎片的方法流程圖。特別地,圖14中示出的減少資源碎片的方法主要針對未找到符合要求計算節點的情形。具體如下: S1:創建共享模式的容器/虛擬機,如果沒有找到滿足要求的計算節點則執行S2,反之則按正常流程在找到的計算節點上為容器/虛擬機分配資源。 S2:使用就近窗口查詢方法遍歷所有計算節點,對於每一個計算節點上專用模式的NUMA節點,memi 表示NUMA節點i的可用內存量,cpui 表示NUMA節點i的可用CPU個數,
Figure 02_image001
表示計算節點上專用模式NUMA節點的可用內存總量,
Figure 02_image003
表示計算節點上專用模式NUMA節點的可用cpu總數,n為計算節點上專用模式NUMA節點的數量。如果找到計算節點滿足
Figure 02_image005
大於容器/虛擬機需要的內存且
Figure 02_image007
大於容器/虛擬機需要的CPU個數,則執行S3,否則認為所有計算節點都沒有足夠的資源可用。 S3:在找到的計算節點上,從專用模式NUMA節點上為容器/虛擬機分配資源。 舉例來說,計算節點1中NUMA節點1和NUMA節點2上均運行的是專用模式的容器/虛擬機,NUMA節點1上可用的CPU個數為2,可用內存為2G,NUMA節點2上可用的CPU個數為2,可用內存為4G。現需要創建一共享模式的容器,該容器需要4個CPU和4G內存,假設通過就近窗口查詢方法未能找到滿足要求的計算節點,則再次遍歷計算節點,統計其專用模式的NUMA節點上可用CPU個數和可用內存總數,發現計算節點1中NUMA節點1和NUMA節點2的可用CPU總數為4,可用內存總數為6G,滿足容器的需求,認為計算節點1符合要求,將容器分配至計算節點1進行資源分配。在分配後,NUMA節點1為容器提供了2個CPU,NUMA節點2為容器提供了2個CPU和4G內存,實現了碎片空間的減少。 需要指出的是,圖11和圖14 的方法是針對不同情況的碎片優化方法,因此本領域技術人員可以理解,上述方法可同時使用,並不會導致衝突。 下面以具體實例來進行說明。 例1:我們假設計算節點1有兩個NUMA節點,分別為NUMA節點0和NUMA節點1,每個NUAM節點有4個CPU和32G內存,磁盤可用空間為100G,並且當前沒有容器或虛擬機,創建的容器需要2個CPU,16G內存,10G volume磁盤,計算資源使用方式為專用,連接的網路為net1。 雲統一界面發出創建容器的指令後,統一資源調度協調器接受到該指令,從指令中獲取容器的CPU要求為2個,內存需要16G,硬盤需要10G,類型為volume,需要連接的網路為net1,協調器根據這些信息進行篩選,發現計算節點1滿足要求,將計算節點1的信息和容器信息打包後發送給容器管理。在計算節點1上的容器管理發現NUMA節點0中的計算資源符合容器的要求,從中隨機選出2個CPU,假設選中的CPU編號為0和1,將NUMA節點0的已用CPU中加入編號0和1,可用內存減去16G。然後將存儲資源信息發送給存儲管理,存儲管理生成一個大小為10G的volume,返回給容器管理,並將該信息同步給統一資源調度協調器,協調器中計算節點1的可用存儲空間減少10G。然後將網路信息發送給容器網路代理,網路代理將容器網路請求轉換為OpenStack neutron網路請求,發送給網路管理,網路管理從net1中分配合適的IP地址、mac地址、端口等網路資源給容器管理,容器管理據此完成容器的網路模塊創建。創建完成後,將容器的CPU、內存消耗情況同步給統一資源調度協調器,統一資源調度協調器將計算節點1中的NUMA節點0可用CPU數量減2,可用內存減去16G。 例2:我們假設計算節點1有兩個NUMA節點,分別為NUMA節點0和NUMA節點1,每個NUAM節點有4個CPU和32G內存,磁盤可用空間為100G,並且當前沒有容器或虛擬機,創建的虛擬機需要6個CPU,16G內存,10G本地磁盤,計算資源使用方式為共享,連接的網路為net1。 雲統一界面發出創建容器的指令後,統一資源調度協調器接受到該指令,從指令中獲取虛擬機的CPU要求為6個,內存需要16G,硬盤需要10G,類型為本地存儲,需要連接的網路為net1,協調器根據這些信息進行篩選,發現計算節點1滿足要求,將計算節點1的信息和虛擬機信息打包後發送給虛擬機管理。在計算節點1上的虛擬機管理發現NUMA節點0和NUMA節點1中的計算資源和符合虛擬機的要求,從中隨機選出6個CPU,假設選中的CPU編號為0、1、2、3、6、7,將NUMA節點0的已用CPU中加入編號0、1、2、3,可用內存減去16G,將NUMA節點1的已用CPU中加入編號6、7。之後調用libvirt driver獲取大小為10G的本地磁盤空間。然後將網路信息發送給網路管理,網路管理從net1中分配合適的IP地址、mac地址、端口等網路資源給虛擬機管理。虛擬機管理依據上述獲取的資源完成虛擬機的創建,並將資源消耗信息同步給統一資源調度協調器,統一資源調度協調器將計算節點1的NUMA節點0可用CPU數量減4,可用內存減去16G,NUMA節點1可用CPU數量減去2,計算節點1上可用磁盤空間減去10G。 例3:我們假設計算節點1有兩個NUMA節點,分別為NUMA節點0和NUMA節點1,每個NUAM節點有4個CPU和32G內存,磁盤可用空間為60G,NUMA節點0的可用CPU數量為3,可用內存為18G,NUMA節點1的可用CPU數量為2,可用內存為16G,計算節點1上有一個容器,一個虛擬機,容器從NUMA節點0上分配計算資源,資源使用方式為專用,虛擬機從NUMA節點1上分配計算資源,資源使用方式為共享;計算節點2有兩個NUMA節點,分別為NUMA節點0和NUMA節點1,每個NUAM節點有4個CPU和32G內存,磁盤可用空間為100G,並且當前沒有容器或虛擬機,創建的虛擬機需要3個CPU,40G內存,40G本地磁盤,計算資源使用方式為共享,連接的網路為net1。 雲統一界面發出創建容器的指令後,統一資源調度協調器接受到該指令,從指令中獲取虛擬機的CPU要求為3個,內存需要40G,硬盤需要40G,類型為本地存儲,需要連接的網路為net1,協調器根據這些信息進行篩選,發現計算節點1上NUMA節點0為資源使用模式為專用的容器分配計算資源,不符合要求,NUMA節點1上沒有足夠可用的CPU,仍然不符合要求,計算節點1不符合要求;計算節點2的兩個NUMA節點可用CPU數量為8,大於虛擬機需要的3,可用內存數量為64G,大於虛擬機需要的40G,可用磁盤空間為60G,大於虛擬機需要的40G,虛擬機對計算資源的使用方式為共享,可用兩個NUMA節點的資源,因此計算節點2滿足要求,統一資源調度協調器將計算節點2的信息和虛擬機信息打包後發送給虛擬機管理。在計算節點2上的虛擬機管理發現NUMA節點0和NUMA節點1中的計算資源和符合虛擬機的要求,從中隨機選出3個CPU,假設選中的CPU編號為0、1、2,將NUMA節點0的已用CPU中加入編號0、1、2,可用內存減去32G,將NUMA節點1的可用內存減去8G。之後調用libvirt driver獲取大小為40G的本地磁盤空間。然後將網路信息發送給網路管理,網路管理從net1中分配合適的IP地址、mac地址、端口等網路資源給虛擬機管理。虛擬機管理依據上述獲取的資源完成虛擬機的創建,並將資源消耗信息同步給統一資源調度協調器,統一資源調度協調器將計算節點1的NUMA節點0可用CPU數量減3,可用內存減去32G,NUMA節點1可用內存減去8G,計算節點1上可用磁盤空間減去40G。 綜上所述,本發明提出了一種容器與虛擬機計算資源融合調度的調度器。調度器記錄物理資源情況,資源種類包括CPU、內存和磁盤,並通過RESTful API與物理資源上的容器/虛擬機異構資源管理進行通信,容器/虛擬機異構資源管理在物理資源上部署的代理通過調用調度器的RESTful API將收集到的計算資源情況和資源分配情況以Key-value格式封裝後發送給調度器,調度器通過調用容器/虛擬機資源管理的RESTful API將調度信息以Key-value格式封裝後發送給容器/虛擬機異構資源管理,並與容器/虛擬機異構資源管理分配信息進行比對驗證。此外,根據資源統計得到的物力資源情況通過調度算法調度容器/虛擬機運行在合適的物理節點上,實現容器/虛擬機在相同的物理資源池上的聯合調度。 調度器依據容器/虛擬機對計算資源的使用方式不同,將資源使用方式分為共享和專用兩種類型。其中共享模式下容器/虛擬機可以使用物理節點上任意的CPU和內存,而專用模式下容器/虛擬機以NUMA節點為最小單位分配CPU和內存資源。調度器在執行調度任務時,根據資源使用模式以NUMA節點為資源分配單位為容器/虛擬機尋找合適的物理節點,被專用模式的容器/虛擬機佔用的NUMA節點將不能分配資源給共享模式的容器/虛擬機,反之亦然。 調度器在快速分配場景下,採用就近窗口查詢方法,快速查詢可用物理節點。就近窗口查詢方式如下:物理節點包含的各種資源信息以結構體的形式組合成物理節點模型,各物理節點以線性列表的形式被調度器檢索,調度器維持一個長度為K的窗口,即物理節點列表中長度為K的一段列表,每次需要進行節點選擇時,從這段列表中進行選擇,如果存在滿足要求的節點,假設在列表中的編號為i,則返回該節點編號i並將窗口向後移動,窗口範圍變成從i+1到i+k;如果在該窗口中沒有找到滿足要求的節點,則窗口向後滑動K,在新的窗口中重複上述查找操作,直到找到合適的節點或遍歷至本次選擇開始的地方為止,若找到合適的節點則返回該節點的編號,若遍歷至本次選擇開始的地方,則返回布爾值False。 當專用模式的NUMA節點數量占比超過50%且NUMA節點內的平均資源利用率低於50%時,認為出現因專用資源分配導致過多資源碎片的情況。這種情況下調度器會將50%的採用共享模式的容器/虛擬機轉為專用模式,並將這些容器/虛擬機重新進行調度,盡可能地將這些容器/虛擬機調度到採用專用模式的NUMA節點上,充分利用計算資源。 基於以上調度器, 容器/虛擬機資源管理通過調用Linux內核接口numactl獲取物理節點的NUMA拓撲信息,並以key-value形式記錄了NUMA拓撲信息的映射描述以及使用情況,調度器通過專用與共享分類方式,兼容實現CPU、內存與虛擬化資源的綁定映射與共享分時複用。 基於以上調度器,容器資源的網路分配不採用單獨管理方式,而是通過網路代理映射,以容器網路與虛擬機網路模型轉換的方式,實現容器接入虛擬機網路(例如OpenStack Neutron),從而實現處於同一租戶網路的同一網段的容器和虛擬機可以互通。容器網路模型經過網路代理映射後和虛擬機網路資源模型統一化,網路資源可實現統一管理。 基於以上調度器,對於物理機本地磁盤調度,容器資源使用本地存儲採用磁盤格式化成文件系統後的掛載模式,虛擬機採用塊設備映射模式,從而體現容器本地磁盤的掛載優勢。對於遠程網路存儲使用,統一採用存儲管理模塊統一管理。 以上例子主要說明了本發明的統一資源調度協調器及其創建虛擬機和/或容器的方法、統一資源調度系統以及計算機存儲媒體。儘管只對其中一些本發明的具體實施方式進行了描述,但是本領域普通技術人員應當瞭解,本發明可以在不偏離其主旨與範圍內以許多其他的形式實施。因此,所展示的例子與實施方式被視為示意性的而非限制性的,在不脫離如所附各申請專利範圍所定義的本發明精神及範圍的情況下,本發明可能涵蓋各種的修改與替換。
2000:統一資源調度協調器 210:第一接收單元 220:選擇單元 230:第一發送單元 240:第二接收單元 250:同步單元
圖1是表示本發明的一個實施例的容器/虛擬機創建的方法的流程圖; 圖2是表示本發明的一個實施例的統一資源調度協調器的結構圖; 圖3是表示本發明的一個實施例的統一資源調度系統; 圖4是表示本發明的一個實施例的就近窗口查詢方法的流程圖; 圖5是表示本發明的一個實施例的判斷物理節點是否滿足需求的方法的流程圖; 圖6是表示本發明的一個實施例的容器管理模塊為容器分配CPU和內存的方法流程圖; 圖7是表示本發明的一個實施例的容器網路代理模塊獲取網路資源的方法流程圖; 圖8是表示本發明的一個實施例的通過存儲管理模塊獲取磁盤資源的方法流程圖; 圖9是表示本發明的一個實施例的容器獲取物理節點NUMA拓撲的方法流程圖; 圖10是表示本發明的一個實施例的減少因專用資源分配導致過多資源碎片的方法流程圖; 圖11是表示本發明的一個實施例的減少因專用資源分配導致過多資源碎片的方法流程圖; 圖12至圖13分別是利用圖11所示的方法對資源進行重新調度前和重新調度後的環境示意圖;以及 圖14是表示本發明的另一個實施例的減少因專用資源分配導致過多資源碎片的方法流程圖。

Claims (17)

  1. 一種通過統一資源調度協調器創建虛擬機和/或容器的方法,其特徵在於,所述方法包括:接收創建所述虛擬機和/或所述容器的指令,其中所述指令包括所述虛擬機和/或所述容器的參數;根據所述參數從物理節點中選擇出第一計算節點;根據所要創建的類型,將所述參數和所述第一計算節點的信息相應地發送給虛擬機管理模塊和/或容器管理模塊,使得所述虛擬機管理模塊通過所述第一計算節點上的虛擬機管理代理模塊為所述虛擬機分配資源和/或使得所述容器管理模塊通過所述第一計算節點上的容器管理代理模塊為所述容器分配資源;在所述虛擬機和/或所述容器創建完成後,從所述虛擬機管理模塊和/或所述容器管理模塊接收資源分配情況;在記錄資源變化情況後,將所述資源分配情況同步給所述容器管理模塊和/或所述虛擬機管理模塊,其中,所述方法還包括:確定專用模式NUMA節點數量占比高於第一閾值且NUMA節點利用率低於第二閾值;以及從共享模式NUMA節點中隨機選出一定數量的NUMA節點,對於從所選出的NUMA節點上分配資源的容器和/或虛擬機,將其資源使用方式修改為專用,並重新進行調 度,其中選出的NUMA節點的數量在所有NUMA節點中的占比與第三閾值相對應。
  2. 如申請專利範圍第1項所述的方法,其中,所述虛擬機和/或所述容器的參數包括所述虛擬機和/或所述容器的資源需求情況和計算資源使用方式。
  3. 如申請專利範圍第1或2項所述的方法,其中,根據所述參數從物理節點中選擇出第一計算節點包括:設置一列表,其中每一個物理節點在所述列表中有唯一編號,所述物理節點包含一個或多個非統一內存訪問架構NUMA節點及可用磁盤容量,所述NUMA節點包含該節點可用的計算資源信息;獲取在所述列表中的當前窗口位置(i,i+k-1),其中i為窗口開始位置編號,k為窗口長度,(i,i+k-1)表示窗口為從編號i到編號i+k的一組物理節點;對所述當前窗口位置內的物理節點進行判斷,確定是否存在滿足容器和/或虛擬機對物理資源的需求的節點;若存在,則返回滿足需求的節點的編號j,並將窗口向後移動,新的窗口變為(j+1,j+k);以及若不存在,則將窗口向後移動,新的窗口為(i+k,i+2k-1),並判斷i是否在該新的窗口中,若是,則確定所有節點都不滿足要求。
  4. 如申請專利範圍第1項所述的方法,其中,所述第一閾值、所述第二閾值以及所述第三閾值都為50%。
  5. 如申請專利範圍第1或2項所述的方法,其中,所述方法還包括:在未能找到滿足要求的計算節點時,遍歷各個計算節點並統計在各個計算節點上專用模式的NUMA節點的可用資源;根據所要創建的所述虛擬機和/或所述容器的需求,分配合適的計算節點;以及在所述合適的計算節點上,重新調度資源。
  6. 如申請專利範圍第1項所述的方法,其中,所分配的資源包括計算、網路以及存儲資源。
  7. 一種統一資源調度協調器,其特徵在於,所述統一資源調度協調器包括:第一接收單元,用於接收創建所述虛擬機和/或所述容器的指令,其中所述指令包括所述虛擬機和/或所述容器的參數;選擇單元,用於根據所述參數從物理節點中選擇出第一計算節點;第一發送單元,用於根據所要創建的類型,將所述參數和所述第一節點的信息相應地發送給虛擬機管理模塊和 /或容器管理模塊,使得所述虛擬機管理模塊通過所述第一計算節點上的虛擬機管理代理模塊為所述虛擬機分配計算資源和/或使得所述容器管理模塊通過所述第一計算節點上的容器管理代理模塊為所述容器分配計算資源;第二接收單元,用於在所述虛擬機和/或所述容器創建完成後,從所述虛擬機管理模塊和/或所述容器管理模塊接收資源分配情況;同步單元,用於在記錄資源變化情況後,將所述資源分配情況同步給所述容器管理模塊和/或所述虛擬機管理模塊,其中,所述統一資源調度協調器還包括:確定單元,用於確定專用模式NUMA節點數量占比高於第一閾值且NUMA節點利用率低於第二閾值;修改單元,用於從共享模式NUMA節點中隨機選出一定數量的NUMA節點,對於從所選出的NUMA節點上分配資源的容器和/或虛擬機,將其資源使用方式修改為專用,並重新進行調度,其中選出的NUMA節點的數量在所有NUMA節點中的占比與第三閾值相對應。
  8. 如申請專利範圍第7項所述的統一資源調度協調器,其中,所述虛擬機和/或所述容器的參數包括所述虛擬機和/或所述容器的資源需求情況和計算資源使用方式。
  9. 如申請專利範圍第7或8項所述的統一資源調度協調 器,其中,所述選擇單元包括:存儲子單元,用於存儲一列表,其中每一個物理節點在所述列表中有唯一編號,所述物理節點包含一個或多個非統一內存訪問架構NUMA節點及可用磁盤容量,所述NUMA節點包含該節點可用的計算資源信息;獲取在所述列表中的當前窗口位置(i,i+k-1),其中i為窗口開始位置編號,k為窗口長度,(i,i+k-1)表示窗口為從編號i到編號i+k的一組物理節點;判斷子單元,用於對所述當前窗口位置內的物理節點進行判斷,確定是否存在滿足容器和/或虛擬機對物理資源的需求的節點;處理子單元,用於在存在的情況下返回滿足需求的節點的編號j,並將窗口向後移動,新的窗口變為(j+1,j+k);以及在不存在的情況下將窗口向後移動,新的窗口為(i+k,i+2k-1),並同時判斷i是否在該新的窗口中,若是,則確定所有節點都不滿足要求。
  10. 如申請專利範圍第7項所述的統一資源調度協調器,其中,所述第一閾值、所述第二閾值以及所述第三閾值都為50%。
  11. 如申請專利範圍第7項所述的統一資源調度協調器,其中,所述統一資源調度協調器還包括:遍歷統計單元,用於在未能找到滿足要求的計算節點 時,遍歷各個計算節點並統計在各個計算節點上專用模式的NUMA節點的可用資源;分配單元,用於根據所要創建的所述虛擬機和/或所述容器的需求,分配合適的計算節點;以及調度單元,用於在所述合適的計算節點上,重新調度資源。
  12. 如申請專利範圍第7項所述的統一資源調度協調器,其中,所分配的資源包括計算、網路以及存儲資源。
  13. 一種統一資源調度系統,包括如申請專利範圍第7至12項中任一項所述的統一資源調度協調器。
  14. 如申請專利範圍第13項所述的系統,其中,所述系統還包括:容器管理模塊,用於為容器分配CPU和內存資源。
  15. 如申請專利範圍第13或14項所述的系統,其中,所述系統還包括:容器網路代理模塊,用於接收來自容器管理模塊的網路資源請求,將請求的資源模型從容器網路模型修改為第一網路模型,轉發包含所述第一網路模型的修改的網路資源請求並最終獲取網路資源。
  16. 如申請專利範圍第15項所述的系統,其中,所述第一網路模型為Openstack neutron網路模型。
  17. 一種計算機存儲媒體,包括指令,所述指令在運行時執行如申請專利範圍第1至6項中任一項所述的方法。
TW108124482A 2018-11-23 2019-07-11 統一資源調度協調器及其創建虛擬機和/或容器的方法、統一資源調度系統 TWI723459B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201811405694.1A CN109885377B (zh) 2018-11-23 2018-11-23 统一资源调度协调器及其创建虚拟机和/或容器的方法、统一资源调度系统
CN201811405694.1 2018-11-23

Publications (2)

Publication Number Publication Date
TW202021328A TW202021328A (zh) 2020-06-01
TWI723459B true TWI723459B (zh) 2021-04-01

Family

ID=66924958

Family Applications (1)

Application Number Title Priority Date Filing Date
TW108124482A TWI723459B (zh) 2018-11-23 2019-07-11 統一資源調度協調器及其創建虛擬機和/或容器的方法、統一資源調度系統

Country Status (4)

Country Link
US (1) US11467864B2 (zh)
CN (1) CN109885377B (zh)
TW (1) TWI723459B (zh)
WO (1) WO2020103465A1 (zh)

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109885377B (zh) * 2018-11-23 2023-04-28 中国银联股份有限公司 统一资源调度协调器及其创建虚拟机和/或容器的方法、统一资源调度系统
CN110297693B (zh) * 2019-07-04 2020-07-28 北京伟杰东博信息科技有限公司 一种分布式软件任务分配的方法及其系统
CN112433841B (zh) * 2019-08-26 2023-08-01 中国移动通信集团浙江有限公司 一种资源池调度方法、系统、服务器和存储介质
CN110515602B (zh) * 2019-09-17 2023-08-18 成都源动数据科技有限公司 一种在线交互式编程开放实验系统
CN110704161B (zh) * 2019-09-27 2022-05-31 联想(北京)有限公司 虚拟机创建方法、装置及计算机设备
CN112583625B (zh) * 2019-09-30 2023-12-08 中兴通讯股份有限公司 网络资源管理方法、系统、网络设备和可读存储介质
US11182196B2 (en) * 2019-11-13 2021-11-23 Vmware, Inc. Unified resource management for containers and virtual machines
US11755354B2 (en) * 2019-11-20 2023-09-12 Sap Se NUMA-aware resource allocation and placement of database containers
CN111338758A (zh) * 2020-02-24 2020-06-26 华云数据(厦门)网络有限公司 资源管理方法、装置和电子设备
US11630700B2 (en) * 2020-03-23 2023-04-18 T-Mobile Usa, Inc. Local edge device
US11507431B2 (en) 2020-04-01 2022-11-22 Microsoft Technology Licensing, Llc Resource allocation for virtual machines
CN111796906A (zh) * 2020-06-03 2020-10-20 科东(广州)软件科技有限公司 一种容器管理方法、装置、设备及存储介质
CN111638961A (zh) * 2020-06-04 2020-09-08 中国工商银行股份有限公司 资源调度系统和方法、计算机系统和存储介质
CN113821157A (zh) * 2020-06-18 2021-12-21 中移(苏州)软件技术有限公司 一种本地磁盘挂载方法、装置、设备及存储介质
CN113849259A (zh) * 2020-06-28 2021-12-28 华为技术有限公司 一种虚拟机和容器混合调度系统、方法、调度器及装置
CN113301087B (zh) * 2020-07-21 2024-04-02 阿里巴巴集团控股有限公司 资源调度方法、装置、计算设备和介质
CN113760441A (zh) * 2020-08-31 2021-12-07 北京京东尚科信息技术有限公司 容器创建方法、装置、电子设备及存储介质
CN112148489A (zh) * 2020-09-22 2020-12-29 网易(杭州)网络有限公司 游戏资源调度方法、装置、设备及存储介质
US11740921B2 (en) * 2020-11-23 2023-08-29 Google Llc Coordinated container scheduling for improved resource allocation in virtual computing environment
CN112565475B (zh) * 2020-12-01 2023-07-11 成都精灵云科技有限公司 容器集群业务层添加新节点的ip地址分配方法
CN112965788B (zh) * 2021-03-22 2023-12-22 西安电子科技大学 一种混合虚拟化方式的任务执行方法、系统及设备
CN113225388B (zh) * 2021-04-22 2023-05-16 深信服科技股份有限公司 一种分布式调度方法及装置、设备、存储介质
CN113472848A (zh) * 2021-05-31 2021-10-01 济南浪潮数据技术有限公司 一种虚拟机和容器的网络融合方法、装置及相关设备
CN113485786B (zh) * 2021-06-29 2022-05-17 济南浪潮数据技术有限公司 一种基于云物理机实现pod挂载cinder卷的方法及系统
CN113612688B (zh) * 2021-07-14 2023-03-24 曙光信息产业(北京)有限公司 分布式软件定义网络控制系统及其构建方法
CN113608833A (zh) * 2021-07-19 2021-11-05 曙光信息产业(北京)有限公司 虚拟机创建方法、装置、计算机设备和存储介质
CN113709241B (zh) * 2021-08-26 2024-01-23 上海德拓信息技术股份有限公司 一种云场景下物理资源的调度分配组合方法与系统
CN113872673A (zh) * 2021-09-27 2021-12-31 哈工大机器人(中山)无人装备与人工智能研究院 一种卫星星座仿真的容器云资源调度系统及其调度方法
CN114138464B (zh) * 2021-11-10 2023-10-31 浪潮卓数大数据产业发展有限公司 基于容器的端口分配方法及系统
CN114363021B (zh) * 2021-12-22 2023-11-03 绿盟科技集团股份有限公司 网络靶场系统、网络靶场系统的虚拟网络实现方法及装置
CN114553874B (zh) * 2022-02-28 2023-04-18 北京理工大学 一种混合仿真云平台及自动化部署方法
CN114637576A (zh) * 2022-03-22 2022-06-17 支付宝(杭州)信息技术有限公司 用于生成容器分配方案的方法及装置
CN114968477A (zh) * 2022-04-21 2022-08-30 京东科技信息技术有限公司 容器热迁移方法及容器热迁移装置
CN114816665B (zh) * 2022-04-22 2023-03-24 北京志凌海纳科技有限公司 混合编排系统及超融合架构下虚拟机容器资源混合编排方法
CN114710366B (zh) * 2022-05-31 2022-11-04 阿里巴巴(中国)有限公司 云计算系统中的跨安全区域的资源访问方法及电子设备
CN117215712A (zh) * 2022-06-02 2023-12-12 华为技术有限公司 一种容器的创建方法、装置及存储介质
CN115033348B (zh) * 2022-08-10 2022-10-25 北京腾达泰源科技有限公司 一种对虚拟机和容器统一管理方法、系统、设备及介质
CN116049908B (zh) * 2023-04-03 2023-06-06 北京数力聚科技有限公司 一种基于区块链的多方隐私计算方法及系统
CN116302363B (zh) * 2023-05-16 2023-08-04 苏州浪潮智能科技有限公司 一种虚拟机创建方法、系统、计算机设备及存储介质
CN116610270B (zh) * 2023-07-21 2023-10-03 湖南马栏山视频先进技术研究院有限公司 一种视频处理的存算分离方法及视频存算分离系统
CN116627661B (zh) * 2023-07-24 2023-11-03 杭州谐云科技有限公司 算力资源调度的方法和系统
CN116820687B (zh) * 2023-08-29 2023-12-05 银河麒麟软件(长沙)有限公司 基于kubelet的NUMA架构资源分配方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9367340B2 (en) * 2012-12-26 2016-06-14 Huawei Technologies Co., Ltd. Resource management method and apparatus for virtual machine system, and virtual machine system
CN107277100A (zh) * 2016-03-30 2017-10-20 阿普福米克斯有限公司 用于近实时云基础设施策略实现和管理的系统和方法
US20180060254A1 (en) * 2016-08-23 2018-03-01 Red Hat, Inc. Quality of service enforcement and data security for containers accessing storage

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7581224B2 (en) 2003-07-10 2009-08-25 Hewlett-Packard Development Company, L.P. Systems and methods for monitoring resource utilization and application performance
US8903983B2 (en) * 2008-02-29 2014-12-02 Dell Software Inc. Method, system and apparatus for managing, modeling, predicting, allocating and utilizing resources and bottlenecks in a computer network
US8561072B2 (en) 2008-05-16 2013-10-15 Microsoft Corporation Scheduling collections in a scheduler
CN103064724A (zh) * 2012-12-14 2013-04-24 北京伸得纬科技有限公司 虚拟机构建方法及装置
CN103049334B (zh) * 2012-12-14 2015-09-30 华为技术有限公司 一种任务处理的方法和虚拟机
US9575797B2 (en) * 2015-03-20 2017-02-21 International Business Machines Corporation Virtual machine migration between hypervisor virtual machines and containers
US11483405B2 (en) * 2015-06-10 2022-10-25 Platform9, Inc. Private cloud as a service
CN105404549B (zh) * 2015-12-06 2019-04-26 北京天云融创软件技术有限公司 基于yarn架构的虚拟机调度系统
US10241674B2 (en) * 2015-12-11 2019-03-26 Vmware, Inc. Workload aware NUMA scheduling
CN106919445B (zh) * 2015-12-28 2021-08-20 华为技术有限公司 一种在集群中并行调度容器的方法和装置
US10985997B2 (en) * 2016-05-06 2021-04-20 Enterpriseweb Llc Systems and methods for domain-driven design and execution of metamodels
US10871925B2 (en) * 2016-05-31 2020-12-22 Vmware, Inc. Provisioning data volumes for containers running in virtual machines
US11251179B2 (en) 2016-06-30 2022-02-15 International Business Machines Corporation Long channel and short channel vertical FET co-integration for vertical FET VTFET
CN106293945A (zh) * 2016-08-11 2017-01-04 浪潮(北京)电子信息产业有限公司 一种跨虚拟机的资源感知方法及系统
US20180088973A1 (en) * 2016-09-25 2018-03-29 Dinesh Subhraveti Methods and systems for interconversions among virtual machines, containers and container specifications
US10884816B2 (en) * 2017-03-28 2021-01-05 International Business Machines Corporation Managing system resources in containers and virtual machines in a coexisting environment
US10547521B1 (en) * 2017-03-29 2020-01-28 Juniper Networks, Inc. Network dashboard with multifaceted utilization visualizations
US11068314B2 (en) * 2017-03-29 2021-07-20 Juniper Networks, Inc. Micro-level monitoring, visibility and control of shared resources internal to a processor of a host machine for a virtual environment
US10868742B2 (en) * 2017-03-29 2020-12-15 Juniper Networks, Inc. Multi-cluster dashboard for distributed virtualization infrastructure element monitoring and policy control
CN107135103B (zh) * 2017-05-08 2021-03-19 网宿科技股份有限公司 在异构资源上构建内容分发网络平台的方法和系统
CN107426034B (zh) 2017-08-18 2020-09-01 国网山东省电力公司信息通信公司 一种基于云平台的大规模容器调度系统及方法
US11556386B2 (en) * 2017-09-18 2023-01-17 Telefonaktiebolaget Lm Ericsson (Publ) Synthesizing a resource request to obtain resource identifier based on extracted unified model, user requirement and policy requirements to allocate resources
US10534629B1 (en) * 2017-10-31 2020-01-14 EMC IP Holding Company LLC Virtual data management services
CN107967167A (zh) * 2017-12-01 2018-04-27 江苏润和软件股份有限公司 一种面向复杂虚拟化环境的云平台资源调度方法
US10871998B2 (en) * 2018-01-18 2020-12-22 Red Hat, Inc. Usage instrumented workload scheduling
CN108595306B (zh) 2018-04-18 2021-03-26 大连理工大学 一种面向混部云的服务性能测试方法
CN109885377B (zh) 2018-11-23 2023-04-28 中国银联股份有限公司 统一资源调度协调器及其创建虚拟机和/或容器的方法、统一资源调度系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9367340B2 (en) * 2012-12-26 2016-06-14 Huawei Technologies Co., Ltd. Resource management method and apparatus for virtual machine system, and virtual machine system
CN107277100A (zh) * 2016-03-30 2017-10-20 阿普福米克斯有限公司 用于近实时云基础设施策略实现和管理的系统和方法
US20180060254A1 (en) * 2016-08-23 2018-03-01 Red Hat, Inc. Quality of service enforcement and data security for containers accessing storage

Also Published As

Publication number Publication date
CN109885377B (zh) 2023-04-28
CN109885377A (zh) 2019-06-14
US20210117220A1 (en) 2021-04-22
WO2020103465A1 (zh) 2020-05-28
TW202021328A (zh) 2020-06-01
US11467864B2 (en) 2022-10-11

Similar Documents

Publication Publication Date Title
TWI723459B (zh) 統一資源調度協調器及其創建虛擬機和/或容器的方法、統一資源調度系統
JP4119162B2 (ja) 多重化計算機システム、論理計算機の割当方法および論理計算機の割当プログラム
CN110377395B (zh) 一种Kubernetes集群中的Pod迁移方法
WO2017133623A1 (zh) 一种数据流处理方法、装置和系统
US5687372A (en) Customer information control system and method in a loosely coupled parallel processing environment
WO2015169145A1 (zh) 内存管理方法和设备
WO2014131317A1 (zh) 一种核资源分配方法、装置及众核系统
JPS63239551A (ja) 多重プロセッサメモリの管理方法とその装置
WO2014169649A1 (zh) 一种数据处理方法、装置及计算机系统
WO2014032287A1 (zh) 中央处理器资源分配方法和计算节点
JP2013513174A (ja) 仮想マシンのストレージスペースおよび物理ホストを管理するための方法およびシステム
JP7467593B2 (ja) リソース割振り方法、記憶デバイス、および記憶システム
US10686875B2 (en) Elastically scalable document-oriented storage services
US10810044B2 (en) Enhanced cache memory allocation based on virtual node resources
JP6275119B2 (ja) メモリ要素の割当てのために一方向リンク付けリストを区分化するシステム及び方法
US5682507A (en) Plurality of servers having identical customer information control procedure functions using temporary storage file of a predetermined server for centrally storing temporary data records
US5790868A (en) Customer information control system and method with transaction serialization control functions in a loosely coupled parallel processing environment
US5630133A (en) Customer information control system and method with API start and cancel transaction functions in a loosely coupled parallel processing environment
Trivedi et al. RStore: A direct-access DRAM-based data store
Wang et al. Provision of storage QoS in distributed file systems for clouds
CN109298949B (zh) 一种分布式文件系统的资源调度系统
JPH08221372A (ja) 分散処理システムにおける空き資源管理装置
CN115063282A (zh) 一种gpu资源调度方法、装置、设备及存储介质
CN115794368A (zh) 业务系统、内存管理方法及装置
CN112559164A (zh) 一种资源共享方法及装置