面向關(guān)聯(lián)任務(wù)請求的虛擬資源調(diào)度系統(tǒng)及調(diào)度和分配方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬計算機科學(xué)領(lǐng)域,涉及一種云計算環(huán)境下虛擬資源調(diào)度系統(tǒng),具體是一 種面向關(guān)聯(lián)任務(wù)請求的虛擬資源調(diào)度系統(tǒng)及調(diào)度和分配方法。
【背景技術(shù)】
[0002] 云計算它采用創(chuàng)新的計算模式使用戶通過互聯(lián)網(wǎng)隨時獲得近乎無限的計算能力 和豐富多樣的信息服務(wù),它創(chuàng)新的商業(yè)模式使用戶對計算和服務(wù)可以取用自由、按量付費。 目前的云計算融合了以虛擬化、服務(wù)管理自動化和標(biāo)準(zhǔn)化為代表的大量革新技術(shù)。云計算 借助虛擬化技術(shù)的伸縮性和靈活性,提高了資源利用率,簡化了資源和服務(wù)的管理和維護; 利用信息服務(wù)自動化技術(shù),將資源封裝為服務(wù)交付給用戶,減少了數(shù)據(jù)中心的運營成本;利 用標(biāo)準(zhǔn)化,方便了服務(wù)的開發(fā)和交付,縮短了客戶服務(wù)的上線時間。而云計算的虛擬機資源 調(diào)度器或是正調(diào)度算法是云計算平臺的重要模塊,是高效的解決資源融合,共享的重要組 成。
[0003]目前主要有以下幾種算法解決IaaS云計算平臺的虛擬機資源調(diào)度策略的方法: [0004] 1.從平臺的負載角度出發(fā),當(dāng)個任務(wù)或是應(yīng)用發(fā)出虛擬機資源的請求時,平臺檢 查所有物理機上的剩余資源,將滿足物理機請求的資源的物理機過濾出來,盡量使得各個 物理機上的負載均衡。
[0005] 2.從平臺的資源的利用的效率出發(fā),當(dāng)任務(wù)或是應(yīng)用發(fā)出虛擬機資源請求時,檢 查所有物理家上的剩余資源,采用最少的物理機來滿足任務(wù)或是應(yīng)用對資源的請求,使得 任務(wù)平臺整體的能夠有較少的使用物理資源,減少不必要的資源浪費。
[0006] 3.基于公平性的調(diào)度算法,以DRF算法為例的公平調(diào)度算法,主要考慮各個資源 分配直接的均衡和合理,可以使得任務(wù)之間對資源的請求和分配達到經(jīng)濟學(xué)上的帕累托最 優(yōu)。
[0007] 上述種方法在解決云計算中虛擬機資源調(diào)度問題的方法有各自的局限性:
[0008] 1.負載均衡算法為了保證各個物理機上的虛擬機負載盡可能一致,會導(dǎo)致虛擬機 的分配方案相對比較松散,導(dǎo)致有大量交互或是大量網(wǎng)絡(luò)通訊的任務(wù)或應(yīng)用會或得比較糟 糕的網(wǎng)絡(luò)狀況,導(dǎo)致服務(wù)質(zhì)量的下降或是任務(wù)執(zhí)行的時延增加。
[0009] 2.平臺利用率的算法,盡量采用少量的物理機滿足應(yīng)用的虛擬機資源請求會或得 比較好的資源利用情況,但是這種算法是一個典型的NP問題,求解這個問題往往會造成更 高的調(diào)度代價,因此在實際的云計算平臺中很少采用。
[0010] 3.DRF算法本身在資源的利用情況會造成比較多的碎片情況,導(dǎo)致可分配,可調(diào)度 的次數(shù)有所不足,另外由于忽略了本身物理機的位置的關(guān)系,會造成了物理機資源和任務(wù) 的實際運行的網(wǎng)絡(luò)情況不匹配的。
[0011] 綜上,上述三種算法均在任務(wù)的通信請求和任務(wù)執(zhí)行存在關(guān)聯(lián)關(guān)系的問題上的考 慮均有所不足,并且各自對資源的請求分配的情況均存在自己本身不足的因素。所以對大 量通信的任務(wù)請求的調(diào)度結(jié)果往往不能取得較好的性能優(yōu)勢。
【發(fā)明內(nèi)容】
[0012] 本發(fā)明目的在于解決上述問題,提供一種云計算平臺下的面向關(guān)聯(lián)任務(wù)請求的虛 擬資源調(diào)度系統(tǒng)及調(diào)度和分配方法,該方法通過虛擬機的合理分配,滿足存在關(guān)聯(lián)關(guān)系的 任務(wù)的性能需求和云計算平臺負載均衡的特性。
[0013] 為了實現(xiàn)上述目的,本發(fā)明所采用的技術(shù)方案包括以下步驟:
[0014] -種面向關(guān)聯(lián)任務(wù)請求的虛擬資源調(diào)度系統(tǒng),包括資源管理控制器、資源請求解 析器以及資源調(diào)度迭代器;
[0015] 資源管理控制器用于接收資源監(jiān)控系統(tǒng)所獲取的物理宿主機的資源情況;
[0016] 資源請求解析器用于前端預(yù)處理流程和資源請求封裝進行封裝;
[0017] 資源調(diào)度迭代器用于進行調(diào)度的迭代控制過程,產(chǎn)生資源調(diào)度結(jié)果。
[0018] 所述資源管理控制器具體用于:
[0019] 1)與資源監(jiān)控接口對接,實時獲取云計算集群資源狀態(tài)情況;
[0020] 2)結(jié)合資源調(diào)度迭代控制器,從監(jiān)控數(shù)據(jù)中抽取平臺中各個物理機的資源情況, 資源情況包括cpu、內(nèi)存、帶寬以及硬盤的相應(yīng)狀態(tài);
[0021]3)根據(jù)云計算集群中每個物理機的資源情況,在調(diào)度迭代器控制器請求時, 實時的計算出集群中的資源總量和剩余資源總量,同時計算當(dāng)前狀態(tài)下各個物理機的 dominant_share 和 dominant_desire;
[0022] 4)在并發(fā)環(huán)境下,保證數(shù)據(jù)的一致性,保證集群狀態(tài)信息的一致性;在資源調(diào)度 迭代器高并發(fā)作業(yè)的情況下,提供對資源的一致性、原子性和事務(wù)性。
[0023] 所述資源請求解析器具體的負責(zé)以下內(nèi)容:
[0024] 1)接收框架發(fā)來的任務(wù)調(diào)度請求用戶的請求json文件,提取調(diào)度迭代器關(guān)心的 cpu,內(nèi)存等資源請求,同時進一步封裝用戶的資源請求;
[0025] 2)解析框架任務(wù)關(guān)聯(lián)請求,運行強聯(lián)通分量,拓撲排序等圖論算法,產(chǎn)生帶有特殊 標(biāo)記的任務(wù)序列;
[0026]3)提供合并操作的封裝操作,在利用并查集的操作上,提供后續(xù)的資源調(diào)度迭代 器進行操作用以進行合并操作,進一步資源調(diào)度迭代器能夠查詢合并歷史產(chǎn)生資源調(diào)度結(jié) 果。
[0027] 所述資源調(diào)度迭代器包括資源調(diào)度迭代控制器、資源調(diào)度迭代合并器、資源調(diào)度 迭代排序器以及資源調(diào)度迭代評估器;
[0028] 資源調(diào)度迭代控制器用于進行調(diào)度的迭代控制,控制資源調(diào)度調(diào)度迭代合并器和 資源調(diào)度排序器協(xié)同工作,判斷迭代終止條件;并且在迭代的迭代計算過程中,對資源請求 進行分配,進行實際的分配的資源的計算;
[0029] 資源調(diào)度迭代合并器負責(zé)按照CBDRF算法的設(shè)計進行合并請求的操作,按照 CBDRF設(shè)計的算法,采用并查集的方法,根據(jù)資源請求解析器發(fā)送的帶有標(biāo)記的任務(wù)序列進 行合并操作;
[0030] 資源調(diào)度迭代排序器用于在進行資源分配的過程中輔助資源調(diào)度迭代控制器進 行資源分配;
[0031] 資源調(diào)度迭代評估器用于評估調(diào)度結(jié)果,記錄當(dāng)前的評估結(jié)果;同時與先前已經(jīng) 計算的迭代產(chǎn)生的調(diào)度中間結(jié)果進行比較,如果當(dāng)前的評估值優(yōu)于先前的調(diào)度結(jié)果則記錄 調(diào)度結(jié)果為當(dāng)前結(jié)果,否則,舍棄當(dāng)前的結(jié)果,通知資源調(diào)度迭代控制器進行下一輪迭代 器。
[0032] 一種面向關(guān)聯(lián)任務(wù)請求的虛擬資源調(diào)度和分配方法,包括以下步驟:
[0033] A1資源管理控制器獲取云計算平臺的資源狀態(tài),進行相應(yīng)的預(yù)處理操作;
[0034] A2資源請求解析器接按照圖論的相關(guān)模型解析任務(wù)狀態(tài),生成相應(yīng)的任務(wù)序列;
[0035] A3資源調(diào)度迭代器進行基于max_min操作的分配過程,生成迭代調(diào)度結(jié)果;
[0036] A4資源調(diào)度迭代評估器評估結(jié)果,保存計算的最優(yōu)值;
[0037] A5按照圖論的模型進行關(guān)聯(lián)任務(wù)的合并操作,合并相應(yīng)的任務(wù)請求;
[0038] A6資源調(diào)度迭代控制器判斷能否進行分配,如果能轉(zhuǎn)步驟3),否則輸出結(jié)果。
[0039] 所述步驟A1至A4中,資源調(diào)度迭代控制器具體的調(diào)度分配策略按照如下步驟進 行:
[0040] B1資源解析器解析用戶請求,為每個請求初始化request實例,每個實例為五元 組其中:
[0041] 五元組包含 cpu,mem,related_request,merge_history,scheduled_host ;cpu 表示任務(wù)請求的虛擬機的cpu核數(shù);mem表示任務(wù)請求的虛擬機內(nèi)存大小,以GB為單位; related_request表示關(guān)聯(lián)任務(wù)請求集合;merge_history表示合并歷史,調(diào)度迭代器結(jié)合 scheduled_host從合并歷史中解析最終的調(diào)度結(jié)果;scheduled_host表示請求的調(diào)度結(jié) 果,通過merge_history解析最終請求的調(diào)度結(jié)果;
[0042] 上述cpu,mem,related_request的初始值從用戶的請求中獲取,merge_history 和scheduled_host初始集均為空集;
[0043] B2將互相有交流的任務(wù)抽象成點,將他們之間網(wǎng)絡(luò)通信關(guān)系抽象成邊,通過 related_request將請求解析抽象成一個關(guān)系圖;由資源解析器運行圖論算法計算任務(wù)關(guān) 系圖的強聯(lián)通分量,標(biāo)記在request實例中;
[0044] B3reqUeSt實例向資源調(diào)度迭代器發(fā)送解析數(shù)據(jù),同時資源調(diào)度迭代器向資源管 理控制器發(fā)送請求,以獲取云計算平臺的的實時資源狀態(tài);
[0045] B4資源管理控制器為每個物理機創(chuàng)建host實例,每個實例為四元組,其中:
[0046] 四元組包含 cpu_total, cpu_used, mem_total, mem_used ;cpu 表不分別單個物理 機表示cpu核數(shù);cpu_used表示單個物理機已經(jīng)使用的cpu核數(shù);mem_total表示單個物理 機內(nèi)存總數(shù),以GB為單位;mem_ Uesd表示單個物理已經(jīng)使用內(nèi)存總數(shù),以GB為單位;
[0047] 上述數(shù)值均通過云計算平臺的監(jiān)控接口獲取這些數(shù)值;
[0048] B5將用戶的請求作為要分配的資源池,當(dāng)多個資源請求到來的時候?qū)⑦@些資源請 求抽象為分配給物理機的總資源,同時將物理機的容量作為實際的請求向量計算每個物理 機host的dominant_share,資源向量中最大資源占有率稱為物理機的dominant_share;剩 余資源向量中的最大值成為該物理機的dominant_desire;其計算公式如下所示:
[0049] 云計算資源總數(shù)向量:
[0050]
[0051] 單個物理機i資源總量:
[0052] HTi= <ht i;1,…h(huán)h,)
[0053] 單個物理機i已分配資源總量:
[0054] 叫=<hu ",…h(huán)Ui')
[0055] 單個物理機i的dominant_share計算方法:
【主權(quán)項】
1. 一種面向關(guān)聯(lián)任務(wù)請求的虛擬資源調(diào)度系統(tǒng),其特征在于:包括資源管理控制器、 資源請求解析器以及資源調(diào)度迭代器; 資源管理控制器用于接收資源監(jiān)控系統(tǒng)所獲取的物理宿主機的資源情況; 資源請求解析器用于前端預(yù)處理流程和資源請求封裝進行封裝; 資源調(diào)度迭代器用于進行調(diào)度的迭代控制過程,產(chǎn)生資源調(diào)度結(jié)果。
2. 根據(jù)權(quán)利要求1所述的面向關(guān)聯(lián)任務(wù)請求的虛擬資源調(diào)度系統(tǒng),其特征在于:所述 資源管理控制器具體用于: 1) 與資源監(jiān)控接口對接,實時獲取云計算集群資源狀態(tài)情況; 2) 結(jié)合資源調(diào)度迭代控制器,從監(jiān)控數(shù)據(jù)中抽取平臺中各個物理機的資源情況,資源 情況包括cpu、內(nèi)存、帶寬以及硬盤的相應(yīng)狀態(tài); 3) 根據(jù)云計算集群中每個物理機的資源情況,在調(diào)度迭代器控制器請求時,實時的 計算出集群中的資源總量和剩余資源總量,同時計算當(dāng)前狀態(tài)下各個物理機的do