本發(fā)明屬于工作流調(diào)度領(lǐng)域,具體涉及一種混合云環(huán)境下對(duì)動(dòng)態(tài)多工作流調(diào)度的費(fèi)用優(yōu)化策略。
背景技術(shù):
云計(jì)算是隨著互聯(lián)網(wǎng)的快速發(fā)展而興起的一種新的計(jì)算模式,這種新興的服務(wù)方式也逐漸成為企業(yè)、政府和學(xué)術(shù)界的關(guān)注熱點(diǎn),因?yàn)樗ㄟ^(guò)虛擬化技術(shù)整合大規(guī)模分布式計(jì)算資源形成巨大的資源池,為用戶提供可彈性伸縮的資源,這不僅有利于資源的有效利用,也能給用戶帶來(lái)便捷、低成本的服務(wù)。
工作流也是一種被廣泛使用的技術(shù),它一般表示大規(guī)模的復(fù)雜應(yīng)用程序,并由很多相互依賴的任務(wù)組成,通常使用dag表示,云計(jì)算服務(wù)擁有計(jì)算能力強(qiáng)、使用價(jià)格低廉等特點(diǎn),越來(lái)越多的企業(yè)或機(jī)構(gòu)選擇將工作流應(yīng)用放到云端執(zhí)行,產(chǎn)生的費(fèi)用開(kāi)銷(xiāo)、執(zhí)行時(shí)長(zhǎng)以及安全性問(wèn)題等是他們所關(guān)注的,因此設(shè)計(jì)合適的工作流調(diào)度算法,在保證工作流qos需求的同時(shí)優(yōu)化系統(tǒng)費(fèi)用支出是很有必要的。云環(huán)境中的工作流調(diào)度問(wèn)題屬于np難問(wèn)題,當(dāng)前的很多工作流都針對(duì)該問(wèn)題提出了近似算法,一般可以分為基于啟發(fā)式、基于元啟發(fā)式和基于數(shù)學(xué)規(guī)劃,基于啟發(fā)式的算法相比基于元啟發(fā)式一般算法復(fù)雜度較低,而基于數(shù)學(xué)規(guī)劃的方式一般是將調(diào)度問(wèn)題轉(zhuǎn)換成整數(shù)線性規(guī)劃問(wèn)題。
技術(shù)實(shí)現(xiàn)要素:
本專(zhuān)利針對(duì)混合云中的動(dòng)態(tài)多工作流調(diào)度問(wèn)題,提出了一種費(fèi)用優(yōu)化的調(diào)度策略,利用表啟發(fā)式的調(diào)度思想,對(duì)用戶動(dòng)態(tài)提交的工作流進(jìn)行相對(duì)緊急程度劃分,優(yōu)先在私有云中為這些任務(wù)合理的分配資源執(zhí)行,提高私有云利用效率,如果私有云資源無(wú)法滿足工作流的截止時(shí)間約束,則考慮任務(wù)的多個(gè)qos約束將該工作流進(jìn)行劃分形成子工作流,然后調(diào)度子工作流到公有云中執(zhí)行,為子工作流分配合理的公有云資源,在保證工作流qos需求的同時(shí)最小化系統(tǒng)整體的費(fèi)用支出。具體步驟如下:
1)由于不同用戶的工作流qos需求不相同,特別是截止時(shí)間約束不同,為了盡量滿足不同用戶的需求,本發(fā)明首先對(duì)同時(shí)到來(lái)的工作流任務(wù)計(jì)算相對(duì)緊急程度,公式如下:
urgentjobi=(wdtjobi-wetjobi)/(wdtjobi-wstjobi)(1)
公式(1)中wdtjobi表示工作流截止時(shí)間,wetjobi表示根據(jù)當(dāng)前時(shí)刻的實(shí)際資源狀態(tài)估計(jì)得到的工作流結(jié)束時(shí)刻,wstjobi表示工作流開(kāi)始調(diào)度的時(shí)刻,通過(guò)該公式對(duì)各工作流進(jìn)行調(diào)度順序的排序。
2)由于工作流內(nèi)部是由許多子任務(wù)構(gòu)成,因此當(dāng)系統(tǒng)資源緊缺時(shí)子任務(wù)的調(diào)度順序也將影響工作流的執(zhí)行,為了使工作流能夠盡量在其截止時(shí)間之前執(zhí)行完,并調(diào)高資源的使用效率,對(duì)工作流內(nèi)部的子任務(wù)同樣進(jìn)行了優(yōu)先級(jí)排序,公式如下:
公式(2)通過(guò)向上遞歸的方式計(jì)算工作流內(nèi)部各子任務(wù)的優(yōu)先級(jí)nrank(ti),它充分體現(xiàn)了各子任務(wù)在整個(gè)工作流中的重要性區(qū)別,然后根據(jù)該優(yōu)先級(jí)制定子任務(wù)之間的先后調(diào)度順序。
3)基于上述1)和2),本發(fā)明提出了一種針對(duì)私有云中動(dòng)態(tài)多工作流的調(diào)度執(zhí)行算法miheft(moveandinsertbasedheterogeneousearliestfinishtime)算法,它能夠充分的利用云資源,將任務(wù)“緊密的”排列在等待隊(duì)列中,減小資源等待的浪費(fèi),提高其利用效率。
4)對(duì)混合云中的動(dòng)態(tài)多工作流進(jìn)行調(diào)度執(zhí)行時(shí),優(yōu)先使用3)中的算法為工作流在私有云中分配資源執(zhí)行,當(dāng)私有云中的資源不能滿足工作流的qos需求時(shí),考慮工作流的通信開(kāi)銷(xiāo)(如公式(3)),io開(kāi)銷(xiāo)(如公式(4)),執(zhí)行開(kāi)銷(xiāo)(如公式(5)),安全開(kāi)銷(xiāo)(如公式(6))等,將工作流進(jìn)行分割,然后調(diào)度部分子工作流到公有云中執(zhí)行。
5)對(duì)于調(diào)度到公有云中執(zhí)行的子工作流,為了充分利用公有云資源,首先嘗試在已租用的公有云資源中為任務(wù)尋找可用資源,如果未找到合適資源,則考慮計(jì)算成本、數(shù)據(jù)通信成本和安全服務(wù)成本后為任務(wù)分配最“經(jīng)濟(jì)”的公有云資源,減小系統(tǒng)整體費(fèi)用支出。
本發(fā)明的有益效果是,通過(guò)混合云環(huán)境下動(dòng)態(tài)多工作流調(diào)度費(fèi)用優(yōu)化策略,為用戶向系統(tǒng)中提交的每一個(gè)工作流分配合適的資源,在盡量保證工作流多個(gè)qos需求的同時(shí),提高私有云和公有云資源的使用效率,減小公有云的租用,最小化系統(tǒng)整體的費(fèi)用支出。
附圖說(shuō)明
圖1本發(fā)明流程示意圖。
圖2混合云下動(dòng)態(tài)多工作流整體調(diào)度框架。
圖3使用不同調(diào)度算法調(diào)度執(zhí)行多工作流實(shí)例對(duì)比。
圖4不同數(shù)量工作流執(zhí)行費(fèi)用開(kāi)銷(xiāo)對(duì)比。
具體實(shí)施方式
附圖1是本發(fā)明的策略流程示意圖。
實(shí)施流程如附圖1所示:
(1)本發(fā)明的整體調(diào)度框架如圖2所示,用戶向系統(tǒng)中不斷提交工作流任務(wù),調(diào)度器優(yōu)先為工作流分配私有云資源,當(dāng)私有云資源不足時(shí)再租用公有云資源。
(2)搜索系統(tǒng)中的工作流任務(wù)池,如果存在還未分配資源的工作流,當(dāng)這些工作流個(gè)數(shù)超過(guò)一個(gè)時(shí),計(jì)算它們的相對(duì)緊急程度urgent,然后進(jìn)行排序等待調(diào)度;接著對(duì)工作流內(nèi)部的子任務(wù)計(jì)算優(yōu)先級(jí)nrank,并根據(jù)該優(yōu)先級(jí)制定子任務(wù)的調(diào)度順序。
(3)在私有云中調(diào)度執(zhí)行時(shí),采用miheft為各工作流子任務(wù)預(yù)分配資源,具體分配方式如圖3實(shí)例所示。如果制定的調(diào)度執(zhí)行方案能夠使工作流在其截至?xí)r間內(nèi)完成,則直接按照該調(diào)度方案執(zhí)行,如果超出截止時(shí)間,則需要將工作流分割成子工作流,調(diào)度部分子工作流到公有云中執(zhí)行。
(4)對(duì)于調(diào)度到公有云中執(zhí)行的任務(wù),優(yōu)先選擇最“經(jīng)濟(jì)”的資源,如果依然無(wú)法滿足工作流的需求,則進(jìn)一步劃分工作流,調(diào)度更多子任務(wù)到公有云中,直到工作流能夠在截止時(shí)間內(nèi)完成。
(5)重復(fù)執(zhí)行上述過(guò)程,為系統(tǒng)中新提交的工作流分配資源調(diào)度執(zhí)行。
最后,通過(guò)在模擬實(shí)驗(yàn)平臺(tái)workflowsim上進(jìn)行實(shí)驗(yàn)對(duì)比,本發(fā)明與greedy算法、hcoc算法和mlf_id算法進(jìn)行對(duì)比,分別執(zhí)行了100和200個(gè)工作流任務(wù),最終系統(tǒng)的總費(fèi)用開(kāi)銷(xiāo)如圖4所示,可以看出本發(fā)明較其他幾個(gè)算法在執(zhí)行費(fèi)用上占優(yōu)。