999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

減少上下文切換的虛擬密碼設(shè)備中斷路徑優(yōu)化方法

2018-08-27 10:42:38郭松輝
計(jì)算機(jī)應(yīng)用 2018年7期
關(guān)鍵詞:機(jī)制設(shè)備

李 帥,孫 磊,郭松輝

(信息工程大學(xué),鄭州 450001)(*通信作者電子郵箱2650536170@qq.com)

0 引言

近年來,隨著云計(jì)算的不斷發(fā)展,其重要性越來越受到科學(xué)界和工業(yè)界的關(guān)注,同時(shí)其安全性也面臨著重大的挑戰(zhàn)[1],尤其是虛擬資源可遷移性引發(fā)的云中數(shù)據(jù)不可控問題[2],導(dǎo)致云中存在數(shù)據(jù)泄露的安全風(fēng)險(xiǎn)[3]。2016年云安全聯(lián)盟(Cloud Security Alliance, CSA)公布的十二大安全威脅中就包括數(shù)據(jù)泄露和用戶身份憑證被盜等重大安全風(fēng)險(xiǎn)。目前,各云服務(wù)提供商對于云計(jì)算面臨的安全風(fēng)險(xiǎn)也提出了各種解決方案。例如:阿里云安全解決方案在數(shù)據(jù)層提供了加密服務(wù),該服務(wù)可記錄、分析和匯報(bào)用戶訪問數(shù)據(jù)庫的行為,并對生成的數(shù)據(jù)進(jìn)行加密,提高了數(shù)據(jù)安全。從云數(shù)據(jù)中心到云用戶,每一層都應(yīng)該對其安全性采取有效措施來降低安全風(fēng)險(xiǎn),提高數(shù)據(jù)的安全性[4]。密碼云[2]技術(shù)將對稱加密、數(shù)字簽名和完整性校驗(yàn)等密碼技術(shù)運(yùn)用到云計(jì)算中來提供密碼運(yùn)算,大幅度地提高了云環(huán)境下數(shù)據(jù)的安全性。密碼云采用虛擬化技術(shù)將密碼設(shè)備虛擬成多個(gè)虛擬密碼設(shè)備提供給上層虛擬密碼機(jī)(Virtual Cipher Machine, VCM)[2]使用,滿足了云環(huán)境下的密碼運(yùn)算需求。

為了使虛擬密碼機(jī)的密碼運(yùn)算性能更高,密碼設(shè)備采用了單根I/O虛擬化(Single-Root I/O Virtualization, SR-IOV)技術(shù)為虛擬密碼機(jī)提供高效密碼服務(wù)。SR-IOV技術(shù)采用Passthrough I/O傳輸方式,不需要虛擬機(jī)監(jiān)控器(Virtual Machine Monitor, VMM)對虛擬機(jī)進(jìn)行監(jiān)控,通過硬件直接與虛擬機(jī)進(jìn)行I/O傳輸[5],并且在傳輸過程中,通過輸入/輸出內(nèi)存管理單元(Input/Output Memory Management Unit, IOMMU)減少了存儲保護(hù)和地址轉(zhuǎn)換的開銷,大幅度提高了傳輸效率[6],實(shí)現(xiàn)了虛擬密碼機(jī)的高效密碼服務(wù);但是,在實(shí)驗(yàn)過程中發(fā)現(xiàn),虛擬密碼機(jī)加密速度明顯低于主機(jī)加密速度,而且隨著加密字節(jié)塊的增大,虛擬密碼機(jī)加密速度和主機(jī)加密速度的差距逐漸增大,這說明,當(dāng)外部中斷請求過多時(shí)會嚴(yán)重影響虛擬密碼機(jī)加密性能。而造成虛擬密碼機(jī)加密性能降低的根本原因是虛擬密碼機(jī)中斷請求需要陷入到主機(jī)內(nèi)核中進(jìn)行處理,該過程會導(dǎo)致至少兩次non-root到root模式切換即VM-exit。當(dāng)云環(huán)境下大量的外部中斷請求需要調(diào)用密碼算法時(shí)就會導(dǎo)致VCM和VMM之間頻繁的上下文切換[7],嚴(yán)重影響了中斷傳輸?shù)男剩^而影響虛擬密碼機(jī)加密性能。

