王 瑛,張 芳,裴 升,李海波,周 波,劉坤禹
(中國電子科技集團公司第三十研究所,四川 成都 610041)
密碼技術是云應用、云數(shù)據(jù)和云虛擬化設備的安全基礎之一。傳統(tǒng)密碼技術受限于擴展性差的密碼服務載體,無法滿足云環(huán)境下用戶對數(shù)據(jù)存儲、計算和傳輸?shù)陌踩雷o要求。云環(huán)境下的密碼服務是當前云安全解決方案的主流模式,而當前基于云計算的密碼服務具有請求多樣、算法多樣的任務多樣性。不同的服務應用根據(jù)自身的安全需求,可以選擇自身需要的不同強度的密碼服務。一種合理的調(diào)度方案是解決密碼資源安全、合理、快速分配的關鍵。
當前,云資源調(diào)度策略已經(jīng)從簡單的單目標調(diào)度策略逐步演變?yōu)榭深A測的、多目標的、智能化的復雜調(diào)度策略。除需要考慮CPU、內(nèi)存、存儲等資源外,云環(huán)境下的密碼服務需要考慮新引入的密碼計算資源。不僅要實現(xiàn)密碼服務平臺的負載均衡和密碼服務質(zhì)量等目標,還要考慮密碼計算資源利用率和密碼設備的安全要求等對密碼服務云性能的影響。如何針對不同的密碼服務實現(xiàn)所請求的密碼服務的快速完成,并完成多個虛擬密碼機之間的合理調(diào)度,是實現(xiàn)資源利用率最優(yōu)化的關鍵。
針對上述問題,本文提出基于任務截止時間的多級密碼服務調(diào)度技術,將任務截止時間轉(zhuǎn)化為任務緊迫度,以衡量任務的完成優(yōu)先級。通過不同等級的調(diào)度,完成任務請求和虛擬密碼機之間的映射,從而滿足不同應用系統(tǒng)的差異化需求,整體提升云環(huán)境下的密碼服務性能。
任務調(diào)度是指在特定時間將某些任務分配給特定的資源,是云計算中的一個重要問題。如何使用一種合理的調(diào)度機制,是提高性能和資源有效利用率的關鍵。目前,國內(nèi)外學者研究了很多不同類型的調(diào)用機制,如云服務調(diào)度、啟發(fā)式調(diào)度、工作流調(diào)度、靜態(tài)調(diào)度和動態(tài)調(diào)度。在云計算中,資源的內(nèi)部和外部需求都要維護,同時帶寬、存儲、資源開銷和響應時間等需求可能因每個任務的不同而不同。負載均衡、可伸縮性、可靠性、性能以及對計算節(jié)點的資源動態(tài)重新分配,是任務調(diào)度的主要問題。所以,在云計算中需要一個有效的任務調(diào)度算法。
根據(jù)最近的研究綜述,基于粒子群優(yōu)化算法(Particle Swarm Optimization,PSO)的任務調(diào)度和基于遺傳算法(Genetic Algorithm,GA)的任務調(diào)度是研究熱點。
PSO算法適用于動態(tài)任務調(diào)度。文獻[1]提供了一個基于粒子群優(yōu)化算法的啟發(fā)式調(diào)度方法,用于減少總執(zhí)行開銷。該文獻對比了PSO和最佳資源選擇(Best Resource Selection,BRS)算法,結(jié)論是PSO有提升,節(jié)省了3倍的成本,同時增強了現(xiàn)有資源的工作分布,但是導致了更高的傳輸和存儲開銷。文獻[2]簡要提到了資源配置危機,通過設計一種PSO算法解決這一危機。該理論基于任務總執(zhí)行時間、資源保留和每個任務的QoS,研究了多目標資源優(yōu)化問題中的最優(yōu)調(diào)度方法。然而,該成果只能夠用于簡單任務,沒有適用于任務調(diào)度問題的一般收斂理論。
文獻[3]采用最小-最?。∕in-Min)和最大-最?。∕ax-Min)方法,結(jié)合標準遺傳算法,提出了一種增強遺傳算法。Min-Min算法是一種最小執(zhí)行時間算法,將任務盡量分配至運算能力最強的資源節(jié)點上,減少任務執(zhí)行時間,但會導致負載不均衡,使得能力較強的節(jié)點產(chǎn)生極高的占用率,而其他節(jié)點出現(xiàn)較小的利用率。Max-Min算法是將可執(zhí)行任務時間最早的節(jié)點分配給需要最大資源的任務,然后更新節(jié)點的可用時間和剩余任務集,直到全部任務調(diào)用完畢。文獻[4]闡述了如何使用遺傳算法進行任務調(diào)度。文獻[5]解釋了云服務工作流調(diào)度和使用分層云服務工作流的優(yōu)化方案,包括云工作流任務并行以及分割、語法和語義的云工作流任務匹配算法以及基于多個QoS約束的云工作流調(diào)度和優(yōu)化,并對該算法的性能進行了實驗分析。文獻[6]解釋了一種用于云環(huán)境中使用優(yōu)先隊列進行任務調(diào)度的改進遺傳算法。當前的文獻大多是基于一般的云服務任務調(diào)度,但是針對密碼服務的任務調(diào)度沒有很好的解決方案。針對該問題,本文提出了一種基于任務截止時間的多級密碼服務調(diào)度方案。
虛擬機調(diào)度策略在不同的目標之間往往是相互沖突的[7]。
(1)以提高資源利用率為目標的調(diào)度策略需要在減少活躍虛擬機的情況下,將云資源充分地分配到各個虛擬機,而這將導致在突發(fā)性負載條件下云服務質(zhì)量的降低,影響用戶體驗。
(2)以服務質(zhì)量為目標的調(diào)度策略往往會預留部分資源用于處理突發(fā)任務,保證服務質(zhì)量,但是易造成資源閑置。
(3)以降低能耗為目標的調(diào)度策略通常通過減少活躍虛擬機來降低數(shù)據(jù)中心的能耗,以低成本完成高負載,但同樣會導致突發(fā)性負載條件下的宕機情況;
(4)以負載均衡為目標的調(diào)度策略需要開啟更多的虛擬機,將系統(tǒng)負載均衡地分配到各個云主機,既增加了能耗,又不能充分利用云資源。
關于虛擬機調(diào)度的研究,大部分方法都是在特定的研究情境中滿足主要目標,同時兼顧其他次要目標。本文主要針對云環(huán)境中的密碼服務,與傳統(tǒng)任務相比,密碼服務的任務與虛擬資源屬性之間、任務與用戶的身份之間,存在很強的依賴型。即使是使用相同的密碼服務,由于用戶需求不同,任務所使用的密碼算法可能不相同,導致不同的密碼算法對云計算中的資源調(diào)度和需求都不同。密碼服務對任務調(diào)度的時效性、安全性要求更高,各種密碼算法的復雜度也更高。針對上述問題,本文在傳統(tǒng)任務調(diào)度算法的基礎上提出了一種基于任務截止時間的多級密碼服務調(diào)度策略。
任務調(diào)度模型如圖1所示。本文提供的任務分析和任務調(diào)度中的密碼處理分別由多個虛擬密碼機完成。這里的任務主要是指一次完整的密碼協(xié)議處理,如完成一次數(shù)據(jù)包的加密即為一個任務。
圖1 任務調(diào)度模型
(1)任務集合T={T1,T2,…,Tn},表示參與任務調(diào)度的任務集合,其中下標為i=(1,2,…,n),表示第i個任務。
(2)虛擬密碼機集合V={V1,V2,…,Vm},其中下標為j=(1,2,…,m),表示不同等級的虛擬密碼機。根據(jù)密碼的性能不同,可將其劃分為不同等級的虛擬密碼機群。
(3)FTij=ETij+TSj,其中FTij表示第i個任務在第j個虛擬密碼機的完成時間,F(xiàn)Tij表示第i個任務在第j個虛擬密碼機的執(zhí)行時間,TSj表示虛擬密碼機的最早可用時間。
第i個密碼服務形式化描述如下:
式中:Tid表示任務的標識;Tlen表示任務的大小長度;Ttype標識密碼服務的類型,不同的密碼服務所需的資源不同;Tdl表示該任務的截止時間。
第j個虛擬密碼機形式化描述如下:
式中:Vid表示虛擬密碼機的標識;Vsp表示虛擬密碼機的處理速率;Vfc表示該虛擬密碼機能夠?qū)崿F(xiàn)的密碼功能;Vexc表示任務執(zhí)行時間,Vmin表示最小可執(zhí)行任務時間,若當前節(jié)點有k個任務正在執(zhí)行,則
虛擬密碼機的多元組屬性由任務調(diào)度模塊維護并更新。任務執(zhí)行過程中對每個虛擬密碼機的當前狀態(tài)進行實時監(jiān)控,以提高任務的調(diào)度效率和任務處理的實時性。
本文方案以任務截止時間為主目標,在此本文設置一個任務緊迫度,即:
它表示任務截止時間減去任務完成時間的值。這個值越小,表示任務越緊迫。當DTmin=0時,代表任務截止時間與完成時間相等;DTmin<0,則表示任務無法在截止時間內(nèi)完成,則任務執(zhí)行失敗。當兩個任務的緊迫度相同時,選擇任務標識值更小的優(yōu)先執(zhí)行。
根據(jù)不同的密碼服務需要的資源和任務緊迫度,將任務分為4類不同的密碼服務類型。
(1)Ttype=1表示該服務需要最多的密碼計算資源,任務緊迫度最高的任務(DTmin<1),如非對稱加解密服務等;
(2)Ttype=2表示該服務需要較多的密碼計算資源,任務緊迫度第二的任務(1 (3)Ttype=3表示該服務需要較少的密碼計算資源,任務緊迫度第三的任務(10 (4)Ttype=4表示該服務需要的計算資源不用太多,任務緊迫度最低的任務(20 同樣的,相應的任務等級對應4個等級的虛擬密碼機。等級越高,下標越小,功能及性能越好。這是一個向下單向兼容的虛擬機分類。當高等級虛擬機空閑時,也可以將低等級的任務分配至高等級虛擬機,但是高等級的任務不能夠分配至低等級的虛擬密碼機執(zhí)行,以盡可能達到資源利用率高且負載均衡的目的。 (1)Vfc=1表示該虛擬機具有全部密碼服務的功能,且計算能力最強,可執(zhí)行全部等級的任務,優(yōu)先執(zhí)行高等級任務; (2)Vfc=2表示該虛擬機具有大部分密碼服務的功能,且計算能力較強,可執(zhí)行除Ttype=1的其余等級任務; (3)Vfc=3表示該虛擬機具有較少密碼服務的功能,且計算能力較弱,可執(zhí)行3、4等級的任務; (4)Vfc=4表示該虛擬機只具有固定的密碼服務的功能,且計算能力最弱,只能夠執(zhí)行等級為4的任務。 應用系統(tǒng)發(fā)起的密碼服務請求首先匯聚到任務接收隊列,任務分析模塊對任務接收隊列中的任務包進行分類,并按照不同類型的密碼服務將任務包放入不同的任務請求隊列。這里將任務分類到不同隊列的主要作用有兩個:對應用未設置任務截止時間的,可以根據(jù)不同業(yè)務類型設置截止時間;可以方便使用多線程,同時對多個任務進行映射處理,提升處理速率,同時避免一種類型的任務阻塞其他任務;用戶可以設置相應的參數(shù),如將任務緊迫度設置為高,可以將任務提前送入空隊列進行作業(yè)。 任務調(diào)度具體流程如下。 (1)服務器將任務發(fā)送到任務分析模塊,由任務分析模塊根據(jù)任務的屬性、請求等,將具有任務標識等多元屬性的包頭添加至任務包; (2)任務分析模塊將具有多元屬性域的包頭的任務包發(fā)送到任務調(diào)度模塊; (3)任務調(diào)度模塊通過分析包頭中的相關屬性字段,將任務映射至相應虛擬密碼機進行密碼服務,完成一次任務調(diào)度。 在以任務截止時間為首要目標的同時,通過合理設置,利用Min-Min調(diào)度算法思想,在高等級虛擬密碼機空閑或即將空閑時,將低等級的任務合理分配至高等級虛擬機。在高等級虛擬密碼機占用率過高時,正常分配相應等級的任務至相應虛擬密碼機,從而達到負載均衡的目的。 本文通過對任務截止時間為首要目標進行等級劃分,建立虛擬密碼機性能和任務截止時間之間的映射關系,將任務分別放入不同虛擬密碼機對應的等級隊列。映射的主要依據(jù)是任務處理截止時間要求和等級隊列的最小任務等待時間。截止時間為每個任務包處理完成的時間需求。最小任務等待時間可表示對應虛擬密碼機的處理速率或負載情況,隨著系統(tǒng)運行動態(tài)變化。最終各等級隊列中的任務將被分發(fā)至相應等級的虛擬密碼機,由虛擬密碼機負責執(zhí)行相應密碼服務。完整的密碼服務多級調(diào)度流程如圖2所示。 圖2 密碼服務多級調(diào)度流程 本文為了測試方案的效率,與傳統(tǒng)的遺傳算法(GA策略)和粒子群算法(PSO策略)進行對比。測試對比任務參數(shù)設置如表1所示。 表1 測試參數(shù) 在使用相同數(shù)量虛擬密碼機和任務屬性的情況下,計算3種方案在不同任務數(shù)量情況下的任務執(zhí)行時間,結(jié)果如圖3所示。 圖3 策略效率對比 從圖3可以看出,本文策略比傳統(tǒng)的遺傳算法和粒子群算法在相同任務量的執(zhí)行時間上有進一步的提升。本文方案將任務截止時間作為首要考慮參數(shù),且設計多級調(diào)度,將最緊要的任務調(diào)度到性能最好的虛擬密碼機執(zhí)行,是合理有效的。 本文通過分析現(xiàn)有的任務調(diào)度方案和密碼服務需求,提出了一種基于任務截止時間的多級密碼服務調(diào)度技術。以任務截止時間為第一優(yōu)化目標,提出任務緊迫度的等級劃分,并以本文所提出的任務緊迫度作為衡量任務調(diào)度的標準,使得不同等級的虛擬密碼機完成不同等級的任務。通過和傳統(tǒng)的任務調(diào)度算法進行效率對比可以看出,本文方案在使得完成密碼服務的時間盡量短的情況下,兼顧虛擬密碼機性能的負載均衡,以滿足不同應用系統(tǒng)的差異化需求,整體提升云環(huán)境下的密碼服務能力。3 任務調(diào)度流程
3.1 任務流程
3.2 不同策略的執(zhí)行時間對比測試
4 結(jié)語