王澤武,孫 磊,郭松輝,孫瑞辰
(1.信息工程大學 三院,鄭州450001; 2.31011部隊,北京100089)
(*通信作者電子郵箱zewu0307@foxmail.com)
云計算從根本上改變了IT資源服務模式,根據應用類型可分為三個層次,軟件即服務(Software as a Service,SaaS)、平臺即服務(Platform as a Service,PaaS)和基礎設施即服務(Infrastructure as a Service,IaaS)[1]。各服務層次之間相互支撐,向用戶按需提供靈活可伸縮的計算資源和海量可擴展的存儲資源等。隨著云計算數據中心在世界各地大規模興建,云數據海量增長,其安全需求受到持續關注和高度熱議。而傳統密碼技術受限于固定的載體和不可擴展的密碼計算資源,無法滿足針對海量云數據的密碼運算需求[2]。
密碼即服務(Crypto as a Service,CaaS)的出現為傳統密碼技術在云環境下的應用帶來了機遇和挑戰[3]。Amazon和阿里云先后提出了云密碼服務解決方案,建立以云計算模式提供密碼服務的密碼系統,基于軟件定義密碼的思想,將密碼資源資源池化,向云用戶按需分配調度密碼資源,在時變的虛擬環境下傳統密碼機的不可擴展性問題得到解決,有效地避免了用戶密碼資源的浪費或緊缺[4-5]。密碼云為用戶提供安全可靠的密碼服務,而密碼服務的供給載體是虛擬密碼機(Virtual Cipher Machine,VCM),通過軟件模擬具有完整硬件系統功能的、運行在一個完全隔離環境中的完整密碼機系統[6]。密碼云與傳統的業務云一樣,虛擬密碼機的管理和調度是影響密碼服務質量(Quality of Service,QoS)的關鍵,高效的VCM調度能夠實現良好的負載均衡,降低服務等級協議(Service Level Agreement,SLA)違背率[7],研究設計一種行之有效的VCM調度方法十分重要。
當前關于虛擬密碼機調度的研究較少,因此,如何實現密碼云中VCM的高效調度,實現負載均衡,保證密碼服務質量,亟待深入研究。本文提出了一種基于熵權評價的虛擬密碼機調度方法(VCM Scheduling Method based on Entropy Weight Evaluation,VSMEWE),并進行了多次系統實驗,驗證了算法性能。
目前,云密碼服務質量問題受到學者們的廣泛關注,相關研究逐步取得進展[8],但虛擬密碼機的調度效率問題作為影響云密碼服務質量的關鍵,需借鑒傳統業務云中的虛擬機調度方法。
虛擬機調度的目的是負載均衡,利用虛擬機遷移技術保持最優的云服務狀態,以低經濟成本實現高性能服務。從遷移的本質考慮,虛擬機遷移就是數據的網絡傳輸,但頻繁的遷移操作會帶來較高的網絡通信成本,Zhang等[9]、Duggan等[10]和羅剛毅等[11]分別提出了基于網絡成本的虛擬機遷移方法,但此類方法僅適用于網絡通信任務密集的應用環境中,具有應用局限性;Aroca等[12]、Duan 等[13]和 Maio等[14]分別提出了針對數據中心能耗問題的虛擬機調度方法,由于CPU是主要能耗源,故建立的CPU能耗模型近似為系統能耗模型,以最小化系統能耗作為優化目標,采用不同的啟發式算法得到最優的調度方案,此類方法適用于所有CPU為主要能耗源的場景,在一定程度上克服了應用局限性的缺點,但在密碼資源需求為主導的密碼云環境中,能耗作為系統優化目標顯然不能得到最優的負載均衡解決方案。
在密碼云系統中,影響密碼服務質量的資源類型較多,以密碼資源為主,但網絡帶寬、CPU、內存等資源缺一不可。文獻[15-16]聚焦系統資源分配問題,針對虛擬機調度問題提出了Myopic Max-weight調度方法,充分考慮系統CPU權重,利用最大化資源總利用率的方法進行虛擬機調度;文獻[17]針對云主機之間負載不均衡問題提出了一種層次分析與物理服務器躲避機制相結合的虛擬機部署與調度策略,通過層次分析確定虛擬機內存、CPU及網絡對目標物理服務器選擇的影響權重;結合目標物理服務器節點的資源使用情況對該物理節點預測評估。但當前基于資源權重的虛擬機調度算法均未考慮密碼資源指標的影響,以及密碼服務中密鑰對虛擬密碼機遷移過程的影響。
綜合評價各類型資源需求的影響程度,賦予相應的權重值,但權重系數的合理性直接影響了評價結果的正確性和可信性。吳希[18]在客觀賦權方法方面分析比較了認可度較高的通過標準的內在相關性確定權重(Criteria Importance Through Intercriteria Correlation,CRITIC)法、標準離差法和熵權法[19]。CRITIC法的基本思想是在構造權重時,以評價指標的對比強度和沖突性為基礎;標準離差法是根據標準差來衡量評價指標的變異程度,與權重系數呈正相關關系;熵權法是根據信息熵來描述系統的有序化程度,兩者呈負相關關系。密碼云的性能狀態與資源利用率息息相關,冗余資源越多而且越均衡,服務性能越好;但資源之間不具備對比性和關聯性,而且資源權重與其冗余量和需求程度緊密相關,與利用率變化程度無關。云密碼機的各項資源利用率在虛擬機調度策略的支撐下,處于動態變化當中,具有不確定性特征。由此,可根據系統提供的資源利用率信息來確定其不確定度,以度量云密碼機資源的權重系數,從而衡量密碼云的服務狀態。
VCM遷移與虛擬機遷移的最大不同在于密碼的遷移。密碼資源是VCM的關鍵需求,每項密碼任務的完成都離不開密碼運算,離不開密碼。VCM是密碼云向云用戶提供密碼服務的載體,按需向密碼用戶提供基于網絡的云密碼服務,具有運算能力靈活擴展、密碼資源動態調度、密碼管理統一高效等特點[20]。密碼云的基礎設施是云密碼機集群,云密碼機的核心是密碼卡,利用虛擬化技術實現對硬件資源的充分利用,其中密碼卡基于單根I/O虛擬化(Single-Root I/O Virtualization,SR-IOV)功能共享密碼資源[21],但離開了密碼卡高性能高帶寬的前提,密碼卡硬件資源的共享將失去意義。云密碼機的虛擬化結構如圖1所示。