為了解決中斷傳輸路徑中上下文切換導(dǎo)致系統(tǒng)開銷大的問題,文獻(xiàn)[8]提出了一種直接中斷傳輸?shù)姆椒?,清除了虛擬機(jī)控制結(jié)構(gòu)(Virtual Machine Control Structure, VMCS)中的外部中斷退出位,那么外部中斷將不會觸發(fā)VM-exit;但是該方法需要判斷虛擬機(jī)是否正在運(yùn)行以及運(yùn)行時(shí)在哪個(gè)物理CPU核上運(yùn)行,增加了復(fù)雜度。文獻(xiàn)[9]提出了一種更少中斷退出的方法(Exit-Less Interrupt, ELI),采用軟件模擬的方式在客戶虛擬機(jī)內(nèi)建立影子中斷描述符表(Interrupt Description Table, IDT)直接處理中斷;但是在ELI機(jī)制中,影子IDT只能接收來自對應(yīng)用戶對應(yīng)的中斷,其他中斷仍需要主機(jī)的參與。文獻(xiàn)[10]提出了一種針對I/O虛擬化的高效和相應(yīng)事件系統(tǒng)(Efficient and reSponsive Event System for I/O virtualization, ES2),該系統(tǒng)改善了虛擬機(jī)和硬件設(shè)備之間的雙向I/O傳輸。該機(jī)制可以提供高效I/O請求交付和增強(qiáng)I/O響應(yīng)能力,并且不需要修改虛擬機(jī)操作系統(tǒng),但是該機(jī)制并沒有在SR-IOV環(huán)境中實(shí)現(xiàn)。本文對SR-IOV環(huán)境下虛擬密碼機(jī)的中斷機(jī)制進(jìn)行了優(yōu)化,提出了一種減少上下文切換(Reducing Context Switching, RCS)的中斷傳輸機(jī)制。該機(jī)制保留了第一次VM-exit,當(dāng)外部中斷陷入到主機(jī)內(nèi)核區(qū)時(shí),由主機(jī)判斷外部中斷是否發(fā)送給虛擬密碼機(jī),然后在虛擬密碼機(jī)內(nèi)核建立了一個(gè)由主機(jī)到虛擬密碼機(jī)的關(guān)系映射表,通過對注入到虛擬密碼機(jī)中未被分配的中斷進(jìn)行注冊,注冊完成后直接在虛擬密碼機(jī)內(nèi)核對該中斷進(jìn)行處理,避免了中斷再次陷入主機(jī)內(nèi)核,優(yōu)化了虛擬密碼機(jī)的中斷傳輸路徑,提高了虛擬密碼機(jī)中斷傳輸?shù)男省?/p>

1 相關(guān)技術(shù)

1.1 SR-IOV技術(shù)

SR-IOV是PCI-SIG組織發(fā)布的PCIe規(guī)范的擴(kuò)展,它采用Passthrough I/O技術(shù)在數(shù)據(jù)傳輸過程中繞過VMM,使用IOMMU在虛擬內(nèi)存中直接尋址,即直接將虛擬地址轉(zhuǎn)換為物理地址[5],可讓實(shí)體設(shè)備在虛擬內(nèi)存環(huán)境中工作,擴(kuò)展了系統(tǒng)內(nèi)存容量,提升了性能。每一個(gè)PCIe設(shè)備可以配置1到8個(gè)物理功能(Physical Function, PF),各個(gè)PF之間是相互獨(dú)立的。每個(gè)PF都具有標(biāo)準(zhǔn)的PCIe功能,可以對其進(jìn)行完全的配置管理??梢酝ㄟ^PF配置或者控制PCIe設(shè)備,也可以通過PF對數(shù)據(jù)的輸入和輸出進(jìn)行管理。同時(shí),在PCIe設(shè)備中,具有SR-IOV功能的設(shè)備可創(chuàng)建多個(gè)虛擬功能(Virtual Function, VF)。相比PF,VF僅具有輕量級的PCIe功能,只能進(jìn)行數(shù)據(jù)的傳輸;但是每個(gè)VF對應(yīng)唯一的資源標(biāo)識符(Resource IDentifier, RID),每個(gè)RID可用于索引IOMMU頁表,因此,每個(gè)VF可以獨(dú)立接收和傳輸數(shù)據(jù)包。而且每個(gè)VF都擁有與性能相關(guān)的資源,比如傳輸和接收描述符,同時(shí)共享其他主要設(shè)備資源[11]。在SR-IOV中,每個(gè)PF關(guān)聯(lián)多個(gè)VF,由PF對多個(gè)VF進(jìn)行配置管理。在配置SR-IOV實(shí)驗(yàn)環(huán)境時(shí),可以對每一個(gè)VCM分配一個(gè)或者多個(gè)VF,由于每個(gè)VF都對應(yīng)唯一的RID,所以VCM之間是相互隔離的,這有效提高了I/O傳輸?shù)男阅堋?/p>

