亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于QEMU-KVM的密碼計算資源虛擬化方法

        2019-11-12 05:02:10張寒冰史國振李建鵬
        計算機應(yīng)用與軟件 2019年11期
        關(guān)鍵詞:作業(yè)資源用戶

        張寒冰 毛 明 史國振 李建鵬

        1(西安電子科技大學(xué)通信工程學(xué)院 陜西 西安 710071)2(北京電子科技學(xué)院 北京 100070)

        0 引 言

        云計算是對并行計算、分布式計算、網(wǎng)格計算等高性能計算理論的延續(xù)與發(fā)展,它是一種以按需分配為業(yè)務(wù)模式,具備動態(tài)擴展等特點的新型計算模式[1],通過將資源抽象成一個虛擬化、動態(tài)化的資源池,來為用戶提供高性能、低成本的服務(wù),它提供了一種可以靈活配置計算資源的彈性服務(wù),可以根據(jù)需求對資源進行動態(tài)調(diào)整[2]。

        云計算作為信息技術(shù)領(lǐng)域當(dāng)中的一次重大變革,正在潛移默化地影響著我們的生活。由于其高可靠性、高擴展性、高靈活性等諸多優(yōu)勢,越來越多的傳統(tǒng)應(yīng)用開始向云端遷移[3],越來越多的企業(yè)開始構(gòu)建自己的云計算平臺。傳統(tǒng)的密碼服務(wù)主要是通過部署物理密碼機來實現(xiàn),這只能適用于具有長期穩(wěn)定需求的系統(tǒng),而在新環(huán)境下,面對海量數(shù)據(jù)和大規(guī)模的業(yè)務(wù),需求可能不斷變化,如果在線服務(wù)過程中,業(yè)務(wù)需求發(fā)生改變但當(dāng)前部署的設(shè)備無法滿足相應(yīng)需求時,就需要先中止當(dāng)前所有的密碼服務(wù),然后更換相應(yīng)的物理設(shè)備重新部署,這樣勢必會降低整個系統(tǒng)的服務(wù)效率,所以這種相對固定的密碼設(shè)備部署方法已經(jīng)無法滿足動態(tài)多樣的需求,需要一種虛擬化的方法來實現(xiàn)密碼計算資源的動態(tài)配置,減少資源浪費,提升服務(wù)效率。

        本文以QEMU-KVM技術(shù)為核心,通過添加資源監(jiān)管模塊,構(gòu)建虛擬密碼設(shè)備(Virtual Cryptography Machine,VCM),采用Virtio技術(shù)實現(xiàn)VCM與物理機的高效數(shù)據(jù)傳輸,通過Libvirt庫提供的命令行與API對VCM進行資源管理,以此實現(xiàn)密碼計算資源的虛擬化。

        1 相關(guān)工作

        針對密碼計算資源虛擬化的問題,不少學(xué)者進行了分析與研究,已經(jīng)提出了若干解決方案。

        文獻[4]提出了一種由密碼資源調(diào)度系統(tǒng)、密碼服務(wù)資源池、密碼服務(wù)代理三部分組成的密碼資源池架構(gòu)。其中服務(wù)資源池由虛擬密碼機與統(tǒng)一管理接口組成,利用硬件虛擬化技術(shù)將物理密碼設(shè)備虛擬成相互獨立的虛擬密碼機,虛擬密碼機內(nèi)部配置密鑰管理、密碼服務(wù)等功能接口,用來抽象底層資源。但是該文獻只提出了一個框架,沒有給出明確的設(shè)計方法,不能很好地應(yīng)用于實際工程。

        文獻[5]提出了一種基于宿主機的密碼機及密碼運算實現(xiàn)方法,主要方法是在部署有物理密碼模塊的宿主機上配置多個虛擬機,各虛擬機的虛擬IP不同,用于接收不同的密碼運算請求,虛擬機通過添加虛擬密碼模塊與密碼服務(wù)模塊來處理運算結(jié)果。但是該方法沒有提供外部身份驗證的功能,僅利用不同的虛擬網(wǎng)卡作為區(qū)分不同虛擬密碼設(shè)備的手段,容易造成安全隱患,攻擊者只要獲得虛擬機的IP,就可能導(dǎo)致DDoS攻擊。

        文獻[6]提出了一種在虛擬化環(huán)境中提供密碼服務(wù)的方法,主要方法是在宿主機上配置虛擬密碼機來提供虛擬密碼服務(wù),通過虛擬機自省方式檢查密碼服務(wù)請求的有效性,虛擬機不能訪問計算過程中的密鑰及敏感狀態(tài),密鑰以文件形式存儲在宿主機磁盤中。該方法通過虛擬機中的模擬接口來調(diào)用虛擬密碼設(shè)備,但是缺少對底層計算資源的統(tǒng)一描述,因而不適用于資源異構(gòu)的環(huán)境。

        針對傳統(tǒng)云計算領(lǐng)域,已經(jīng)存在幾種主流的虛擬化解決方案。

        Vmware采用全虛擬化技術(shù),在虛擬機與硬件之間添加了一個軟件層Hypervisor作為虛擬機監(jiān)控器(Virtual Machine Monitor,VMM)[7],以純軟件的方式模擬了一套硬件環(huán)境,需要占用一定資源。Xen是由劍橋大學(xué)計算機系在32位的X86上開發(fā)出的一個開源虛擬機監(jiān)視器項目,采用半虛擬化技術(shù),VMM作為客戶操作系統(tǒng)與硬件資源之間的訪問接口直接運行在硬件上[8]。它創(chuàng)建了一個能夠直接訪問硬件資源的特權(quán)操作系統(tǒng)“Domain 0”和若干普通客戶操作系統(tǒng),由于該技術(shù)需要對客戶操作系統(tǒng)進行修改,所以無法應(yīng)用于閉源操作系統(tǒng)。KVM是以色列創(chuàng)業(yè)公司Qumranet開發(fā)的一款基于Linux內(nèi)核的全虛擬化解決方案,內(nèi)核通過加載模塊創(chuàng)建VMM,無需對客戶操作系統(tǒng)進行修改[9],虛擬機與其使用的虛擬CPU都以常規(guī)Linux進程存在,可由內(nèi)核的調(diào)度程序進行管理,減少了額外的開發(fā)工作。運行于內(nèi)核空間的KVM完成硬件虛擬化和打開虛擬化模式,本身并不進行任何模擬,運行于用戶空間的QEMU通過KVM提供的接口完成整套虛擬化。

        KVM在Linux2.6.20之后與內(nèi)核集成在一起,隨Linux內(nèi)核同步更新[10]。QEMU于2018年12月正式發(fā)布3.1.0版本,對ARM、MIPS等架構(gòu)進行了更新,增加了對KVM內(nèi)存巨頁技術(shù)(huge page)等功能的支持[11]。近幾年來,不少學(xué)者針對QEMU-KVM技術(shù)進行了研究與應(yīng)用。文獻[12]提出了一種在ARM64位服務(wù)器系統(tǒng)中實現(xiàn)QEMU-KVM虛擬化的方法。文獻[13]在QEMU-KVM框架中添加了一個虛擬機管理緩存HyperCache,用于提高QEMU的I/O虛擬化能力。文獻[14]基于QEMU提出了一種創(chuàng)建用戶自定義虛擬硬件設(shè)備的步驟和方法,并為這些新設(shè)備開發(fā)了對應(yīng)的驅(qū)動程序。文獻[15]基于QEMU-KVM技術(shù)設(shè)計了一種GPU的全虛擬化解決方案G-KVM。文獻[16]基于QEMU技術(shù)提出了一種用于檢測Linux應(yīng)用異常通信行為的方法。上述研究成果也為本文利用該技術(shù)實現(xiàn)密碼計算資源虛擬化方法提供了思路。

        本文采用QEMU-KVM技術(shù)對密碼計算資源進行虛擬化,通過在宿主機中部署資源監(jiān)管模塊對虛擬密碼設(shè)備進行管理,通過添加身份驗證模塊對作業(yè)包的合法性進行驗證,通過構(gòu)建多級隊列支持任務(wù)的優(yōu)先級調(diào)度,通過對資源進行統(tǒng)一化描述實現(xiàn)計算節(jié)點的動態(tài)配置。

        2 系統(tǒng)模型

        2.1 整體框架

        密碼計算資源的虛擬化框架如圖1所示,主要分為五個部分,即身份驗證模塊、VCM、作業(yè)隊列、計算模塊及計算資源監(jiān)管模塊。

        圖1 資源虛擬化框架

        身份驗證模塊,主要負責(zé)對外來作業(yè)包進行身份驗證并將合法作業(yè)包發(fā)往相應(yīng)的VCM進行下一階段的數(shù)據(jù)處理。該模塊中記錄了合法用戶與其分配的VCM之間的映射關(guān)系,由計算資源監(jiān)管模塊對其進行維護,該模塊根據(jù)此映射關(guān)系將作業(yè)包分發(fā)給相應(yīng)的VCM進行處理。

        VCM,虛擬密碼設(shè)備,每一個用戶對應(yīng)一個VCM,VCM之間相互獨立,在VCM內(nèi)部可用于保存用戶在使用密碼服務(wù)過程中產(chǎn)生的臨時數(shù)據(jù),便于虛擬設(shè)備的動態(tài)遷移。VCM內(nèi)部主要由資源分配單元與VCM監(jiān)管單元組成。資源分配單元主要根據(jù)服務(wù)種類將不同類型的作業(yè)包發(fā)往不同的處理接口,并負責(zé)從相應(yīng)接口將處理好的數(shù)據(jù)返回給用戶;VCM監(jiān)管單元主要為外部的計算資源監(jiān)管模塊提供VCM的內(nèi)部資源信息,同時可以根據(jù)外部命令對VCM內(nèi)部資源進行相應(yīng)調(diào)整。

        作業(yè)隊列,是VCM與計算模塊之間的數(shù)據(jù)緩沖區(qū),主要由優(yōu)先級隊列與作業(yè)上下行隊列組成,結(jié)構(gòu)組成如圖2所示。優(yōu)先級隊列與VCM一一對應(yīng),作業(yè)上下行隊列與計算節(jié)點一一對應(yīng)。從VCM接收到的作業(yè)包,會根據(jù)作業(yè)包的相關(guān)標(biāo)識分發(fā)到相關(guān)的優(yōu)先級隊列,再根據(jù)作業(yè)分發(fā)單元中的調(diào)度策略將其分發(fā)到相應(yīng)的作業(yè)下行隊列中,然后由計算單元對其進行處理,最后通過作業(yè)上行隊列將結(jié)果返回給VCM。

        計算模塊,主要由計算節(jié)點組成,這些計算節(jié)點是實際計算單元經(jīng)過抽象得到的,實際計算單元既可以是軟件實現(xiàn)也可以是硬件設(shè)備。

        計算資源監(jiān)管模塊,主要負責(zé)對整個系統(tǒng)的計算資源,如內(nèi)存、CPU、磁盤等信息進行監(jiān)管,也包括對各作業(yè)隊列的負載信息與各計算節(jié)點的運行信息等進行監(jiān)管。通過監(jiān)控這些資源既便于管理員了解系統(tǒng)運行情況,也便于資源的動態(tài)配置。

        圖2 作業(yè)隊列

        2.2 實現(xiàn)方法

        2.2.1身份驗證

        為保證密碼服務(wù)系統(tǒng)的安全性,用戶在使用密碼服務(wù)之前需要在該系統(tǒng)注冊,只有合法用戶才能使用密碼服務(wù)。用戶注冊時,由計算資源監(jiān)管模塊根據(jù)用戶需求與當(dāng)前系統(tǒng)計算資源的使用情況為用戶分配對應(yīng)的計算資源,創(chuàng)建相應(yīng)的VCM,同時為VCM分配獨有的虛擬IP,該IP與用戶形成一對映射關(guān)系。驗證步驟如下:

        Step1用戶向系統(tǒng)發(fā)送帶有用戶標(biāo)識碼信息的連接請求包;

        Step2驗證模塊取出用戶標(biāo)識碼,并將其與本地數(shù)據(jù)庫進行比對,如果驗證成功,則執(zhí)行下一步,否則返回錯誤;

        Step3從數(shù)據(jù)庫中得到為該用戶分配的VCM的IP地址,并與其建立連接,形成內(nèi)部通路;

        Step4驗證模塊返回連接成功信息,然后負責(zé)外部與VCM之間的數(shù)據(jù)轉(zhuǎn)發(fā),直到用戶斷開連接。

        因此,該系統(tǒng)對外只有一個交互接口,隱藏了系統(tǒng)的內(nèi)部數(shù)據(jù)通道與資源的分配情況。

        2.2.2VCM

        虛擬密碼設(shè)備VCM是基于QEMU-KVM技術(shù)創(chuàng)建的KVM虛擬機,與用戶一一對應(yīng)。

        通過虛擬機的配置文件,可以為虛擬機靈活分配內(nèi)存、CPU、外設(shè)等。在Linux環(huán)境下,配置文件位于/etc/libvirt/qemu/下,由xml文件定義。虛擬機的基本信息如下:

        其中:由屬性type指定使用的虛擬化技術(shù)為KVM;元素name指定創(chuàng)建的虛擬機名稱為vcm1;元素uuid指定當(dāng)前虛擬機的唯一標(biāo)識符;元素memory指定虛擬機啟動時所分配的內(nèi)存大小;KVM虛擬機中的內(nèi)存管理采用內(nèi)存氣球(Ballooning)技術(shù)[17],便于內(nèi)存的動態(tài)調(diào)整,元素currentMemory指定使用該技術(shù)動態(tài)調(diào)整后的內(nèi)存大?。辉豽cpu指定為虛擬機分配的虛擬CPU數(shù)量;元素os指定虛擬機的系統(tǒng)信息。

        身份驗證模塊與VCM之間通過Socket套接字進行通信,每個VCM擁有各自獨立的IP地址,建立數(shù)據(jù)通道后,各用戶之間的數(shù)據(jù)收發(fā)互不影響。

        針對I/O虛擬化,KVM一般使用純軟件的方式模擬I/O設(shè)備[18]。當(dāng)客戶機發(fā)出I/O請求時,KVM內(nèi)核模塊中的I/O操作捕獲代碼攔截該請求,對其進行相應(yīng)處理后將請求信息放到I/O共享頁中,并通知QEMU程序,QEMU獲得請求信息后,使用硬件模擬代碼模擬此次I/O操作,最后將結(jié)果放回I/O共享頁,KVM內(nèi)核模塊捕獲到該結(jié)果之后返回給客戶機。這樣做會導(dǎo)致每次I/O請求時出現(xiàn)多次上下文切換,考慮到本框架中的KVM與作業(yè)隊列之間需要進行頻繁的數(shù)據(jù)交互,采用這種方法的處理性能較差。

        Virtio技術(shù)是一種I/O半虛擬化的解決方案,它在客戶操作系統(tǒng)中安裝前端驅(qū)動(Front-end driver),在QEMU中安裝后端驅(qū)動(Back-end driver),前后端之間通過環(huán)形緩沖區(qū)Vring直接通信,這樣就不需要KVM內(nèi)核模塊參與,進而提升數(shù)據(jù)的交互性能。它的實現(xiàn)被稱為Virtio-serial,是一種傳輸協(xié)議,用于客戶與宿主間的簡單通信[19]。所以,在VCM與作業(yè)隊列之間采用Virtio技術(shù)建立數(shù)據(jù)通道可以大大提升數(shù)據(jù)傳輸效率。修改VCM對應(yīng)的xml文件即可添加相應(yīng)設(shè)備,如下所示:

        VCM啟動后,在路徑/dev/virtio-ports下會新增一個名為vcm.recv的字符設(shè)備,通過對該設(shè)備進行文件讀寫即可實現(xiàn)對Virtio通道的數(shù)據(jù)收發(fā)。相應(yīng)地,該設(shè)備在宿主機當(dāng)中被映射成一個套接字文件vcm_send.data,位于/var/lib/libvirt/qemu/路徑下,采用Socket套接字方法即可完成對Virtio通道的讀寫。這樣,就實現(xiàn)了VCM與宿主機之間的高效數(shù)據(jù)交互。

        2.2.3作業(yè)隊列

        作業(yè)隊列主要作為VCM與計算模塊之間的數(shù)據(jù)緩沖區(qū)。為了能夠使作業(yè)包按照任務(wù)優(yōu)先級進行處理,將下行隊列分為兩層:優(yōu)先級隊列與作業(yè)下行隊列;對于計算模塊,只要數(shù)據(jù)處理完畢后就會將處理結(jié)果放入上行隊列,這意味著先處理先返回,所以只需要一層上行隊列。相應(yīng)的隊列管理進程負責(zé)管理隊列之間的作業(yè)交互。針對這3類不同功能的作業(yè)隊列,隊列管理進程也分為3類:

        (1) 接收進程,管理VCM與優(yōu)先級隊列之間的數(shù)據(jù)通路,負責(zé)將來自VCM的作業(yè)包根據(jù)作業(yè)優(yōu)先級標(biāo)識放入對應(yīng)的優(yōu)先級隊列中。

        (2) 作業(yè)分發(fā)進程,作用相當(dāng)于作業(yè)分發(fā)單元,管理優(yōu)先級隊列與作業(yè)下行隊列之間的數(shù)據(jù)通路,對作業(yè)包進行調(diào)度。對于每種優(yōu)先級隊列,均設(shè)定一個閾值,該閾值可以由作業(yè)包的平均等待時間或隊列中的作業(yè)包數(shù)決定。以作業(yè)包數(shù)為例,當(dāng)各優(yōu)先級隊列的負載均低于閾值時,實行遍歷調(diào)度的策略,即從高優(yōu)先級到低優(yōu)先級依次調(diào)度;當(dāng)某級隊列的負載超過了閾值,則先切換到該級隊列進行調(diào)度,直到其負載低于閾值,再返回原隊列繼續(xù);如果有多個隊列同時出現(xiàn)超過閾值的狀況,則按照優(yōu)先級由高到低的策略進行調(diào)度。該閾值可以根據(jù)實際情況在資源管理平臺中修改。

        (3) 發(fā)送進程,管理作業(yè)上行隊列與VCM之間的數(shù)據(jù)通路,負責(zé)將作業(yè)上行隊列中的作業(yè)包發(fā)送給VCM。

        為防止使用不同密碼算法服務(wù)的數(shù)據(jù)在傳輸過程當(dāng)中互相影響,對于每一種密碼服務(wù),VCM都分配有對應(yīng)的Virtio收發(fā)通道,對于每一個計算節(jié)點,每種密碼服務(wù)都分配有對應(yīng)的作業(yè)上下行隊列。配置不同的Virtio收發(fā)通道保證了在數(shù)據(jù)分發(fā)及處理的過程中,單一密碼服務(wù)類型的數(shù)據(jù)存在于單一類型的數(shù)據(jù)通道當(dāng)中,相比于使用公用通道,不需要每次從通道中取出數(shù)據(jù)時進行分類,因而便于對其中某個單一密碼算法流程進行全局管理,有效提高了處理效率。通過配置獨立的作業(yè)上下行隊列,便于計算節(jié)點的動態(tài)配置,如果需要添加或者刪除計算節(jié)點時,只需要打開或者關(guān)閉相應(yīng)的隊列即可。

        對于每一個作業(yè)包,可定義如下包頭對作業(yè)進行區(qū)分:

        struct data_head

        {

        int priority;

        //作業(yè)包優(yōu)先級

        int type;

        //算法服務(wù)標(biāo)識

        int id;

        //作業(yè)包ID

        int len;

        //作業(yè)包長度

        };

        其中:priority標(biāo)識作業(yè)包的優(yōu)先級,type標(biāo)識作業(yè)包的類型,id用于與其他作業(yè)進行區(qū)分,len指定作業(yè)包的長度。

        作業(yè)隊列在處理數(shù)據(jù)時主要分為以下4個步驟:

        Step1接收進程通過Virtio通道從VCM中取出數(shù)據(jù),并根據(jù)包頭中的priority字段將其放入相應(yīng)的優(yōu)先級隊列中;

        Step2作業(yè)分發(fā)進程按照當(dāng)前調(diào)度策略從某個優(yōu)先級隊列中取出作業(yè)包,然后根據(jù)包頭中的type字段將其放入相應(yīng)的作業(yè)下行隊列;

        Step3計算模塊中的計算節(jié)點從對應(yīng)的作業(yè)下行隊列中取走數(shù)據(jù),待數(shù)據(jù)處理完畢后,直接放入相應(yīng)的作業(yè)上行隊列;

        Step4發(fā)送進程發(fā)現(xiàn)某作業(yè)上行隊列中存在數(shù)據(jù)后,就會通過相應(yīng)的Virtio通道將其發(fā)給VCM。

        2.2.4計算資源監(jiān)管

        為了對計算資源進行合理分配,需要構(gòu)建計算資源監(jiān)管模塊,負責(zé)對計算資源的使用情況進行實時監(jiān)控,用于作業(yè)的分配與調(diào)度。

        (1) 通過Libvirt庫對VCM進行管理。

        Libvirt是一款針對Linux虛擬化平臺進行管理的開源API[20],它提供了一套統(tǒng)一的虛擬化管理接口,同時提供了一個libvirtd服務(wù)和virsh命令行管理工具,便于直接對虛擬機進行管理。常用virsh命令如表1所示。

        表1 常用virsh命令

        (2) 通過共享內(nèi)存實時監(jiān)管作業(yè)隊列與計算節(jié)點。

        共享內(nèi)存是一種用于進程之間傳遞消息的方式。通過創(chuàng)建一塊固定的內(nèi)存區(qū)域,使得多個進程都可以將其連接到它們自己的地址空間,再通過增加同步機制保證共享內(nèi)存區(qū)內(nèi)數(shù)據(jù)的正確性。各作業(yè)隊列與計算節(jié)點可以將其負載信息同步到共享內(nèi)存中,便于計算資源監(jiān)管模塊對它們進行監(jiān)管。與數(shù)據(jù)庫記錄穩(wěn)定且更新頻率低的數(shù)據(jù)相比,共享內(nèi)存提供了對臨時且更新頻率高的數(shù)據(jù)進行記錄的方法,便于實時狀態(tài)的更新與反饋。

        2.2.5計算節(jié)點

        為了實現(xiàn)計算資源虛擬化,需要將傳統(tǒng)意義上的軟硬件計算單元抽象成計算節(jié)點,通過統(tǒng)一的描述語言構(gòu)建底層的計算資源池。針對用于密碼運算的底層計算單元,可以用一個多元組來表示:

        nodei=R(Ei,Bi,A1,A2,…,Aj)

        (1)

        式中:Ei表示節(jié)點ID,用于區(qū)別其他節(jié)點;Bi表示屬主ID,用于表示當(dāng)前節(jié)點所屬的VCM標(biāo)識;Aj用于表示本節(jié)點的計算能力,包括密碼服務(wù)類型Tj、處理速度Pj及狀態(tài)信息Sj,即:

        Aj={Tj,Pj,Sj}

        (2)

        對只提供一種密碼算法的節(jié)點有如下表示:

        nodei=R(Ei,Bi,{T,P,S})

        (3)

        計算節(jié)點經(jīng)過抽象后以這種多元組的形式{node1,node2,…,noden}儲存在數(shù)據(jù)庫當(dāng)中。隊列管理進程通過這些信息,將作業(yè)包分發(fā)到最優(yōu)節(jié)點;監(jiān)管模塊則通過這些信息實現(xiàn)對計算節(jié)點的動態(tài)配置。

        3 仿真及分析

        基于本文所描述的密碼計算資源虛擬化方法,通過在Linux系統(tǒng)中搭建相關(guān)環(huán)境,實現(xiàn)了計算資源虛擬化的原型系統(tǒng)。通過對系統(tǒng)進行測試,可以證明所提出的虛擬化方法能夠?qū)γ艽a計算資源進行動態(tài)配置,滿足所提出的需求。

        使用兩臺PC進行測試,一臺作為用戶端,一臺作為服務(wù)器端,二者通過Socket建立連接,在服務(wù)器端部署整個虛擬化系統(tǒng),用戶端通過服務(wù)器端提供的API接口進行交互。

        為方便進行功能測試,底層計算單元通過調(diào)用OpenSSL軟件庫實現(xiàn)密碼運算,且只提供SM3雜湊算法服務(wù)。選用MySQL作為系統(tǒng)的核心數(shù)據(jù)庫,用于記錄用戶的注冊信息、VCM及各計算節(jié)點的資源信息。利用Linux系統(tǒng)提供的消息隊列機制構(gòu)建作業(yè)隊列。

        數(shù)據(jù)庫的基本字段如表2所示。其中,為方便處理,對計算節(jié)點進行了量化處理,規(guī)定:節(jié)點SM3的實際處理速率為1 kbit/s時對應(yīng)的sm3rate為1,即P=1;屬主ID為0時表示該節(jié)點未被分配;服務(wù)類型為1時表示提供SM3雜湊算法服務(wù);狀態(tài)信息為1時表示當(dāng)前節(jié)點可用。

        表2 數(shù)據(jù)庫字段

        這里定義4個不同速率的計算節(jié)點,即:

        node1=R(1,1,{1,1,1})

        (4)

        node2=R(2,0,{1,1,1})

        (5)

        node3=R(3,0,{1,2,1})

        (6)

        node4=R(4,0,{1,2,1})

        (7)

        其中,只有node1被分配給了ID為1的VCM,其余節(jié)點都處于未分配狀態(tài)。

        資源監(jiān)管平臺如圖3所示。通過資源監(jiān)管平臺界面,可以實時監(jiān)視當(dāng)前系統(tǒng)已注冊的用戶、為當(dāng)前用戶所分配的VCM信息以及為VCM所分配的計算節(jié)點狀態(tài)信息。由圖3可知,當(dāng)前系統(tǒng)注冊用戶只有1個,所分配的VCM的ID為1,為該VCM分配的計算節(jié)點ID為1,其SM3處理速率為1,與式(4)定義相符。

        圖3 資源監(jiān)管平臺

        通過該平臺除了可以看到當(dāng)前活躍的計算節(jié)點,也能看到未分配的節(jié)點信息,如圖4所示。

        圖4 計算節(jié)點信息

        由圖4可以看到,當(dāng)前系統(tǒng)存在4個計算節(jié)點,節(jié)點的狀態(tài)與式(4)-式(7)所定義的一致。針對這4個節(jié)點,可以對其進行動態(tài)配置。通過配置可以自由搭配節(jié)點,用戶端所得到的SM3運算速率變化如圖5所示,橫坐標(biāo)中用括號括起來的數(shù)據(jù)表示當(dāng)前參與計算的節(jié)點ID。

        圖5 節(jié)點組合測試

        由圖5可以看到,用戶在使用過程中,根據(jù)用戶需求,可以通過對節(jié)點動態(tài)配置調(diào)整用戶所擁有的計算能力。理論上對于SM3雜湊算法服務(wù),不同節(jié)點組合所獲得的處理能力應(yīng)是這幾個節(jié)點的處理能力之和,圖中的數(shù)據(jù)表明實際計算能力與理論相符。由于配置的是抽象出來的計算節(jié)點而不是具體的物理計算資源,因而在用戶使用過程中,如果需要調(diào)整底層的物理資源,可以用已配置好的計算節(jié)點替換當(dāng)前節(jié)點,而不需要中止當(dāng)前服務(wù),也就是說,通過計算節(jié)點屏蔽了底層的物理資源,滿足虛擬化的要求。

        針對多計算節(jié)點同時參與計算,需要考慮各計算節(jié)點的負載均衡。作業(yè)隊列管理進程是根據(jù)各計算節(jié)點速度的量化數(shù)據(jù)分配作業(yè)包,也就是基于計算節(jié)點的處理能力分配作業(yè)包,因而在理論上保證了計算節(jié)點間的負載均衡。實際測試如圖6所示??梢钥闯觯鞴?jié)點所處理的作業(yè)包個數(shù)與其處理能力成正比,具有相同能力的節(jié)點所處理的作業(yè)包個數(shù)相同,這樣既保證了負載隨節(jié)點處理能力的增加而增加,也保證了具有相同處理能力的節(jié)點具有相同的負載。

        圖6 節(jié)點負載分布

        4 結(jié) 語

        本文基于QEMU-KVM技術(shù),提出了一種密碼計算資源的虛擬化方法,設(shè)計了一個虛擬化框架。通過將物理資源抽象成計算節(jié)點構(gòu)建資源虛擬化池,通過配置優(yōu)先級隊列使得作業(yè)可以根據(jù)任務(wù)的優(yōu)先級進行處理,通過為每個節(jié)點配置獨立的作業(yè)上下行隊列保證計算節(jié)點動態(tài)添加或刪除的可行性,通過添加身份驗證模塊保證整個虛擬化系統(tǒng)的安全。仿真實驗證明了本方法的正確性和可行性,利用該框架可以對密碼計算資源進行虛擬化,實現(xiàn)對密碼計算資源的動態(tài)配置。

        猜你喜歡
        作業(yè)資源用戶
        基礎(chǔ)教育資源展示
        快來寫作業(yè)
        一樣的資源,不一樣的收獲
        資源回收
        資源再生 歡迎訂閱
        資源再生(2017年3期)2017-06-01 12:20:59
        關(guān)注用戶
        商用汽車(2016年11期)2016-12-19 01:20:16
        作業(yè)
        故事大王(2016年7期)2016-09-22 17:30:08
        關(guān)注用戶
        商用汽車(2016年6期)2016-06-29 09:18:54
        關(guān)注用戶
        商用汽車(2016年4期)2016-05-09 01:23:12
        如何獲取一億海外用戶
        国产一区二区三区视频免费在线 | 扒开女性毛茸茸的视频| 精品一区二区三区芒果| 亚洲av无码专区在线播放| 久久久精品久久波多野结衣av| 国产爆乳美女娇喘呻吟久久| 亚洲熟女av在线观看| 国产精品久久久久一区二区三区 | 永久免费av无码网站yy| 无码片久久久天堂中文字幕| 色婷婷精久久品蜜臀av蜜桃| 国产亚洲一区二区在线观看| 中国农村妇女hdxxxx| 亚洲自拍另类欧美综合| 亚洲成av人片在久久性色av| 国产精品一区二区性色| 精品国产人妻一区二区三区| 一区二区韩国福利网站| 国产av一区二区制服丝袜美腿| 亚洲日韩小电影在线观看| 欧美mv日韩mv国产网站| 中文字幕有码在线视频| 亚洲精品中文字幕一二三四| aa片在线观看视频在线播放| 自拍偷自拍亚洲精品播放| 一级做a爱视频在线播放| 久久一二区女厕偷拍图| 少妇av射精精品蜜桃专区| 国产中文aⅴ在线| 亚洲中文高清乱码av中文| 久久久久亚洲精品男人的天堂| 麻豆亚洲av永久无码精品久久| 日日噜噜夜夜狠狠2021| 成h视频在线观看免费| 成年女人免费视频播放体验区| 国产三级精品三级国产| 经典亚洲一区二区三区| 搡女人真爽免费视频大全| 亚洲免费人成在线视频观看| 美腿丝袜一区二区三区| 无遮挡很爽很污很黄的女同|