本發明公開的異構云操作系統的集成與統一調度框架,包括有資源收集模塊、用戶認證模塊、統一調度模塊及請求轉化模塊,資源收集模塊、用戶認證模塊分別通過導線與統一調度模塊連接,統一調度模塊通過導線與請求轉化模塊連接,資源收集模塊、請求轉化模塊分別通過導線與 Elaster 云操作系統、 CloudStack 操作系統及 OpenStack 操作系統連接。本發明還公開了上述集成與統一調度框架的調度方法。本發明的異構云操作系統的集成與統一調度框架解決了異構云操作之間資源無法共享,實現了對異構云操作系統的統一調度。
技術領域
[0001] 本發明屬于云計算中心操作系統技術領域,涉及一種異構云操作系統的集成與統一調度框架,本發明還涉及上述集成與統一調度框架的調度方法。
背景技術
[0002] 云計算中心操作系統,又稱為云計算操作系統或云 OS ,是云計算后臺數據中心的整體協調運營系統,它是指構架于服務器、存儲、網絡等基礎硬件資源和單機操作系統、中間件、數據庫等基礎軟件管理海量的基礎硬件、軟資源之上的云平臺綜合管理系統。
[0003] 現有的云操作系統主要有 Eucalyptus 、 OpenStack 、 CloudStack 、 Elaster, 但是每種云操作系統只能管理各自數據中心的異構資源,若能將這些異構云操作管理的資源進行統一合并從而進行統一的調度,能有效的整合不同云操作系統管理的數據中心的資源,便于資源的統一分配與調度。
發明內容
[0004] 本發明的目的在于提供一種異構云操作系統的集成與統一調度框架,解決了異構云操作之間資源無法共享,實現了對異構云操作系統的統一調度。
[0005] 本發明的另一目的在于提供上述集成與統一調度框架的調度方法。
[0006] 本發明所采用的第一種技術方案是,異構云操作系統的集成與統一調度框架,包括有資源收集模塊、用戶認證模塊、統一調度模塊及請求轉化模塊,資源收集模塊、用戶認證模塊分別通過導線與統一調度模塊連接,統一調度模塊通過導線與請求轉化模塊連接,資源收集模塊、請求轉化模塊分別通過導線與 Elaster 云操作系統、 CloudStack 操作系統及 OpenStack 操作系統連接。
[0007] 本發明第一種技術方案的特點還在于,資源收集模塊用于定時同步收集異構資源池內資源的容量信息,異構云操作系統到達時間間隔,所述資源收集模塊 (I) 用于查詢每個資源池中的 CPU 、內存、主存儲磁盤、 IP 個數、虛擬局域網個數;每種容量都包含總容量、已使用容量、預占容量三種信息資源容量,并將每種資源信息持久化到異構資源池的數據庫中,管理員能設置同步的時間間隔。
[0009] 異構云操作系統到達時間間隔設置為 10 分鐘。
[0010] 用戶認證模塊根據范圍由小到大依次為用戶、賬戶、域、部門,根據用戶類型來進行用戶權限的控制和資源隔離,用戶認證模塊通過對不同的云操作系統的用戶進行統一認證,對云操作系統資源進行安全訪問并隔離。
[0011] 請求轉化模塊用于將異構云操作系統的請求與響應進行同構。
[0012] 統一調度模塊用于將異構云操作系統中的資源進行統一分配與調度,統一調度模塊內設置有多種分配策略。
[0013] 統一調度模塊內采用的分配策略為 disperse 策略、 concentrated 策略、 firstfit 策略、 round-robin 策略或 random 策略中的一種。
[0014] disperse 策略為在對用戶指定的集群、主機列表進行排序選擇集群或主機時,根據現有虛擬機在各個集群和主機上的分布,將本次分配創建的虛擬機分配到各個集群或集群中的各個主機中,使集群或主機上的虛擬機數量平均;
[0015] concentrated 分配與調度策略為 : 在對用戶指定的集群、主機列表進行排序選擇集群或主機時,根據現有虛擬機在各個集群和主機上的分布,將本次分配創建的虛擬機分配到虛擬機數量最多的集群或主機中;
[0016] firstfit 分配與調度策略為 : 在對用戶指定的集群、主機列表進行排序選擇集群或主機時,直接用符合要求的集群或主機的第一個作為虛擬機分配或部署的目標;
[0017] random 分配與調度策略為 : 在對用戶指定的集群、主機列表進行排序選擇集群或主機時,對列表進行亂序化,然后用列表中的第一個集群或主機作為虛擬機分配或部署的目標;
[0018] roundrobin 分配與調度策略為 : 在對用戶指定的集群、主機列表進行排序選擇集群或主機時,對上次部署使用過的集群或主機進行剔除,對剩下的集群或主機進行 firstfit 分配或 random 分配。
[0019] 本發明所采用的第二種技術方案是,異構云操作系統的集成與統一調度框架的調度方法,具體按照以下步驟實施 :
[0020] 步驟 1 、管理員或用戶發送請求,由用戶認證模塊去檢查用戶的合法性與操作權限;
[0021] 步驟 2 、經步驟完成認證后,由資源收集模塊定時去獲取區域、機架、集群、主機的資源使用情況,再由統一調度模塊判斷步驟 I 中用戶輸入是否指定區域、機架、集群或主機信息,具體判定方法如下 :
[0022] 若用戶指定虛擬機的資源級別位置和部署算法,則在指定的位置創建;
[0023] 若用戶沒有指定具體位置,使用默認部署算法找出符合條件的主機;
[0024] 若指定了部署算法,按照用戶的算法查找到符合條件的主機,否則返回創建失敗的消息;
[0025] 步驟 3 、由統一調度模塊判斷主機的資源是否充足 :
[0026] 若主機列表中第一個主機資源不充足,依次選擇列表中的主機;
[0027] 若沒有主機符合條件,返回創建失敗的消息。
[0028] 步驟 4 、在步驟 3 中選擇的主機上創建虛擬機。
[0029] 本發明的有益效果在于 :
[0030] 1. 本發明的異構云操作系統的集成與統一調度框架通過異構云操作系統的集成,實現了異構云操作系統下異構資源共享。
[0031] 2. 本發明的異構云操作系統的集成與統一調度框架針對不同的云操作系統,通過異構云 (MultiCloud) 可以申請使用虛擬機創建策略,靈活的在異構操作系統中使用資源,滿足了不同用戶的多樣化需求。
具體實施方式
[0036] 下面結合附圖和具體實施方式對本發明進行詳細說明。
[0037] 本發明的異構云操作系統的集成與統一調度框架,其結構如圖 1 所示,包括有資源收集模塊 1 、用戶認證模塊 2 、統一調度模塊 3 及請求轉化模塊 4 ,資源收集模塊 1 、用戶認證模塊 2 分別通過導線與統一調度模塊 3 連接,統一調度模塊 3 通過導線與請求轉化模塊 4 連接,資源收集模塊 1 、請求轉化模塊 4 分別通過導線與 Elaster 云操作系統 5 、 CloudStack 操作系統 6 及 OpenStack 操作系統 7 連接。
[0038] 不同的云操作系統中資源的層次劃分是不同的,但大體分成數據中心、集群和主機。
[0039] 對不同的云操作系統中資源的位置進行統一劃分,即對 Elaster 云操作系統 5 、 CloudStack 操作系統 6 及 OpenStack 操作系統 7 中資源的位置進行統一劃分 , 如圖 2 所示,劃分為 : 區域、機架、集群、主機四個級別。
[0040] 區域是異構云系統內的最大的組織單位,機架是異構云操作系統內的第二大組織單位;一個區域對應于一個數據中心,允許數據中心內有多個區域;一個區域內包括有一個或多個機架;一個機架內包括有一個或多個集群以及一個或多個存儲服務器,同一個機架上的主機處于同一子網內;一種機架由一個或多個集群和一個或多個存儲服務器組成;集群用來存放主機,精確的說,集群是一個 XenServer 服務器池、一組 KVM 的服務器、一組 OVM 的主機、或者是在 vCenter 預先設置的 VMware 集群,在同一集群中的主機具有相同的硬件主機,運行相同的程序,處于同一個子網內,訪問同一個共享主存儲器;主機是一臺計算機,主機提供運行來自虛擬機的計算資源,每個主機上都安裝有虛擬機管理器,虛擬機管理器用于管理虛擬機。
[0041] 在云計算中,資源與存儲資源是分開的,本發明的集成框架中,存儲資源的裝置分為 : 主存儲器與二級輔助存儲器;其中,主存儲器與集群相關,它存儲在集群中的主機上運行的所有虛擬機的磁盤卷信息;二級輔助存儲器與區域相關,它用于存儲模板、 ISO 鏡像、磁盤卷、快照。
[0042] 在本發明的異構云操作系統的集成與統一調度框架中,由于要對異構云操作系統下的資源進行統一的整合,因此要收集每種云操作系統下不同類型、不同級別的資源總量及剩余量,資源收集模塊 I 主要用于定時同步收集異構資源池的資源的容量信息,當系統到達時間間隔時 ( 時間間隔用戶可以設置,默認為 10 分鐘 ) ,資源收集模塊會查詢每個資源池中的 CPU 、內存、主存儲磁盤、 IP 個數、虛擬局域網 (VLAN) 個數,每種容量都包含總容量、已使用容量、預占容量三種信息資源容量,并將每種資源信息持久化到異構資源池的數據庫中,管理員能設置同步的時間間隔,時間間隔設置為 10 分鐘。
[0043] 容量數據收集功能周期性地通過調用底層云操作系統的應用程序編程接口 (API) ,將資源池的容量信息收集、轉換、存儲到本地數據庫中,盡量保證容量數據的準確性。支持的容量類型有 CPU 、內存、主存儲磁盤、 IP 個數、虛擬局域網 (Vlan) 。每種容量都包含總容量、已使用容量、預占容量三種信息。注意, IP 指虛擬機使用的私有 IP , Vlan 指創建區域時指定的 Vlan 范圍。
[0044] 對不同的資源級別,有不同的資源容量收集和轉換配置,參照下表 :
[0045] 表 1-1 資源級別與容量類型對照表
[0047] 注 :" V " 表示收集資源; " X " 表示不收集資源
[0048] 同時,容量收集功能對外提供數據查詢接口,供容量查詢、虛擬機調度等其他功能使用,提高容量查詢效率。
[0049] 用戶認證模塊 2 ,根據范圍由小到大依次為用戶、賬戶、域、部門,根據用戶類型來進行用戶權限的控制和資源隔離,用戶認證模塊 2 通過對不同的云操作系統的用戶進行統一認證,對云操作系統資源進行安全訪問并有效的隔離;
[0050] 其中,用戶 (user): 在同一個帳戶的用戶并不是彼此隔離的,但他們是從其他帳戶的用戶隔離,他們只是每一個帳戶的用戶,同一個用戶不能屬于多個帳戶;
[0051] 賬戶 (account):— 個帳戶通常是服務提供者或在一個大的組織中的一個部門,一個帳戶可以存在多個用戶。
[0052] 域 (domain): 賬號按域分組,域通常包含多個帳戶,有邏輯之間的相互關系和一組授權管理員一些授權域。
[0053] 部門 (project): 若要各帳戶之間共享資源的,可以使用部門,一個部門中的資源可以被部門中的帳戶共享。
[0054] 異構云操作系統的資源管理方式、請求方式、響應方式各不相同,請求轉化模塊 3 用于將異構云操作系統的請求與響應進行同構;不同的異構資源池與相同資源池的不同版本之間的資源收集方式、存儲方式、資源 API 調用方式等都可能是不同的,本發明針對異構資源池與相同資源池的不同版本采用的是不同的驅動,驅動用來屏蔽異構資源池與相同資源池的不同版本之間的差異 。
[0055] 統一調度模塊 4: 將異構云操作系統中的資源進行統一分配與調度,統一調度模塊 4 內集成有調度模塊虛擬機分配策略,調度模塊虛擬機分配策略能夠指定調用者在部署虛擬機時選擇集群、主機時所使用的策略,它能在配置文件中指定,在為虛擬機自動指定位置或在不指定策略的情況下,調用虛擬機分配建議 API 時生效;在調用虛擬機分配建議 API 時,通過參數臨時指定本次調用時使用的分配策略;
[0056] 其中,使用的分配策略為 disperse 分配策略、 concentrated 分配策略、 firstfit 分配策略、 round-robin 分配策略、 random 分配策略中的一種 , 具體解釋如下 :
[0057] disperse 分配策略 : 在對用戶指定的集群、主機列表進行排序選擇集群或主機時,根據現有虛擬機在各個集群和主機上的分布,將本次分配創建的虛擬機分配到各個集群或集群中的各個主機上,使集群或主機上的虛擬機數量平均。
[0058] concentrated 分配策略 : 在對用戶指定的集群、主機列表進行排序選擇集群或主機時,根據現有虛擬機在各個集群和主機上的分布,將本次分配創建的虛擬機分配到虛擬機數量最多的集群或主機中;
[0059] firstfit 分配策略 : 在對用戶指定的集群、主機列表進行排序選擇集群或主機時,直接用用戶指定的集群或主機的第一個作為虛擬機分配或部署的目標;
[0060] random 分配策略 : 在對用戶指定的集群、主機列表進行排序選擇集群或主機時,對列表進行亂序化,然后用列表中的第一個集群或主機作為虛擬機分配或部署的目標;
[0061] roundrobin 分配策略 : 在對用戶指定的集群、主機列表進行排序選擇集群或主機時,對上次部署使用過的集群或主機進行剔除 ( 在保證有部署位置前提下 ) ,對剩下的集群或主機進行 firstfit 分配或 random 分配。
[0062] 本發明的異構云操作系統的集成與統一調度框架的使用方法如下,如圖 3 所示,具體按照以下步驟實施 :
[0063] 步驟 1 、管理員或用戶發送請求,由用戶認證模塊 2 去檢查用戶的合法性與操作權限;
[0064] 步驟 2 、經步驟 I 完成認證后,由資源收集模塊 I 定時去獲取區域、機架、集群、主機的資源使用情況,再由統一調度模塊 3 判斷步驟 I 中用戶輸入是否指定區域、機架、集群或主機信息,具體判定方法如下 :
[0065] 若用戶指定虛擬機的資源級別位置和部署算法,則在指定的位置創建;
[0066] 若用戶沒有指定具體位置,使用默認部署算法找出符合條件的主機;
[0067] 若指定了部署算法,按照用戶的算法查找到符合條件的主機,否則返回創建失敗的消息;
[0068] 步驟 3 、由統一調度模塊 4 判斷主機的資源是否充足 :
[0069] 若主機列表中第一個主機資源不充足,依次選擇列表中的主機;
[0070] 若沒有主機符合條件,返回創建失敗的消息。
[0071] 步驟 4 、在步驟 3 中選擇的主機上創建虛擬機。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