基于SR-IOV技術(shù),將每個(gè)VCM對應(yīng)于一個(gè)VF,VCM和VF之間通過VFIO驅(qū)動(dòng)進(jìn)行通信,并且不受VMM的干預(yù)[12]。其基于SR-IOV的密碼設(shè)備基本架構(gòu)如圖1所示。

圖1 基于SR-IOV的密碼設(shè)備基本架構(gòu)

1.2 x86虛擬環(huán)境下的中斷處理機(jī)制

x86服務(wù)器多采用消息信號中斷(Message Signaled Interrupt, MSI)和它的擴(kuò)展形式MSI-X發(fā)送中斷信號。服務(wù)器一旦啟動(dòng),本地高級可編程中斷控制器(Local Advanced Programmable Interrupt Controller, LAPIC)就會對每一個(gè)I/O設(shè)備分配MSI地址,其中描述中斷的MSI地址確定了中斷的目的CPU核地址。同時(shí),MSI數(shù)據(jù)存放了中斷向量號和中斷傳輸模式,通過執(zhí)行內(nèi)存寫操作觸發(fā)消息信號中斷[8]。目前絕大部分PCIe設(shè)備也使用MSI/MSI-X機(jī)制發(fā)送中斷請求。在PCIe設(shè)備中,觸發(fā)MSI中斷的每一個(gè)內(nèi)存寫操作都直接穿過PCIe層級進(jìn)入root模式進(jìn)行處理。每個(gè)CPU核上都配置一個(gè)LAPIC,同時(shí)在每個(gè)I/O子系統(tǒng)上也存在一個(gè)輸入輸出高級可編程中斷控制器(Input/Output Advanced Programmable Interrupt Controller, IOAPIC)。IOAPIC支持I/O重定向表,IOMMU支持中斷重映射表,兩者同時(shí)為每個(gè)PCIe設(shè)備中斷提供中斷目的地址、觸發(fā)模式和傳輸路徑。

當(dāng)一個(gè)I/O設(shè)備發(fā)出一個(gè)中斷消息,該中斷消息將對一個(gè)特殊地址執(zhí)行內(nèi)存寫操作來中斷CPU,這會導(dǎo)致一個(gè)物理中斷被發(fā)送到CPU。服務(wù)器當(dāng)前執(zhí)行的代碼被中斷,執(zhí)行將跳轉(zhuǎn)到一個(gè)預(yù)定義的處理程序,該處理程序由中斷描述符表指定。x86架構(gòu)CPU最多可定義256個(gè)中斷向量,每個(gè)表項(xiàng)都對應(yīng)于一個(gè)中斷處理函數(shù)的地址,當(dāng)觸發(fā)相應(yīng)的中斷時(shí),對應(yīng)函數(shù)將被調(diào)用。通常,I/O設(shè)備發(fā)出一個(gè)請求,該請求通過對一個(gè)特殊地址執(zhí)行內(nèi)存寫操作來中斷CPU,這會導(dǎo)致一個(gè)物理中斷被發(fā)送到CPU。當(dāng)一個(gè)MSI中斷傳輸?shù)侥康腃PU,在IDT中將觸發(fā)相應(yīng)的中斷處理器(Interrupt Handler)處理中斷。

然而,在虛擬環(huán)境下,外部中斷的處理依然需要VMM的參與。從外部中斷觸發(fā)VM-exit到整個(gè)中斷處理完成至少需要兩次VM-exit,每次VM-exit都會對應(yīng)于一次VM-entry,這樣在每次的中斷處理過程中便會引起至少4次上下文切換。當(dāng)同一時(shí)間存在大量的外部中斷請求時(shí),系統(tǒng)就會因?yàn)轭l繁的上下文切換產(chǎn)生大量的上下文開銷和cache污染[13],使得在中斷密集的時(shí)候,虛擬密碼機(jī)的加密性能嚴(yán)重降低。虛擬環(huán)境下I/O中斷處理過程如圖2所示。