圖1 云密碼機虛擬化結構Fig.1 Virtualization structure of cloud cipher machine
云密碼機底層硬件系統中的CPU、內存、網絡設備和密碼卡等在邏輯上分為多個部分,組成多個 VCM,由 KVM Hypervisor管理并組織實現云密碼機的系統功能[22]。按照系統功能分類,密碼云系統分為4個部分,分別是密碼云管理系統、密碼管理中心、密碼計算中心和身份認證系統。密碼云系統結構如圖2所示。

圖2 密碼云系統結構Fig.2 System architecture of cryptography cloud
按照密碼服務流程描述系統模塊化功能,具體如下:
1)用戶Ukey存儲有身份信息和主密鑰,終端從用戶Ukey中下載由用戶私鑰加密后的用戶證書與主密鑰,身份認證系統驗證用戶身份后,通過終端瀏覽器登錄密碼云管理系統,同時利用用戶主密鑰激活存儲于密碼管理中心的用戶從密鑰,用于提供密碼服務[23]。
2)密碼管理中心的密鑰代管分發服務器向用戶VCM下發相關從密鑰,該從密鑰將封存于云密碼機的密碼卡內存中,隨著VCM的遷移在卡內銷毀。
3)密碼云管理系統包括VCM管理模塊和資源狀態監控模塊。VCM管理模塊的主要職責是根據資源狀態監控模塊提供的資源狀態信息創建、刪除和遷移VCM,資源狀態信息主要包括云密碼機的CPU占用率、內存利用率、密碼資源利用率和網絡帶寬利用率等。
4)密碼計算中心是云密碼機集群組成的密碼計算資源池,云密碼機均采用圖1所示的虛擬化結構,向用戶提供VCM虛擬實體作為密碼服務的執行單元。
密碼云系統將密碼服務與云計算平臺結合,通過調度云密碼機集群動態擴充密碼運算能力,使密碼運算速度大幅提高,更好地為用戶提供集中化、虛擬化、透明化的密碼服務。
大多數遷移算法都是從物理主機的CPU、內存和網絡帶寬三種資源的使用率來考慮。在密碼云中,密碼服務的資源需求由密碼資源和網絡帶寬資源占據主導,CPU和內存資源主要用于滿足密碼服務以外其他服務進程的資源需求,激烈的密碼資源競爭和網絡帶寬資源競爭容易造成密碼服務停滯的后果,影響密碼服務的連續性。考慮到密碼服務的資源競爭以及資源需求情況,本文針對VCM調度問題的研究主要以物理主機的密碼資源利用率(Utilization of cryptography computing resource,Uccr)、網絡帶寬資源占用比(Utilization of network bandwidth resource,Unbr)、CPU 資 源 利 用 率(Utilization of CPU resource,Ucr)和內存資源利用率(Utilization of memory resource,Umr)為主要指標來考慮[24]。特別的是,密碼資源利用率是以密碼卡的I/O吞吐率為衡量對象,即卡上的I/O吞吐率與最大吞吐帶寬的比值作為密碼資源利用率,卡上I/O吞吐率包括對稱加解密速率、簽名驗簽速率和雜湊速率等。
密碼云中各資源狀態的動態改變或者基礎設施使用壽命的增加,會使云密碼機的各項資源利用率在一定范圍內波動,具有復雜性和不確定性的特點。收集統計云密碼機各項資源的利用率信息,根據香農信息熵的概念,對不確定性信息量化度量。熵代表了事件發生的不確定度,即發生的概率,因此,運用熵權法對各類型資源進行權重分析,用于對云密碼機的性能狀態綜合評價,使其向用戶按需提供密碼服務。
假設密碼云數據中心由數臺配置相同的云密碼機組成,包括n臺活躍主機,表示為集合S=(s1,s2,…,sn),其中運行狀態的 VCM 有 l臺,由 V=(V1,V2,…,Vl) 表示。
首先,由上述4個資源利用率指標,可以得到以下的原始數據矩陣:

