許英鑫,孫 磊,趙建成,郭松輝
(信息工程大學(xué),鄭州450001)
(*通信作者電子郵箱xxyyxx151@163.com)
近期,國家互聯(lián)網(wǎng)應(yīng)急中心發(fā)布的《2018 中國互聯(lián)網(wǎng)網(wǎng)絡(luò)安全報告》顯示,云平臺已經(jīng)成為發(fā)生網(wǎng)絡(luò)攻擊的重災(zāi)區(qū),隨著我國5G、IPv6、物聯(lián)網(wǎng)等試用工作逐步推進,越來越多的業(yè)務(wù)場景正在向云端遷移,集中式的安全服務(wù)與密碼運算需求凸顯。在廣闊市場需求的推動下,國內(nèi)外各大產(chǎn)商紛紛布局云計算安全防護技術(shù)。以現(xiàn)場可編程門陣列(Field Programmable Gate Array,F(xiàn)PGA)、特 殊 應(yīng) 用 集 成 電 路(Application Specific Integrated Circuit,ASIC)芯片等硬件作為密碼運算的加速協(xié)處理器,為租戶提供高速的密碼運算服務(wù)的做法逐漸受到各大云服務(wù)提供商的青睞。例如,Amazon推出的AWS CloudHSM 服務(wù),通過硬件安全模塊來負(fù)責(zé)租戶私有密鑰和存儲和管理[1];阿里云聯(lián)合江南天安把經(jīng)過國家密碼管理局認(rèn)證的硬件密碼機聚合成池為云租戶云數(shù)據(jù)加密服務(wù)[2]。另一方面,由于缺乏高效經(jīng)濟的加速器虛擬化解決方案,租戶不得不獨占式使用昂貴的加速器資源,在降低資源利用率的同時提高了服務(wù)成本。
FPGA 虛擬化技術(shù)允許將支持部分重新配置的單個FPGA 設(shè)備劃分為多個虛擬FPGA(virtual FPGA,vFPGA),當(dāng)租戶需求發(fā)生變更時,只有一個或多個部分的FPGA 邏輯需要修改,而不影響其余部分的正常運行[3]。在本論文課題組前期的工作中,已經(jīng)在研究現(xiàn)有云安全解決方案的基礎(chǔ)上,設(shè)計了可重構(gòu)密碼資源池的管理和調(diào)度框架,并提出了基于多任務(wù)多階段預(yù)測的vFPGA 調(diào)度算法[4]。通過虛擬化技術(shù)把支持局部重構(gòu)的FPGA 虛擬成多個vFPGA,并作為密碼運算協(xié)處理器按照租戶所需的密碼運算需求(如AES、RSA和MD5等)進行分配。然而,在實驗過程中發(fā)現(xiàn),vFPGA 的初始部署會對FPGA 的使用數(shù)量產(chǎn)生較大影響。為了進一步提高FPGA 資源利用率、降低服務(wù)成本,需要對vFPGA 部署策略進行進一步的研究。
從提高資源利用率的角度出發(fā),研究如何獲得一個最優(yōu)部署策略,把用戶所需的vFPGA 資源部署到最少的FPGA 上可以歸納為vFPGA 部署(Virtual FPGA Placement,VFP)問題。在租戶規(guī)模較小時,該問題可以作為線性規(guī)劃(Linear Programming,LP)問題來求解,但是隨著租戶數(shù)量的快速增長,啟發(fā)式方法,如遺傳算法(Genetic Algorithm,GA)或蟻群優(yōu)化(Ant Colony Optimization,ACO)算法等,在處理該類NP困難問題時能夠提供更高的求解效率。其中,ACO 算法由于在蟻群中采用全局共享信息素,使得經(jīng)驗信息可以在蟻群中迅速傳播,從而有助于多螞蟻之間的合作,提高全局勘探能力,從而獲得更好的求解效果。
本文內(nèi)容包括以下幾個方面:
1)結(jié)合FPGA 的工作特點對ACO 算法進行優(yōu)化,設(shè)計了一個新的vFPGA 部署策略,增加了螞蟻的資源狀態(tài)感知功能;
2)在實施vFPGA 資源調(diào)度時,預(yù)留了一定的空閑空間從而有效降低了因租戶需求變更而導(dǎo)致發(fā)生SLA沖突的概率;
3)對CloudSim[5]進行功能擴展,使其支持FPGA 類和vFPGA類的仿真,并合成工作流對文章提出的算法進行評估。
為了解決云計算中的資源分配部署的問題,國內(nèi)外學(xué)者們做了大量的努力,并取得了豐碩的成果。
線性規(guī)劃被首先用于求解類似的問題。Speitkamp等[6]針對服務(wù)器部署優(yōu)化問題,基于數(shù)學(xué)規(guī)劃思想提出了一個基于多個決策模型的優(yōu)化方案,通過服務(wù)器的整合提高數(shù)據(jù)中心的資源利用率。Teyeb 等[7]以降低能耗為目標(biāo),在多租戶云數(shù)據(jù)中心通過兩個整數(shù)線性規(guī)劃方程優(yōu)化虛擬機的部署。Dai等[8]雖然同樣把虛擬機資源分配問題當(dāng)成LP 問題,但是使用了貪婪算法進行求解,解決了使用靜態(tài)策略時由于需求變化感知滯后而導(dǎo)致的資源分配不平衡問題,降低了數(shù)據(jù)中心的能耗。然而當(dāng)租戶規(guī)模較大時,使用整數(shù)規(guī)劃求解數(shù)據(jù)中心資源分配部署問題,往往需要較大的計算開銷,影響資源調(diào)度的及時性。
現(xiàn)階段,通過啟發(fā)式方法,如遺傳算法等,對VFP 問題進行求解能夠提供更高的計算效率。Veredas 等[9]使用遺傳算法對FPGA 部署進行優(yōu)化,從而保證了關(guān)鍵路徑的最小化,有效降低了系統(tǒng)的總體開銷。Riahi等[10]基于多目標(biāo)遺傳算法,設(shè)計了一個高效的虛擬機部署框架以最大限度地減少資源浪費,并在云平臺上進行實現(xiàn),驗證了所提框架的可行性。在系統(tǒng)運行的過程中,如果僅僅考慮提高資源利用率,則可能導(dǎo)致資源的過度分配。當(dāng)租戶的資源需求增加時,由于系統(tǒng)資源分配存在著一定的滯后性,可能導(dǎo)致服務(wù)阻塞,甚至宕機,嚴(yán)重影響租戶滿意度。為了在有效地降低系統(tǒng)能耗開銷和持續(xù)的服務(wù)質(zhì)量之間進行折中,Haghighi 等[11]結(jié)合聚類的思想,對遺傳算法進行了改進,提出了一種改進的k均值聚類遺傳算法。
ACO 算法是另一種啟發(fā)式方法,最初是為了解決旅行商問題而提出。相比遺傳算法,ACO 算法更加便于與其他智能算法進行結(jié)合,能夠針對具體的應(yīng)用場景進行相應(yīng)優(yōu)化,同時由于覓食原則、避障原則等原則的加入,提供了更大的選擇空間,讓其在解決VFP 及類似問題時,往往能取得更好的效果。楊星等[12]設(shè)計了一種改進的蟻群算法并用于指導(dǎo)虛擬機部署,通過增加性能感知策略,并改變單只螞蟻的信息素更新規(guī)則,能夠有效避免虛擬機之間的硬件資源競爭。為了從全局優(yōu)化的角度來最小化物理服務(wù)器的使用數(shù)量,Liu等[13]把ACO算法的一個變種——蟻群系統(tǒng)(Ant Colony System,ACS)與信息素沉積策略相結(jié)合,用于解決虛擬機部署問題。同樣的ACO 算法在FPGA 資源池能耗優(yōu)化及硬件任務(wù)調(diào)度方面的應(yīng)用也取得了一定的成效[14-15]。
在可重構(gòu)密碼資源池中,VFP 問題并不是標(biāo)準(zhǔn)的旅行商問題。在對蟻群算法進行優(yōu)化時,需要考慮以下兩個問題:首先,用戶動態(tài)變化的vFPGA 資源需求,對系統(tǒng)的FPGA 資源彈性提出了更高的要求,需要在提高FPGA 資源利用效率的同時,保證系統(tǒng)的服務(wù)質(zhì)量;其次,為了減少系統(tǒng)重構(gòu)開銷和通信帶寬占用,需要避免vFPGA的頻繁遷移。
本章首先定義了VFP 問題并建立了數(shù)學(xué)模型,然后給出了基于蟻群算法的vFPGA部署策略。
密碼資源池根據(jù)基礎(chǔ)設(shè)施即服務(wù)交付模型以虛擬機(Virtual Machine,VM)實例的形式向租戶提供計算資源,每個VM 分配有一塊vFPGA 作為進行密碼運算的實體。系統(tǒng)可以劃分為三個層次,分別是FPGA 資源池層、管理平臺層和租戶應(yīng)用層。具體框架如圖1所示。
圖1 密碼資源池框架Fig. 1 Framwork of cryptographic resource pool
FPGA資源池為服務(wù)器集群,每臺服務(wù)器以支持局部可重構(gòu)的FPGA 作為計算實體。借助FPGA 虛擬化技術(shù),每塊FPGA 可以劃分為多塊vFPGA,各vFPGA 之間相互獨立,對其中一塊進行重新配置時,不影響其他vFPGA 的正常工作。服務(wù)器虛擬化結(jié)構(gòu)如圖2所示。
圖2 服務(wù)器虛擬化結(jié)構(gòu)Fig. 2 Virtualization structure of servers
管理平臺由資源管理、需求管理、網(wǎng)絡(luò)管理三個模塊組成,以3 個模塊的監(jiān)控信息作為調(diào)度決策的依據(jù),調(diào)度決策過程如圖3所示。
圖3 調(diào)度決策過程Fig. 3 Scheduling and decision-making process
首先,管理平臺獲取租戶工作流、資源狀態(tài)、網(wǎng)絡(luò)狀態(tài)等系統(tǒng)狀態(tài)信息,通過預(yù)測模型得到工作流需求預(yù)測值及資源列表;其次,全局調(diào)度器根據(jù)需求信息和資源信息通過優(yōu)化蟻群算法求解VFP 問題,得到部署矩陣為各個租戶VM 分配vFPGA資源。實現(xiàn)過程如算法1所示。
最后,工作在VM 內(nèi)部的本地調(diào)度器是在得到租戶需求預(yù)測值及vFPGA 資源后,根據(jù)租戶需求將部署在該VM 上vFPGA 資源根據(jù)租戶需求進行動態(tài)重構(gòu)。實現(xiàn)過程如算法2所示。
租戶應(yīng)用層分為工作流及密碼服務(wù)實體兩個部分。其中,工作流由租戶產(chǎn)生,隨著租戶密碼運算需求的變化而動態(tài)變化。密碼服務(wù)實體即租戶VM 是向租戶提供密碼服務(wù)的載體,每個VM分配有vFPGA資源作為密碼運算協(xié)處理器。
為了更好地描述VFP 問題,對可重構(gòu)密碼資源池進行抽象,并建立了數(shù)學(xué)模型,模型參數(shù)表示及其對應(yīng)的含義如表1所示。
VFP問題的目標(biāo)方程如式(1)所示:
約束方程如下:
其中:由于跨FPGA 通信需要大量的帶寬支持,容易導(dǎo)致系統(tǒng)的堵塞,造成通信延遲,因此,使用式(4)來確保把vFPGA 分配給一個且只有一個FPGA。在式(6)中,free表示在單片F(xiàn)PGA中預(yù)留的動態(tài)可重構(gòu)面積占總邏輯面積的百分比,取值為[0,1]。預(yù)留面積用于避免FPGA 資源的過度分配而導(dǎo)致的頻繁遷移。
表1 系統(tǒng)模型參數(shù)及其對應(yīng)的含義Tab.1 System model parameters and their meanings
在使用蟻群算法對VFP 問題進行求解的過程中,本文結(jié)合密碼資源池的實際應(yīng)用需求,對算法流程和參數(shù)設(shè)置進行了一定的優(yōu)化。
首先,由于蟻群算法是從全局的角度進行vFPGA 部署優(yōu)化,每次調(diào)用算法獲取部署矩陣時,租戶vFPGA 部署位置往往需要進行變更,盡管該租戶所需vFPGA 資源并未發(fā)生變化。頻繁的vFPGA 遷移需要大量的通信開銷,增加重配置時延,影響系統(tǒng)服務(wù)質(zhì)量。為了減少不必要的vFPGA 遷移操作,在系統(tǒng)工作過程中,根據(jù)工作流預(yù)測的結(jié)果,按照資源占有和需求情況,對其中的資源不足和過剩實例進行標(biāo)記,每次運行算法只需對標(biāo)記實例進行部署優(yōu)化。
其次,針對負(fù)載均衡問題,在一般蟻群算法的基礎(chǔ)上,賦予了螞蟻資源數(shù)量感知能力,在算法執(zhí)行的過程中,增加對過載節(jié)點低負(fù)載節(jié)點的感知。通過適度提高信息素濃度,鼓勵螞蟻更多地把vFPGA 部署到低負(fù)載節(jié)點中,通過大幅降低信息素濃度減小過載節(jié)點被螞蟻發(fā)現(xiàn)的概率。
最后,針對預(yù)測模型存在一定預(yù)測誤差而導(dǎo)致為租戶分配的vFPGA 資源不足的問題,在模型預(yù)測的基礎(chǔ)上增加了一定的預(yù)留空間,能夠在有效保證系統(tǒng)的QoS 的同時,減少vFPGA的遷移次數(shù)。
在標(biāo)記實例階段,需要根據(jù)預(yù)測結(jié)果確定FPGA 中所有租戶在下一階段的vFPGA資源需求之和,如式(7)所示:
如式(8)所示,當(dāng)FPGA 上動態(tài)可重構(gòu)部分的邏輯單元數(shù)無法滿足部署在其上的所有vFPGA 的需求時,定義其為資源不足實例。
如式(9)所示,當(dāng)FPGA 上動態(tài)可重構(gòu)部分的邏輯單元數(shù)在滿足部署在其上的所有vFPGA 的需求后仍有剩余時,標(biāo)記其為資源過剩實例。
運用優(yōu)化蟻群算法求解VFP 問題的總體流程如圖4所示。
圖4 優(yōu)化蟻群算法總體流程Fig. 4 Flow chart of optimized ACO algorithm
步驟2 初始化部署矩陣,產(chǎn)生方案K0,把M塊vFPGA 部署到N塊FPGA 中,平均每塊FPGA 上部署塊vFPGA中,此時minNum(K0)=N,之后生成并初始化一只螞蟻;
步驟3 匹配vFPGA與FPGA,在t時刻螞蟻z把vfj部署到fi的概率可以用式(10)計算,其中,Tvf表示待部署vFPGA 表,Tf表示未過載的FPGA表;
步驟4 更新Tvf和Tf,假設(shè)在步驟3 中vfj被部署于fi,把vfj從Tvf移出,當(dāng)fi過載時把它從Tf移出,返回步驟3,否則跳到步驟5;
步驟5 每只螞蟻得到一個解,得到當(dāng)前最優(yōu)解;
步驟6 根據(jù)式(11)更新信息素矩陣,其中ρ為揮發(fā)因子;
步驟7 重復(fù)步驟2~6 直到最大代數(shù),得到全局最優(yōu)解,最后在擴展后的CloudSim中運行仿真,并記錄結(jié)果。
假設(shè)密碼資源池中使用的FPGA 數(shù)量為M,平均每塊FPGA 上部署Navg塊vFPGA。密碼資源池中租戶規(guī)模即vFPGA 總量為N,租戶需要的密碼運算類型數(shù)為k。在本節(jié),本文分別從實例標(biāo)記、全部調(diào)度和局部調(diào)度三個方面對調(diào)度算法的時間復(fù)雜度進行分析。
首先,在實例標(biāo)記階段,為了得到FPGA 資源使用情況,需要遍歷密碼資源池中所有的FPGA 實例,計算該FPGA 中所有vFPGA 下一階段的各種算法的資源需求,并與現(xiàn)有資源量進行對比得到實例類型,其時間復(fù)雜度為O(kNNavg)。
其次,本地調(diào)度器的功能是在租戶虛擬機中按需對本地vFPGA 進行局部重配置。進行局部重配置之前需要計算vFPGA 內(nèi)部各個算法IP 核的數(shù)量變化,其時間復(fù)雜度為O(kNavg)。因為密碼資源池中vFPGA 數(shù)量為N,所以整個局部調(diào)度階段的時間復(fù)雜度為O(kNNavg)。
最后,全局調(diào)度階段的時間復(fù)雜度可以分為利用優(yōu)化蟻群算法求得部署矩陣X和為VM 分配相應(yīng)的vFPGA 資源兩個相互獨立的部分。利用優(yōu)化蟻群算法進行求解時,需要進行部署調(diào)優(yōu)的標(biāo)記實例數(shù)量在0~M,螞蟻數(shù)量與vFPGA 數(shù)量一致為0~MNavg,迭代次數(shù)為30,算法時間復(fù)雜度為O()。得到部署矩陣后,需要遍歷X對標(biāo)記FPGA 進行重新劃分,并把vFPGA 分配給對應(yīng)的VM,其時間復(fù)雜度為O()。因此,全局調(diào)度階段的時間復(fù)雜度為。
綜上所述,由于實例標(biāo)記、本地調(diào)度和全局調(diào)度是3 個相互獨立的階段,密碼算法IP 核種類為k,通常為一個較小的常數(shù),又有N≈,所以整個調(diào)度算法的時間復(fù)雜度為O(MN2)。
在云平臺仿真工具CloudSim[5]的基礎(chǔ)上進行擴展,增加了FPGA 類、vFPGA 類分別部署在Host 類、Vm 類上。由同一FPGA 虛擬出的所有vFPGA 在空間上共享該FPGA 的邏輯單元,vFPGA上有不同類型的算法功能模塊,用于處理對應(yīng)類型的算法任務(wù)。實驗過程中,借鑒文獻[16]進行工作流合成及取樣。使用滿足正態(tài)分布的隨機工作流作為租戶任務(wù)請求輸入,該工作流的時間跨度為48 h,時間序列采樣間隔為10 min,前24 h 作為訓(xùn)練集,后24 h 作為測試集。時間序列預(yù)測算法和資源調(diào)度算法嵌入在數(shù)據(jù)中心代理中,從第25 h 開始,系統(tǒng)每10 min執(zhí)行一次資源調(diào)度算法,使用自回歸整合滑動平均(AutoRegressive Integrated Moving Average,ARIMA)模型對租戶工作流進行預(yù)測,預(yù)測步數(shù)為3。最后,分別統(tǒng)計不同實驗設(shè)置下的vFPGA 遷移次數(shù)、SLA 沖突率和平均FPGA實例啟用數(shù)量對算法的性能進行評價。
借鑒文獻[16-17]進行實驗設(shè)置,在CloudSim 初始化時,創(chuàng)建一個部署有600臺Host的Datacenter,每臺Host配置相同,均為2 660 MIPS,16 GB RAM 和一塊FPGA。其中,MIPS 表示單位時間內(nèi)能夠執(zhí)行的百萬指令數(shù)量,是衡量CPU 性能的指標(biāo)。FPGA 類的參數(shù)按照Xilinx VC709 FPGA 開發(fā)板中XC7VX690T FPGA的參數(shù)進行設(shè)置,板上內(nèi)存8 GB,總邏輯單元數(shù)為693,120,其中7%為靜態(tài)邏輯區(qū)域,其余為局部動態(tài)可重構(gòu)區(qū)域[15]。通過QuartusⅡ13.0工具進行綜合布線,并使用ModelSim 工具進行仿真得到實現(xiàn)AES、RC4、RSA 和MD5 算法IP核需要的邏輯單元數(shù)量和算法處理速度,具體數(shù)據(jù)如表2所示,每個算法IP核的重構(gòu)時延為16 ms??芍貥?gòu)密碼資源池中每名租戶需要一塊vFPGA 提供密碼運算服務(wù),在初始狀態(tài)下每塊FPGA 虛擬出4 塊vFPGA,以0 時刻各租戶的需求作為vFPGA分配和配置的依據(jù)。初始狀態(tài)下的資源分配策略并沒有考慮各個服務(wù)器中FPGA 資源的利用情況,在1時刻系統(tǒng)第一次運行vFPGA調(diào)度算法時會對整個密碼資源池的資源分配進行大幅度的調(diào)整,此時的數(shù)據(jù)無法正確地反映算法的性能優(yōu)劣,所以選擇從2時刻開始對實驗數(shù)據(jù)進行記錄。SLA沖突率的定義如式(12)所示,其中,CTS表示SLA沖突次數(shù),當(dāng)用當(dāng)租戶擁有的vFPGA資源無法滿足其運算需求時,CTS值加1。
表2 不同算法IP核參數(shù)Tab. 2 IP core parameters of different algorithm
首先,測試vFPGA 部署算法對系統(tǒng)性能的影響。現(xiàn)有的vFPGA 部署算法[15]一般采用的是靜態(tài)部署的策略,即在每塊FPGA 上部署固定數(shù)量的vFPGA 并分配給租戶使用。此時,系統(tǒng)仍然能夠根據(jù)預(yù)測模型的預(yù)測結(jié)果進行FPGA 動態(tài)重構(gòu),但是無法完成vFPGA實例的遷移。
分別采用默認(rèn)部署(Without Scheduler,WS)算法、蟻群算法(ACO)及優(yōu)化蟻群(Improved Ant Colony Optimization,IACO)算法三種調(diào)度方案進行對比實驗。其中,在WS 算法中,vFPGAs部署在每個FPGA的數(shù)量默認(rèn)為4,8和12;借鑒文獻[13]進行ACO 算法和IACO 算法的參數(shù)選擇,其中螞蟻數(shù)量與待部署vFPGA 數(shù)量一致,迭代的代數(shù)為30,α= 1,β=1,ρ= 0.1。在IACO 算法中預(yù)留空間free取值為3%;租戶的數(shù)量分別為500、1 000、1 500 和2 000。每個租戶分配有一塊vFPGA提供密碼運算服務(wù)。實驗結(jié)果如圖5所示。
從FPGA 使用數(shù)量的角度出發(fā),當(dāng)采用WS 算法時,F(xiàn)PGA啟用數(shù)量與vFPGA 初始放置數(shù)量成反比,當(dāng)默認(rèn)部署數(shù)量為12 時,F(xiàn)PGA 使用數(shù)量在所有方案中最少,但是此時SLA 沖突達到25%以上,遠遠超過其他方案,這是由于當(dāng)有太多vFPGA 部署在一個FPGA 時,不同租戶之間競爭有限的邏輯區(qū)域而導(dǎo)致的。如果一塊FPGAh 上默認(rèn)部署的vFPGA 資源較少,則會增加FPGA 的使用量。因此,WS 算法適用于租戶vFPAG資源需求固定或者變化較小的場景中。
采用ACO 算法可以使用較少數(shù)量FPGA 來滿足租戶的資源需求,但是在SLA沖突率方面,ACO算法的SLA沖突率大小取決于預(yù)測模型的預(yù)測精度,同時在用戶規(guī)模較大的情況下,租戶的需求動態(tài)變化往往會導(dǎo)致vFPGA 的最優(yōu)部署位置的變化,需要頻繁地遷移。因此,ACO 適用于資源緊張、租戶對服務(wù)質(zhì)量要求不高的場景中。
IACO 算法的使用能夠在vFPGA 遷移次數(shù)、SLA 沖突率和FPGA 實例啟用數(shù)量間進行折中。相較于傳統(tǒng)的ACO 算法,IACO 算法雖然增加了FPGA 的使用數(shù)量,但是能夠有效減少vFPGA遷移次數(shù),且賦予了密碼資源池更高的資源彈性,可以有效避免因工作流預(yù)測精度不足而導(dǎo)致的SLA沖突
其次,測試預(yù)留空間free取值對系統(tǒng)性能的影響。在租戶的數(shù)量為500,1 000、1 500和2 000時,使用優(yōu)化蟻群算法指導(dǎo)vFPGA 部署,測試系統(tǒng)的性能。測試過程中螞蟻數(shù)量與待部署vFPGA 數(shù)量一致,迭代的代數(shù)為30,α= 1,β= 1,ρ= 0.1。free取值分別為0,3%,6%,9%,12%和15%。實驗結(jié)果如圖6所示。
圖6 不同規(guī)模下free取值對系統(tǒng)性能的影響Fig. 6 Influence of free value on system performance under different scale
由圖6 仿真結(jié)果可知:首先,在不同租戶規(guī)模下,密碼資源池FPGA 使用量隨預(yù)留空間free取值的增大而增大。這是由于free取值增大之后,降低了系統(tǒng)中FPGA 資源的利用率,需要通過激活更多的FPGA 來滿足租戶的密碼運算需求。其次,系統(tǒng)發(fā)生SLA 沖突的概率隨著free的增大而減小,最后趨于平穩(wěn)。因為預(yù)留空間的存在,當(dāng)租戶資源需求的預(yù)測值小于實際需求值時,可以利用預(yù)留空間進行局部重構(gòu),從而降低了系統(tǒng)發(fā)生SLA 沖突的概率。同樣的,vFPGA 遷移次數(shù)也隨著free取值的增大而減小,最后逐漸趨于0。增大free可以減少標(biāo)記實例的數(shù)量、縮小問題規(guī)模,從而減少vFPGA 遷移次數(shù),由于全局調(diào)度器首次把FPGA 邏輯資源劃分為多個vFPGA時留有一定的空閑空間,所以,在系統(tǒng)運行的過程中租戶資源需求的變化不容易導(dǎo)致過載情況的發(fā)生,此時,只需要在當(dāng)前FPGA 中進行動態(tài)重配置,而不需要進行vFPGA 遷移操作。因此,預(yù)留空間的設(shè)計能夠在FPGA 資源利用率和系統(tǒng)服務(wù)質(zhì)量間進行折中,在本文仿真場景下,綜合考慮FPGA使用數(shù)量、系統(tǒng)服務(wù)質(zhì)量、vFPGA 遷移開銷,當(dāng)free取值為9%時,系統(tǒng)的總體性能最優(yōu)。
本文在課題組前期工作的基礎(chǔ)上,提出了一個基于優(yōu)化蟻群算法的vFPGA 部署策略,把vFPGA 資源把vFPGA 當(dāng)成像CPU、內(nèi)存一樣的硬件資源根據(jù)租戶需求進行動態(tài)調(diào)度,在保證租戶滿意度的前提下,降低了服務(wù)成本,進一步提高了密碼資源池的資源利用效率和租戶的應(yīng)用體驗??梢詮囊韵聝蓚€方向展開下一步的工作:一是以降低綜合布線開銷和提高資源利用效率為目標(biāo),從硬件層面研究FPGA 可重構(gòu)區(qū)域劃分?jǐn)?shù)量的優(yōu)化問題;二是把基于FPGA 的密碼資源池中其他資源,例如CPU、內(nèi)存、磁盤空間等納入考慮范圍,研究vFPGA資源的部署和調(diào)度問題。