當(dāng)虛擬機(jī)收到外部中斷時(shí),IOMMU首先作出響應(yīng)并執(zhí)行相應(yīng)的中斷重映射,由于x86架構(gòu)本身VT-x技術(shù)的限制,VMM將截獲中斷引起VM-exit事件,該事件通過主機(jī)中斷描述符初始化相應(yīng)的中斷處理程序進(jìn)行傳送。當(dāng)中斷在主機(jī)中斷處理程序中處理完成,會生成一個(gè)結(jié)束中斷信號(End Of Interrupt, EOI),VMM識別到EOI信號后就把主機(jī)向量映射到相應(yīng)的虛擬機(jī)向量。然后,在目標(biāo)處理器的虛擬本地高級可編程中斷控制器(virtual Local Advanced Programmable Interrupt Controller, vLAPIC)上更新虛擬中斷請求注冊(virtual Interrupt Request Register, vIRR)和虛擬中斷服務(wù)注冊(virtual Interrupt Service Register, vISR),并且在虛擬機(jī)的虛擬機(jī)控制結(jié)構(gòu)中建立VM-entry中斷信息域。通過一個(gè)VM-entry注入把虛擬中斷傳輸給虛擬機(jī)。虛擬機(jī)內(nèi)核接收到中斷信號后,更新LAPIC,并在虛擬機(jī)IDT中運(yùn)行相應(yīng)的中斷處理程序。中斷請求在虛擬機(jī)內(nèi)核處理完成后,也會生成一個(gè)EOI信號,該信號使中斷再次陷入VMM,重新更新vLAPIC后將生成一個(gè)虛擬EOI信號,執(zhí)行VM-entry,恢復(fù)虛擬機(jī)的正常運(yùn)行[7]。在虛擬環(huán)境下的中斷處理過程中,每次I/O中斷處理過程都會導(dǎo)致至少兩次VM-exit,如果大量的外部中斷請求到來時(shí),過多的上下文切換必將嚴(yán)重影響整個(gè)系統(tǒng)的性能。

圖2 虛擬環(huán)境下的中斷處理

2 RCS中斷傳輸機(jī)制的設(shè)計(jì)與實(shí)現(xiàn)

2.1 RCS中斷傳輸機(jī)制設(shè)計(jì)

在SR-IOV環(huán)境中,VMM和虛擬機(jī)操作系統(tǒng)共享硬件資源,因此底層硬件需要一個(gè)物理內(nèi)存區(qū)域來自動(dòng)保存或恢復(fù)彼此執(zhí)行的上下文,這個(gè)區(qū)域稱為虛擬機(jī)控制結(jié)構(gòu)區(qū)。該區(qū)域包括虛擬機(jī)狀態(tài)區(qū)、主機(jī)狀態(tài)區(qū)和執(zhí)行控制區(qū)。當(dāng)發(fā)生VM-exit時(shí),硬件自動(dòng)將虛擬機(jī)操作系統(tǒng)的上下文保存在虛擬機(jī)狀態(tài)區(qū),并且從主機(jī)狀態(tài)區(qū)中加載VMM的通用事件處理函數(shù)地址,之后VMM執(zhí)行相應(yīng)的操作。由圖2可知,虛擬環(huán)境下的中斷處理過程導(dǎo)致了至少兩次VM-exit,每次VM-exit都會有VMM的參與,這嚴(yán)重影響了中斷傳輸?shù)男?。在SR-IOV環(huán)境中,雖然VF直連虛擬密碼機(jī),但是由于VMM具有對處理器和平臺硬件完全的控制權(quán),在對處理器資源、物理內(nèi)存、中斷處理和I/O的處理中同時(shí)也具有選擇控制的權(quán)利,也就是說,如果外部中斷的控制權(quán)在虛擬密碼機(jī)手中,那么虛擬密碼機(jī)向量就可以對應(yīng)于物理設(shè)備中斷服務(wù)注冊在虛擬密碼機(jī)描述符的位置,即物理設(shè)備ISR完全由虛擬密碼機(jī)執(zhí)行;如果外部中斷的控制權(quán)掌握在VMM手中,那么當(dāng)發(fā)生外部中斷時(shí),將觸發(fā)VM-exit,VMM執(zhí)行其控制權(quán),所以密碼設(shè)備的VF產(chǎn)生的某些中斷依然需要VMM處理。其處理方式是VMM觸發(fā)相應(yīng)的虛擬中斷并將該中斷注入虛擬密碼機(jī),因此,有必要對密碼設(shè)備的中斷機(jī)制進(jìn)行優(yōu)化以此來進(jìn)一步提高密碼設(shè)備的性能。