其中:m為所考慮的資源類型數,m=4;xij表示第j臺云密碼機的第 i種資源的利用率,j=1,2,…,n。(x11,x12,…,x1n) 表示密碼資源利用率,(x21,x22,…,x2n)表示網絡帶寬資源利用率,(x31,x32,…,x3n) 表示 CPU 資源利用率,(x41,x42,…,x4n)表示內存資源利用率。
由于云計算中心要求以盡可能少的物理資源完成盡可能多的任務,所以資源利用率均為低優指標,但為避免資源浪費,云計算中心更傾向于在一定資源冗余的條件下使資源利用率達到最大,此時可視資源利用率為高優指標,那么可由式(2)對X矩陣進行標準化處理:

其中:xi為X矩陣中的第i行的行向量,zij為標準化后矩陣中的元素,組成新的標準化矩陣Z,如下所示:

計算第i項資源狀態指標下,第j個評價對象的特征比重:

對于每一項資源狀態指標,其zij差異越大,信息熵值越小;即各個評價對象的第i項資源狀態指標值差異越大,該指標反映的信息量越大,其熵值就越小。指標信息熵值的計算公式如下:

其中:k為調節系數,k=1/(ln n)。
當信息熵值偏大時,表明該指標提供的信息量很小,對綜合資源狀態評價的影響小,即權重小。為此,引入熵冗余系數:

di越大,則該評價指標的熵值越小,相應地其信息量越大,對應的資源狀態指標越應該獲得較大的指標權重。由此各類型資源狀態指標權重值為:

其中
構造加權規范化矩陣Y,確定評價對象即云密碼機資源狀態的最優解和最劣解:

根據式(9)得到Y矩陣的最優向量和最劣向量,即評價對象的最優解和最劣解,對應云密碼機資源使用的最優狀態和最劣狀態:

最后,可將Ck,即云密碼機的實際資源狀態與最優狀態的接近程度,視作為云密碼機sk的綜合評價值。顯然,Ck越小,距離最優狀態越接近,即云密碼機的資源利用越充分;反之,說明云密碼機的資源利用狀態較差,即資源利用率低,不能充分發揮云密碼機的工作能力,存在一定的資源冗余。這樣就可以對云密碼機狀態綜合排序,以供選擇使用。
針對虛擬機遷移的研究需要考慮3個問題:一是遷移的觸發時機,二是待遷移VCM的選擇,三是目標主機的選擇。本文假設遷移已根據密碼卡的吞吐率閾值觸發,主要研究問題二和問題三。由此,VCM遷移的類型可分為3類:一是源主機內所有VCM均遷出,僅需考慮問題三;二是從源主機遷出其中一臺VCM,需考慮問題二和問題三;三是新建立VCM的放置,僅需考慮問題三。VSMEWE算法在實際部署中可設定時鐘循環執行,達到及時更新狀態信息,保持云密碼機最佳服務狀態的目的。遷移變量的設置如下分別表示云密碼機sk的密碼資源利用率、網絡帶寬占用率、CPU利用率和內存利用率;ccri、nbri、cri和mri分別表示虛擬密碼機Vi的密碼資源能力、網絡帶寬能力、CPU配置和內存大小在云密碼機相應類型資源中的占比。
算法1 源主機中VCM的選擇。
設sk為遷移源主機,根據云密碼機資源狀態的綜合評價值,采用差值排序法確定源主機sk當中的待遷移VCM Vi,遷移目的是提供高質量密碼服務同時節省密碼云資源。
步驟1 計算源主機sk的綜合評價值Ck。
步驟2 根據“正在運算的密碼任務不可中斷以進行遷移”的原則,篩選出sk當中可遷移的VCM集合Vqian={V1,V2,…,Vp}。
步驟3 依次計算源主機遷出虛擬密碼機Vi(Vi∈Vqian)后的資源狀態綜合評價值具體如下:
1)計算源主機遷出VCMVi后各類型資源利用率,見式(14):

2)置換 X 矩陣中的 x1k、x2k、x3k、x4k,對新得到的X'進行標準化變換,得標準化矩陣Z'。
3)根據式(4)~(7)計算出新的資源狀態指標權重wi'。
4)根據式(8)~(13)得出虛擬密碼機Vi遷出后的云密碼機資源狀態綜合評價值。該綜合評價值是在虛擬密碼機Vi遷出源主機但尚未遷入任意一臺目標主機的假設條件下得出的。
步驟4 令ai=Ck-,表示在Vi遷移前的情況下和在Vi遷出sk未遷入目標主機的情況下的綜合評價值之差。若ai≤0,表明遷移該VCM后,云密碼機sk的整體資源狀態變差,距離最優的資源狀態越來越遠,云密碼機資源沒有得到充分地利用,因此虛擬密碼機Vi不遷移;反之,根據差值ai大小將擬遷移虛擬密碼機Vi按降序排列,取序列中的第一臺VCM作為待遷移虛擬密碼機,云密碼機的整體資源狀態隨遷移的發生而處于更優的情況下。
算法2 目標主機的選擇。
為待遷移VCM選擇最理想的目標主機至關重要,關系到Vi遷入后云密碼機的性能問題。當每臺云密碼機均處于較優的性能條件下時,才能保證密碼云系統提供滿足用戶需求的密碼服務。此處采用與待遷移VCM的選擇方法相同的差值排序法,具體如下:
步驟1 計算云密碼機sr(r≠k)的綜合評價值Cr,并據此值對云密碼機按升序排列。
步驟2 依次計算虛擬密碼機Vi遷入主機sr后的綜合評價值,具體如下:
1)計算待遷移VCM Vi遷入主機sr后各類型資源的利用率,見式(15):