假設(shè)系統(tǒng)中的每一臺虛擬密碼機(jī)僅對應(yīng)一個(gè)VF,在這種情況下,VF只能中斷它所對應(yīng)的虛擬密碼機(jī)。為了減少在每次中斷過程中由于VMM的介入導(dǎo)致的上下文切換次數(shù),本文提出了一種減少上下文切換的中斷傳輸機(jī)制——RCS中斷傳輸機(jī)制。RCS中斷傳輸機(jī)制過程如圖3所示。

該中斷傳輸機(jī)制基于KVM實(shí)現(xiàn)。由于虛擬密碼機(jī)中斷請求的處理需要進(jìn)入到KVM內(nèi)核進(jìn)行實(shí)現(xiàn),因此該機(jī)制保留了第一次VM-exit。這樣做的好處是:當(dāng)發(fā)送給虛擬密碼機(jī)的外部中斷請求到來時(shí),直接將該中斷交給KVM內(nèi)核進(jìn)行處理,從而避免不能識別的中斷類型以及大量中斷到來時(shí)可能會造成的錯(cuò)誤傳輸。當(dāng)該中斷在KVM內(nèi)核注冊完成并找到對應(yīng)的中斷類型后會觸發(fā)虛擬機(jī)所對應(yīng)的vCPU,由vCPU執(zhí)行VM-entry,之后中斷開始進(jìn)入虛擬機(jī)執(zhí)行。為了避免EOI寫操作導(dǎo)致的再次VM-exit,該機(jī)制在虛擬機(jī)內(nèi)核建立了由主機(jī)到虛擬密碼機(jī)內(nèi)核的關(guān)系映射表。關(guān)系映射表有兩個(gè)功能:第一是判斷該中斷類型是否已在虛擬密碼機(jī)IDT中存在,如果存在則直接交由虛擬密碼機(jī)的中斷處理器進(jìn)行處理;第二是如果該中斷類型在虛擬密碼機(jī)IDT中不存在,那么該映射將對該中斷進(jìn)行注冊,重新分配中斷類型號,然后交由虛擬密碼機(jī)中斷處理器進(jìn)行處理。在虛擬密碼機(jī)內(nèi)核直接處理中斷比中斷再次陷入主機(jī)內(nèi)核進(jìn)行處理效率更高,可明顯減少大量中斷請求帶來的頻繁上下文切換。

圖3 RCS中斷傳輸機(jī)制

2.2 RCS中斷傳輸機(jī)制實(shí)現(xiàn)

RCS中斷傳輸機(jī)制是在KVM環(huán)境下提出的。KVM本身是集成到Linux內(nèi)核的虛擬機(jī)監(jiān)控器,是一種全虛擬化解決方案。在Linux內(nèi)核中,KVM是其中一個(gè)很小的模塊,可利用Linux實(shí)現(xiàn)硬件設(shè)備交互、任務(wù)調(diào)度和內(nèi)存管理等功能。其中,QEMU作為一個(gè)獨(dú)立的虛擬化解決方案,可以模擬一個(gè)完全不同的系統(tǒng)環(huán)境,但是QEMU模擬本身性能比較低,一般結(jié)合KVM提供的功能來提升性能[14]。系統(tǒng)架構(gòu)如圖4所示。

在KVM環(huán)境下,當(dāng)密碼設(shè)備接收到外部中斷信號時(shí),首先加載相應(yīng)的驅(qū)動(dòng)程序,然后向主機(jī)CPU發(fā)送中斷請求信號,主機(jī)CPU接收到中斷信號后,判斷中斷請求類型是發(fā)給主機(jī)還是虛擬密碼機(jī),如果是發(fā)給主機(jī),則直接交給主機(jī)的中斷處理器進(jìn)行處理;如果是發(fā)送給虛擬密碼機(jī),中斷將陷入KVM內(nèi)核,由KVM內(nèi)核進(jìn)行處理。在中斷注入KVM過程中,會加載驅(qū)動(dòng)程序中ioctl函數(shù),其功能是專門對設(shè)備的I/O通道進(jìn)行管理,也可對設(shè)備的一些特性進(jìn)行控制,并且具有傳輸中斷的作用。

圖4 系統(tǒng)架構(gòu)

在KVM內(nèi)核區(qū),首先提取中斷路由表中對應(yīng)的實(shí)體,觸發(fā)對應(yīng)路由實(shí)體的觸發(fā)函數(shù);然后進(jìn)行中斷的注冊、中斷類型的檢查、中斷請求的發(fā)送和處理。當(dāng)中斷在主機(jī)KVM內(nèi)核執(zhí)行結(jié)束后,進(jìn)入虛擬密碼機(jī)內(nèi)核執(zhí)行。中斷進(jìn)入虛擬密碼機(jī)內(nèi)核后先觸發(fā)關(guān)系映射表,通過關(guān)系映射表中的IOAPIC來判斷中斷類型,如果該中斷類型在虛擬密碼機(jī)IDT中已存在,則退出中斷映射表,直接在虛擬密碼機(jī)內(nèi)核中由虛擬密碼機(jī)中斷處理器處理中斷;如果該中斷類型在虛擬密碼機(jī)IDT中不存在,則在關(guān)系映射表中進(jìn)行中斷注冊,注冊完成后退出關(guān)系映射表,然后更新LAPIC,再交由虛擬密碼機(jī)中斷處理器處理中斷。關(guān)系映射表的中斷處理過程偽代碼如下:

Process interruption handling of relational mapping table

1) procedure relational mapping

2)notification: //Label 1

3) waked up by an interrupt request

4)handling:

5) judge the interrupt type

6) if the interrupt type is not exist then //Label 2

7) register by relational mapping

8) handle the interrupt

9) else handle the interrupt directly

10) end if

11) ifnotify_enabledthen

12) execute thehandling

13) end if

14)workload← 0

15) While this queue is not empty do

16) polling one interrupt request from this queue

17)workload←workload+1

18) ifworkload>=quotathen

19) gotohandling//Wait for next turn

20) end if

21) end while

22)enable_notify//Return to notification mode

23) gotonotification

24) end procedure

在中斷注冊過程中,會調(diào)用與IOAPIC相關(guān)的一些函數(shù),其主要的功能除了進(jìn)行中斷的注冊和中斷類型的檢查外,IOAPIC還將通過APIC總線將中斷信息分配給每顆CPU的LAPIC,然后由LAPIC決定是否接收總線上傳送來的中斷信息。在中斷信息發(fā)送到LAPIC之前,需要通過IOAPIC設(shè)置中斷請求的目的地址、中斷請求向量和中斷傳輸模式等請求信息,然后將中斷請求發(fā)送給LAPIC。LAPIC根據(jù)傳入的irq參數(shù)獲取目標(biāo)LAPIC編號目的地址,再根據(jù)目的地址找到其對應(yīng)的vCPU,然后設(shè)置目標(biāo)LAPIC的中斷請求寄存器,根據(jù)其傳送模式向當(dāng)?shù)氐腖APIC添加一個(gè)即將到來的中斷,最后vCPU檢查這個(gè)中斷請求并將中斷注入虛擬密碼機(jī)內(nèi)核,即執(zhí)行VM-entry。

中斷在虛擬密碼機(jī)內(nèi)核處理完成后,恢復(fù)虛擬密碼機(jī)執(zhí)行當(dāng)前的操作。該過程避免了由EOI寫操作帶來的VM-exit,減少了上下文切換,在中斷密集時(shí)可有效降低性能開銷。

3 實(shí)驗(yàn)結(jié)果與分析

為了驗(yàn)證RCS機(jī)制提高了虛擬密碼機(jī)密碼運(yùn)算能力,本章針對對稱密碼算法AES和雜湊算法SHA256分別在主機(jī)、SR-IOV方式和RCS方式下的加密速度進(jìn)行了測試,并對不同機(jī)制下的加密速度進(jìn)行了對比分析,通過加密速度提升來體現(xiàn)RCS機(jī)制性能優(yōu)勢。實(shí)驗(yàn)并沒有測試非對稱密碼算法的加密速度,因?yàn)閷τ诜菍ΨQ密碼算法來說,其加密運(yùn)算不是傳輸密集型的操作,只能作為計(jì)算密集型的操作,I/O中斷傳輸路徑的優(yōu)化對其體現(xiàn)并不明顯。而對于對稱密碼算法和雜湊算法,其加密運(yùn)算是傳輸密集型的操作,因此實(shí)驗(yàn)研究對對稱密碼算法和雜湊算法在中斷路徑上的優(yōu)化具有實(shí)際意義。

本實(shí)驗(yàn)環(huán)境為:主機(jī)和虛擬密碼機(jī)操作系統(tǒng)均為CentOS7.1,內(nèi)核版本為Linux 3.10.0,處理器Intel Xeon CPU E5- 2620 v3 @2.40 GHz 12核,內(nèi)存128 GB,支持VT-x技術(shù),支持SR-IOV,密碼設(shè)備為Intel Corporation DH895XCC Series QAT。測試工具為crytodev,crytodev是調(diào)用密碼設(shè)備的一個(gè)benchmark工具,可以測試密碼設(shè)備中密碼算法的運(yùn)算速度,其中包含AES、SHA256等加密算法。測試過程是:通過對不同字節(jié)塊大小進(jìn)行加密,選取5 s內(nèi)的總加密字節(jié)數(shù),求其平均值作為該加密字節(jié)塊大小下的加密速度。