2)根據式(14)和(15)置換 X 矩陣中的 x1k、x2k、x3k、x4k和x1r、x2r、x3r、x4r,再對新得到的 X'進行標準化變換,得標準化矩陣Z珘。
4)根據式(8)~(13)得出待遷移VCM遷入主機sr后的云密碼機資源狀態綜合評價值。該綜合評價值是在待遷移虛擬密碼機Vi遷出源主機并遷入目標主機sr的假設條件下得出的。
步驟3 令bi=Cr-Cir,表示在Vi尚未遷移的情況下和在Vi遷出sk并遷入目標主機sr的情況下的綜合評價值之差。若bi≤0,表明虛擬密碼機Vi遷入后,云密碼機sr的整體資源狀態變差,距離最優的資源狀態越來越遠,引發單項資源負載過高,無法保證高質量的密碼服務,因此,Vi不可遷入云密碼機sr;反之,則根據綜合評價差值bi將主機sr按降序排列,取序列中第一臺云密碼機作為目標主機,為虛擬密碼機Vi選擇各項資源均有足夠冗余的云密碼機。
基于OpenStack開源云平臺實現了密碼云原型系統,由業務云用戶向密碼云申請使用密碼服務。實驗平臺為5臺刀式云密碼機,作為密碼云計算節點;1臺云服務器,作為云管理系統;1臺密碼管理服務器,作為密碼管理中心。每臺云密碼機包括兩個10核2.4 GHz的CPU,6個8 GB的內存和2個千兆網卡,一個用于密碼云內網通信,另一個用于與業務云交互的外網通信。兩臺千兆交換機分別用于內、外網。系統部署結構如圖3所示。
實驗的對比算法包括:基線算法(記為 Baseline)[25],即OpenStack云平臺中Nova Scheduler模塊默認的虛擬機調度算法,核心是主機過濾和權值計算,特點是計算復雜度低,但負載均衡效果差;文獻[26]提出的經典遷移算法(記為Entropy),即虛擬機再配置算法,核心是最小化主機數量與遷移成本,特點是有效減少系統能耗,但造成系統服務質量差;本文提出的VSMEWE算法,核心是資源信息評估和過濾選擇,特點是高效節能,具有全局性。

圖3 系統部署結構Fig.3 Structure of system deployment
本實驗驗證云密碼機分別在 Baseline、Entropy和VSMEWE算法的支撐下,云密碼機中各類型資源的利用率情況。實驗初始時,每臺云密碼機中運行的VCM數量分別是7、9、8、11、5,各臺 VCM 循環運行大小呈泊松分布的密碼任務隊列,各類型資源的實時利用率可由監控器獲得。每25 min測算一次資源利用率,共進行4次測算實驗,依次在時段1、2、3、4進行;其中,時段1的資源信息數據為初始實驗階段所得。每個時段里,每隔20 s統計一次各類型資源的實時利用率,連續統計15次,再分別求取各資源的平均利用率作為一次實驗數據。為保證對比實驗的合理性,實驗在相同的初始負載條件下進行,使實驗初始的系統狀態相同。
從圖4~7可以看出,系統分別在 Baseline、Entropy和VSMEWE三種算法的支撐下,從時段1到時段4,密碼資源、網絡帶寬、CPU和內存的平均利用率在實驗系統中呈現逐步均衡分布的情況。而且時段4相對于其他時段,主機之間的密碼運算資源(Cryptography Computing Resource,CCR)的差異程度最小,網絡帶寬資源(Network Bandwidth Resource,NBR)、CPU資源(CPU Resource,CR)和內存資源(Memory Resource,MR)也是如此,因此三種調度算法都起到了均衡負載的效果。相比三種算法的負載均衡效果,VSMEWE最優、其次是Entropy和Baseline。由圖中各時段的平均利用率分布曲線可知,VSMEWE算法能夠使各主機的資源平均利用率曲線在相對較短的時間內平穩,呈現均衡的趨勢,減小主機之間的平均利用率差異,有效避免了單臺主機瞬間超載時產生的突發狀況[27];而Entropy和Baseline算法的資源均衡速度較慢,或者說是負載均衡的力度較小,因此VSMEWE算法在負載均衡方面更具有時效性,充分體現了面向云密碼機的資源利用公平性。
由圖4~7中時段4對應的子圖可知,VSMEWE算法的調度使系統資源的平均利用率從各主機間的無序分布變化為有序的平均分布,從VCM負載遷移的角度考慮,這必將造成頻繁的VCM遷移操作,而密碼資源是完成VCM任務的主要資源需求,同時VCM的遷移是由密碼卡的吞吐量閾值來觸發,這種以單一資源的利用率閾值來觸發遷移的方式有效避免了VCM陷入局部循環遷移的情況,降低了系統的遷移觸發頻率,因此VSMEWE算法在VCM遷移中更具有全局性。而根據圖4~7可以看出,資源平均利用率在各主機之間仍然存在較大的差異,分布曲線起伏較大,而且時段之間存在較多的曲線重疊,這表明系統在Entropy算法和Baseline算法的支撐下不能達到最理想的負載均衡效果,但與VSMEWE算法相比,具有遷移次數少的優點;雖然Entropy算法是以最小的遷移次數和遷移成本為約束條件,以減小虛擬機再分配成本為調度目標,但是其均衡速度慢,無法避免單臺主機的突發性超載對服務質量的影響,對于負載均衡分布的全局性考慮不足。

圖4 不同算法條件下系統CCR分布Fig.4 CCR distribution of system under different algorithms

圖5 不同算法條件下系統NBR分布Fig.5 NBR distribution of system under different algorithms

圖6 不同算法條件下系統CR分布Fig.6 CR distribution of system under different algorithms
本實驗測試密碼云系統中VCM遷移的次數,比較分別在VSMEWE算法、Entropy算法和Baseline算法支撐下系統的遷移頻率。從初始部署開始到時刻P的時間段內,VCM遷移發生的次數越少,遷移造成的總成本越低,據此比較三種算法的遷移總成本[28]。

圖7 不同算法條件下系統MR分布Fig.7 MR distribution of system under different algorithms
圖8表示密碼云系統在不同算法支撐下的VCM遷移次數,根據圖中曲線走勢可以看出,VCM遷移次數隨系統運行時間不斷增加,但呈現減緩的趨勢,這表示隨著VCM的遷移,資源利用率在各主機之間逐漸趨向平均,進而VCM遷移頻率降低。VSMEWE算法曲線收斂最快,其次是Entropy算法和Baseline算法,說明了三種算法相比,VSMEWE算法在負載均衡效率方面更具有優勢,能夠以較少的VCM遷移操作達到最理想的負載均衡效果,有效降低了遷移總成本,具有高性價比的特點。

圖8 三種調度算法條件下的VCM遷移次數Fig.8 VCM migration times under three scheduling algorithms
本實驗利用系統腳本文件執行算法源碼,測試VSMEWE算法、Entropy算法和Baseline算法的執行速度,客觀比較算法在工程應用中的計算復雜度。具體方法是在腳本代碼首尾分別加上讀取系統時間的代碼模塊,作差值可得出算法執行時間。為保證三組實驗的公平性,每做完一組實驗將系統資源狀態恢復到和初始時刻一樣,同時調整VCM的初始部署情況。在密碼云系統中,算法執行效率會影響到系統的實時性和用戶的即時體驗[29]。
表1數據說明VSMEWE算法的執行時間最短,效率最高。在調度過程中,VSMEWE算法的執行時間短,與Baseline算法和Entropy算法相比,其執行效率分別提高了22.7%和6.8%。因此,VSMEWE算法的執行效率較高,能夠在相同的實驗環境下更快地完成調度決策任務,說明其在工程應用中的計算復雜度較低。由此說明由VSMEWE算法造成的時延最小,因而,該算法具有更好的實時性效果,為服務質量提供了效率支撐和即時保障。

表1 各算法執行時間 sTab.1 Execution time for different algorithm s
本文研究了虛擬密碼機的調度效率問題,調度目標是提高系統的服務質量和負載均衡效果,為此提出了一種基于熵權評價的虛擬密碼機調度方法。該方法有效改善了系統的負載均衡效果,采用熵權法確定密碼運算、網絡帶寬、CPU和內存等資源的權重,并根據云密碼機的資源狀態綜合評價值決策,實現密碼云系統的高效運行。為評估調度算法性能,本文通過對比實驗進行了測試。實驗結果表明:在相同的負載條件下,VSMEWE算法具有更好的性能和效率優勢,以較低的遷移成本達到最理想的遷移效果,云密碼機的各項資源利用率快速收斂于系統均值,為密碼云系統良好的負載狀態提供了策略支撐。