首先,為了驗(yàn)證當(dāng)存在大量中斷請求時(shí),VCM的性能會顯著降低,對VCM進(jìn)行空轉(zhuǎn)測試,僅測試其中斷傳輸效率。由VCM向主機(jī)發(fā)出中斷請求,測試不同加密字節(jié)下主機(jī)和虛擬密碼機(jī)的加密速度。其測試結(jié)果如圖5所示。從圖5實(shí)驗(yàn)結(jié)果中可以看到:隨著加密字節(jié)塊的增大,主機(jī)加密速度和虛擬密碼機(jī)加密速度差距越來越大。由于只是空轉(zhuǎn)測試,不存在加密運(yùn)算的影響,因此造成該差距的主要因素即中斷傳輸過程中導(dǎo)致的頻繁上下文切換,恰恰驗(yàn)證了本文要解決的問題。

圖5 加密空字節(jié)時(shí)的加密速度

然后,為了比較RCS機(jī)制相對于SR-IOV方式在加密性能上有一定的提升,本文分別對兩種加密算法在SR-IOV方式下和在RCS方式下的加密速度進(jìn)行了對比分析。實(shí)驗(yàn)測試結(jié)果如圖6(a)和圖6(b)所示。

對圖6(a)中數(shù)據(jù)進(jìn)行分析,結(jié)果表明:采用AES算法加密時(shí),RCS方式下虛擬密碼機(jī)加密速度比SR-IOV方式下虛擬密碼機(jī)加密速度平均提高了16.35%;對圖6(b)中數(shù)據(jù)進(jìn)行分析,結(jié)果表明:采用SHA256算法加密時(shí),RCS方式下虛擬密碼機(jī)加密速度比SR-IOV方式下虛擬密碼機(jī)加密速度平均提高了12.25%。而且,從實(shí)驗(yàn)結(jié)果中可以看出,加密字節(jié)塊越大,加密速度提高越明顯。

圖6 虛擬密碼機(jī)使用SR-IOV和RCS加密時(shí)的加密速度

為了進(jìn)一步驗(yàn)證RCS機(jī)制下虛擬密碼機(jī)密碼運(yùn)算能力能達(dá)到接近主機(jī)的密碼運(yùn)算性能,實(shí)驗(yàn)分別測試了主機(jī)和RCS方式下虛擬密碼機(jī)在AES和SHA256加密算法下的加密速度,其測試結(jié)果如圖7(a)和圖7(b)所示。

圖7 主機(jī)和虛擬密碼機(jī)RCS加密時(shí)的加密速度

分析圖7(a)和圖7(b)的實(shí)驗(yàn)測試結(jié)果,可得出結(jié)論:在RCS機(jī)制下,虛擬密碼機(jī)使用AES加密算法加密的速度達(dá)到了主機(jī)的88.37%~98.48%,用SHA256加密算法加密的速度達(dá)到了主機(jī)的90.44%~95.63%。而且,加密字節(jié)塊越大,該機(jī)制下的加密速度越接近于主機(jī)加密速度,該結(jié)果對于云環(huán)境下高效密碼服務(wù)的要求具有良好的現(xiàn)實(shí)意義。

同時(shí),從圖6(a)和圖7(a)中也可以看出:加密字節(jié)在32 768之前,主機(jī)加密速度和虛擬密碼機(jī)加密速度一直在增大,當(dāng)加密字節(jié)為32 768時(shí),主機(jī)加密速度和虛擬密碼機(jī)加密速度達(dá)到最大。當(dāng)加密字節(jié)再繼續(xù)增大時(shí)主機(jī)加密速度和虛擬密碼機(jī)加密速度開始減小,說明此時(shí)由于中斷頻率的增加只能導(dǎo)致性能的下降,這正是由于大量中斷導(dǎo)致的VM-exit使中斷處理過程多次陷入KVM內(nèi)核導(dǎo)致的頻繁上下文切換引起的性能降低[15]。同時(shí),在32 768 B之前,主機(jī)加密速度和虛擬密碼機(jī)加密速度并不是線性增長,而是隨著字節(jié)塊的增大,其增長速度變化越來越平緩,這也驗(yàn)證了大量中斷導(dǎo)致的虛擬密碼機(jī)性能降低問題。

4 結(jié)語

針對虛擬化環(huán)境下密碼設(shè)備中斷傳輸開銷過大影響密碼運(yùn)算性能的問題,在SR-IOV技術(shù)的基礎(chǔ)上,本文提出了一種減少上下文切換的虛擬密碼設(shè)備中斷路徑優(yōu)化方法,實(shí)現(xiàn)了虛擬密碼機(jī)直接處理中斷的功能,降低了虛擬中斷處理過程中上下文切換次數(shù),有效解決了由于主機(jī)和虛擬密碼機(jī)之間頻繁上下文切換導(dǎo)致的系統(tǒng)過高開銷,提高了虛擬密碼機(jī)加密性能。下一步將在現(xiàn)有硬件平臺的基礎(chǔ)上,研究加密字節(jié)塊、加密速度和中斷頻率之間的關(guān)系,進(jìn)一步優(yōu)化虛擬密碼機(jī)加密性能。

猜你喜歡
機(jī)制設(shè)備
諧響應(yīng)分析在設(shè)備減振中的應(yīng)用
構(gòu)建“不敢腐、不能腐、不想腐”機(jī)制的思考
基于VB6.0+Access2010開發(fā)的設(shè)備管理信息系統(tǒng)
自制力是一種很好的篩選機(jī)制
文苑(2018年21期)2018-11-09 01:23:06
基于MPU6050簡單控制設(shè)備
電子制作(2018年11期)2018-08-04 03:26:08
定向培養(yǎng) 還需完善安置機(jī)制
500kV輸變電設(shè)備運(yùn)行維護(hù)探討
破除舊機(jī)制要分步推進(jìn)
如何在設(shè)備采購中節(jié)省成本
注重機(jī)制的相互配合
主站蜘蛛池模板: 97一区二区在线播放| 福利国产在线| 六月婷婷综合| 亚洲天堂网在线视频| 日韩高清欧美| 91视频精品| 中国美女**毛片录像在线| 亚洲福利一区二区三区| 国产精品99久久久| 亚洲 日韩 激情 无码 中出| 国产成人av大片在线播放| 国产精品免费p区| 永久免费av网站可以直接看的| 亚洲精品国产精品乱码不卞 | 欧美a在线| 第一区免费在线观看| 色综合天天操| 亚洲精品日产AⅤ| 国产精品久久国产精麻豆99网站| 亚洲天堂自拍| 成人欧美日韩| 日韩精品一区二区三区大桥未久| 亚洲欧洲日韩综合色天使| 综合五月天网| 中文字幕永久在线观看| 中文字幕在线欧美| 国产欧美日韩综合在线第一| 日韩色图区| 自拍欧美亚洲| 欧美激情第一欧美在线| 欧美综合一区二区三区| 精品久久久久久成人AV| 国产一级一级毛片永久| 色噜噜在线观看| 少妇精品久久久一区二区三区| 国产乱论视频| 日韩人妻少妇一区二区| 国产免费a级片| 一级成人a毛片免费播放| 国产精品九九视频| 国产成+人+综合+亚洲欧美| www.99在线观看| 国产精品欧美激情| 波多野结衣视频网站| 欧美精品一二三区| 免费一级毛片在线播放傲雪网| www.亚洲一区| 亚洲激情区| 囯产av无码片毛片一级| 国产视频欧美| 第一区免费在线观看| 成人看片欧美一区二区| 精品小视频在线观看| 国产va在线| 尤物亚洲最大AV无码网站| 国产福利2021最新在线观看| 成人福利在线看| 麻豆精品在线| 亚洲资源在线视频| 亚洲精品欧美重口| 日韩免费成人| 国产视频久久久久| 日韩精品一区二区深田咏美| 亚洲精品成人片在线播放| 毛片视频网址| 国产成人高清精品免费软件| 久热这里只有精品6| 国产激情国语对白普通话| 亚洲日韩久久综合中文字幕| 在线观看精品国产入口| 欧美一级专区免费大片| 国产精品99在线观看| 国产成人综合在线视频| 国产十八禁在线观看免费| 久久综合丝袜日本网| 99免费视频观看| 久久精品娱乐亚洲领先| 久久精品无码中文字幕| 国产成人精品高清不卡在线| 极品国产一区二区三区| 成人午夜天| 女同久久精品国产99国|