任琰杰 張?jiān)? 張巖 郭小靜 孫海英
[摘 要] 桌面即服務(wù)(Desktop as a Service,DaaS)是一種新型云計(jì)算服務(wù),把計(jì)算、存儲(chǔ)能力放置在自治、異構(gòu)的云計(jì)算服務(wù)器端,為廣大客戶提供按需分配的虛擬桌面服務(wù)。該文提出基于Docker容器的桌面即服務(wù)(DaaS)虛擬化管理系統(tǒng)架構(gòu)設(shè)計(jì),專(zhuān)注于簡(jiǎn)單、快速地實(shí)現(xiàn)虛擬桌面功能,包括虛擬桌面狀態(tài)管理、生命周期管理、連接管理、分配管理等等。該系統(tǒng)利用Docker容器技術(shù)一致的運(yùn)行環(huán)境、輕易的遷移服務(wù)的特點(diǎn),降低了服務(wù)器硬件要求和軟件配置之間耦合度,實(shí)現(xiàn)秒級(jí)啟動(dòng)虛擬化管理系統(tǒng),比使用其他解決方案更加靈活、高效。
[關(guān)鍵詞] Docker,容器,桌面即服務(wù),虛擬化,云計(jì)算
[基金項(xiàng)目] 2019年度河北省高等學(xué)校科學(xué)技術(shù)研究重點(diǎn)項(xiàng)目“面向柔性云桌面的混合存儲(chǔ)模型研究與構(gòu)建”(ZD2019123)
[作者簡(jiǎn)介] 任琰杰(1985—),男,河北邢臺(tái)人,碩士,就職于河北機(jī)電職業(yè)技術(shù)學(xué)院現(xiàn)代教育技術(shù)中心;張 越(1991—),女,河北邢臺(tái)人,碩士,就職于河北機(jī)電職業(yè)技術(shù)學(xué)院現(xiàn)代教育技術(shù)中心;張 巖(1981—),男(滿族),河北邢臺(tái)人,碩士,就職于河北機(jī)電職業(yè)技術(shù)學(xué)院現(xiàn)代教育技術(shù)中心;郭小靜(1989—),女,河北邢臺(tái)人,碩士,就職于河北機(jī)電職業(yè)技術(shù)學(xué)院信息工程系;孫海英(1977—),女,河北邢臺(tái)人,就職于河北機(jī)電職業(yè)技術(shù)學(xué)院現(xiàn)代教育技術(shù)中心。
[中圖分類(lèi)號(hào)] G642.0? ? [文獻(xiàn)標(biāo)識(shí)碼] A? ? [文章編號(hào)] 1674-9324(2020)38-0373-03? ? [收稿日期] 2020-00-00
一、引言
根據(jù)國(guó)際電信聯(lián)盟介紹,在桌面即服務(wù)(Desktop as a Service,DaaS)架構(gòu)中,有四個(gè)主要的功能模塊:連接管理中間件模塊、資源池化模塊、虛擬機(jī)基礎(chǔ)設(shè)施模塊、虛擬桌面?zhèn)魉湍K[1]。其中連接管理中間件模塊具體實(shí)現(xiàn)形式,就是桌面即服務(wù)虛擬化管理系統(tǒng)。該系統(tǒng)位于桌面即服務(wù)服務(wù)器和客戶終端之間,連接虛擬桌面客戶和所訂的虛擬桌面。虛擬化管理系統(tǒng)對(duì)池化的軟硬件資源進(jìn)行連接、協(xié)調(diào)、管理,為桌面即服務(wù)客戶訂閱的虛擬桌面分配虛擬機(jī)所需的硬、軟件資源,然后將虛擬機(jī)進(jìn)行加載、啟動(dòng),確??蛻艚K端與虛擬桌面的對(duì)應(yīng)關(guān)系及資源分配對(duì)應(yīng)情況。桌面即服務(wù)虛擬化管理系統(tǒng),提供了一個(gè)可視化界面以滿足系統(tǒng)后臺(tái)管理者的創(chuàng)建虛擬機(jī)、制作模板、調(diào)度資源和管理客戶等,例如客戶訪問(wèn)虛擬桌面的權(quán)限、虛擬機(jī)的配置部署、監(jiān)控虛擬機(jī)的活躍度、配置虛擬機(jī)和客戶終端的通信協(xié)議(例如SPICE)、會(huì)話狀態(tài)和日志管理等。
在現(xiàn)階段,桌面即服務(wù)虛擬化管理系統(tǒng)無(wú)論是采用C/S架構(gòu)還是B/S架構(gòu)都有其不足之處。傳統(tǒng)的C/S架構(gòu)維護(hù)與升級(jí)成本大,且?guī)?lái)系統(tǒng)資源浪費(fèi)的情況。B/S架構(gòu)系統(tǒng)往往需要在控制節(jié)點(diǎn)搭建程序運(yùn)行環(huán)境、配置網(wǎng)絡(luò)服務(wù)器、初始化數(shù)據(jù)庫(kù)等諸多步驟,安裝和配置過(guò)程較為復(fù)雜和繁瑣。本文提出基于Docker容器的桌面即服務(wù)(DaaS)虛擬化管理系統(tǒng)架構(gòu)設(shè)計(jì),該系統(tǒng)利用Docker一致的運(yùn)行環(huán)境的特點(diǎn),降低了服務(wù)器硬件要求和應(yīng)用配置環(huán)境之間耦合度,從而實(shí)現(xiàn)虛擬桌面的快速、簡(jiǎn)單的部署效果,性能明顯優(yōu)于C/S、B/S傳統(tǒng)架構(gòu)方式。
二、桌面即服務(wù)虛擬化管理系統(tǒng)
桌面即服務(wù)虛擬化管理系統(tǒng)類(lèi)似于虛擬桌面架構(gòu)(Virtual Desktop Infrastructure,VDI)中的連接代理(Connection Broker)中間件,是一個(gè)處于核心地位的功能組件。它允許客戶通過(guò)瘦終端、軟件或移動(dòng)設(shè)備,連接到服務(wù)器端的各種不同類(lèi)型的虛擬桌面和軟件應(yīng)用。包括的功能有:檢查客戶的連接憑證、將客戶分配到虛擬桌面、根據(jù)需要打開(kāi)或關(guān)閉遠(yuǎn)程桌面、使承載虛擬桌面的服務(wù)器負(fù)載均衡、管理桌面鏡像、將多媒體處理重定向到客戶端等一系列的重要功能??梢哉f(shuō),虛擬化管理系統(tǒng)在桌面即服務(wù)解決方案起到中樞作用。
1.虛擬桌面狀態(tài)管理。在虛擬化管理系統(tǒng)中,虛擬桌面狀態(tài)是最基本的管理功能。虛擬桌面狀態(tài)管理包括虛擬桌面啟停狀態(tài)管理與訂閱桌面即服務(wù)客戶登錄狀態(tài)的管理和跟蹤。
虛擬桌面啟停狀態(tài)的管理包括:?jiǎn)?dòng)、關(guān)閉、重啟、重置虛擬桌面等等。同時(shí),基于虛擬化的特點(diǎn),還提供了PC所不具備的電源狀態(tài)控制管理操作——凍結(jié)和解凍。凍結(jié)是保存虛擬桌面當(dāng)前的內(nèi)存和磁盤(pán)狀態(tài),但處于不可用狀態(tài);解凍是客戶可以從虛擬桌面凍結(jié)點(diǎn)時(shí)的虛擬桌面環(huán)境下繼續(xù)使用[2]。
虛擬桌面客戶登錄狀態(tài)管理包括客戶斷開(kāi)操作和注銷(xiāo)操作。對(duì)于斷開(kāi)操作,客戶在當(dāng)前虛擬機(jī)系統(tǒng)環(huán)境中發(fā)應(yīng)用不會(huì)關(guān)閉、數(shù)據(jù)不會(huì)刪除,客戶重新連接虛擬桌面后會(huì)基于上次斷開(kāi)時(shí)的虛擬機(jī)系統(tǒng)環(huán)境繼續(xù)使用;注銷(xiāo)操作和PC上的功能類(lèi)似,客戶當(dāng)前的虛擬機(jī)釋放所使用的資源,客戶再次登錄后系統(tǒng)會(huì)調(diào)用客戶和環(huán)境數(shù)據(jù),并將數(shù)據(jù)加載到新建立的虛擬機(jī)中。虛擬化管理系統(tǒng)對(duì)客戶登錄狀態(tài)的跟蹤主要是研判活動(dòng)狀態(tài)的虛擬機(jī)是否有客戶正在使用,是否可分配給有使用請(qǐng)求的客戶。
2.虛擬桌面生命周期管理。虛擬化管理系統(tǒng)對(duì)虛擬桌面的管理采用了“資源池”的理念,由具有類(lèi)似系統(tǒng)環(huán)境和應(yīng)用軟件的虛擬桌面集合構(gòu)成了資源池[3]。在一個(gè)資源池中的虛擬桌面,均衍生自相同的虛擬桌面模板。虛擬機(jī)按照特殊系統(tǒng)環(huán)境和應(yīng)用軟件需求創(chuàng)建并配置,就形成了虛擬桌面模板,可以創(chuàng)建有類(lèi)似需求的虛擬桌面集合[4]。這些虛擬桌面,硬件配置上,CPU類(lèi)型和數(shù)目、內(nèi)存大小、硬盤(pán)類(lèi)型和容量、網(wǎng)卡數(shù)目和網(wǎng)絡(luò)配置均相同;系統(tǒng)軟件配置上,操作系統(tǒng)和應(yīng)用軟件初始配置也均相同。
虛擬桌面生命周期管理,是基于資源池對(duì)虛擬桌面進(jìn)行創(chuàng)建、刪除等,還包括客戶匹配關(guān)系管理和虛擬桌面啟停狀態(tài)管理。在創(chuàng)建一個(gè)虛擬桌面資源池時(shí),會(huì)設(shè)置一個(gè)初始容量值,這樣按照容量值就創(chuàng)建出了相同數(shù)量的虛擬桌面。當(dāng)資源池中的虛擬桌面小于客戶請(qǐng)求的數(shù)量時(shí),創(chuàng)建更多的虛擬桌面以滿足需要;當(dāng)資源池中的虛擬桌面多于客戶的請(qǐng)求時(shí),刪除虛擬桌面以節(jié)省資源。
3.虛擬桌面連接管理。虛擬桌面的連接管理對(duì)客戶體驗(yàn)起決定性作用。桌面即服務(wù)處理的是來(lái)自因特網(wǎng)的連接請(qǐng)求。虛擬化管理系統(tǒng)在把客戶連接請(qǐng)求的終端重定向到匹配的虛擬桌面后,就退出連接交互過(guò)程。接下來(lái),客戶終端可以直接和虛擬桌面通信。
虛擬化管理系統(tǒng)支持多種類(lèi)型的連接協(xié)議。比較通用的連接協(xié)議包括RDP、ICA、PCoIP和SPICE。依據(jù)虛擬化方式和操作系統(tǒng)類(lèi)型,客戶端匹配最佳的連接協(xié)議來(lái)控制虛擬桌面。
虛擬化管理系統(tǒng)基于集群中目前的網(wǎng)絡(luò)負(fù)載狀況和客戶連接數(shù)目,依據(jù)連接調(diào)度算法,把新的請(qǐng)求連接虛擬桌面指派到當(dāng)前資源池中最佳的虛擬機(jī)實(shí)例上[2]。經(jīng)過(guò)連接調(diào)度,整體優(yōu)化了系統(tǒng)資源分配,防止虛擬化集群中某臺(tái)機(jī)器中網(wǎng)絡(luò)、存儲(chǔ)、計(jì)算負(fù)荷過(guò)高,但剩余的機(jī)器處于空閑的狀況,全面提升桌面即服務(wù)的客戶體驗(yàn)。圖1展示了虛擬化管理系統(tǒng)對(duì)虛擬桌面連接的管理。
4.虛擬桌面分配管理。虛擬桌面的分配管理是把桌面即服務(wù)的客戶映射到其所需求的虛擬桌面上,在兩者之間建立起有效的對(duì)應(yīng)關(guān)系。虛擬桌面的映射有多種類(lèi)型,一般包括一對(duì)一映射,一對(duì)多映射和多對(duì)多映射[5]。
一對(duì)一映射:在本分配方案中,客戶和虛擬桌面的對(duì)應(yīng)關(guān)系是固定的。當(dāng)客戶斷開(kāi)與虛擬桌面之間的連接,或執(zhí)行注銷(xiāo)操作后,系統(tǒng)不會(huì)清除客戶的數(shù)據(jù),也不會(huì)把對(duì)應(yīng)的虛擬桌面重新收回并分配給其他客戶。在本分配方案中的虛擬桌面,被稱(chēng)為持久桌面或靜態(tài)桌面。
多對(duì)多映射:在本分配方案中,客戶和虛擬桌面的對(duì)應(yīng)關(guān)系沒(méi)有確定關(guān)系。相同使用需求的客戶形成一組,可以連接上述資源池中的任一虛擬桌面實(shí)例。當(dāng)客戶組中某一客戶請(qǐng)求連接虛擬桌面時(shí),虛擬化管理系統(tǒng)會(huì)依據(jù)客戶組與資源池之間的映射關(guān)系,在對(duì)應(yīng)資源池中查找一個(gè)可用、待分配的虛擬桌面響應(yīng)該客戶。當(dāng)客戶在虛擬桌面注銷(xiāo),或斷開(kāi)與虛擬桌面之間的連接后,系統(tǒng)會(huì)立刻清除客戶的數(shù)據(jù),虛擬桌面就釋放回資源池中,變成可用、待分配狀態(tài)??蛻粼俅握?qǐng)求連接虛擬桌面時(shí),會(huì)重新在對(duì)應(yīng)的資源池中連接一個(gè)可用、待分配的虛擬桌面。新使用的虛擬桌面也許是上次被釋放的,也許是一個(gè)新的。這種分配關(guān)系是多對(duì)多映射。在本分配方案中的虛擬桌面,被稱(chēng)為非持久桌面或動(dòng)態(tài)桌面。
一對(duì)多映射:本分配方案融合了一對(duì)一映射和多對(duì)多映射分配方案,客戶可以選擇動(dòng)態(tài)虛擬桌面,也可以選擇靜態(tài)虛擬桌面,為客戶提供了靈活多變的虛擬桌面分配方式[2]。
三、基于Docker的架構(gòu)研究
1.Docker容器簡(jiǎn)介.容器技術(shù)是虛擬化技術(shù)發(fā)展的重要成果,Docker是一個(gè)開(kāi)源、輕量級(jí)的應(yīng)用容器引擎。Docker有“軟件產(chǎn)業(yè)的集裝箱”之稱(chēng),開(kāi)發(fā)人員可以打包應(yīng)用程序和依賴環(huán)境到一個(gè)可移植容器中,囊括了可運(yùn)行程序、各種組件和依賴包、環(huán)境變量等,整個(gè)容器是一套完整的運(yùn)行交付環(huán)境,發(fā)布到常用的Linux或Windows的服務(wù)器上。相比傳統(tǒng)虛擬化技術(shù)(如KVM之類(lèi)),Docker最明顯的特點(diǎn)就是高效的資源利用、快速的啟動(dòng)時(shí)間、一致的運(yùn)行環(huán)境、輕松的遷移服務(wù)等,達(dá)到快速交付系統(tǒng)程序的目的。
2.Docker容器的特性:
(1)高效的資源利用.由于容器不需要單獨(dú)占用一部分內(nèi)存和硬件空間,多個(gè)容器共享系統(tǒng)資源,Docker對(duì)系統(tǒng)資源的利用率更高。單臺(tái)服務(wù)器上可以構(gòu)建10—100個(gè)容器,部署更多的應(yīng)用程序。
(2)快速的啟動(dòng)時(shí)間。部署在傳統(tǒng)的虛擬機(jī)的應(yīng)用程序隨著啟動(dòng)操作系統(tǒng)往往需要若干分鐘,而Docker應(yīng)用程序,直接移植在操作系統(tǒng)內(nèi)核之上,不用將操作系統(tǒng)全部啟動(dòng),因此啟動(dòng)時(shí)間可以做到秒級(jí)、甚至毫秒級(jí)[6],省去了大量開(kāi)發(fā)、測(cè)試、部署的時(shí)間。
(3)一致的運(yùn)行環(huán)境。因?yàn)槿萜骷夹g(shù)就想一個(gè)集裝箱一樣,提供了應(yīng)用服務(wù)運(yùn)行的最小化環(huán)境,將應(yīng)用與其需要的環(huán)境一起打包成為鏡像,而Docker的鏡像提供了除內(nèi)核外完整一致的運(yùn)行環(huán)境,只需首次配置或創(chuàng)建,便可以發(fā)布和運(yùn)行到任意系統(tǒng)中,對(duì)宿主硬件配置、操作系統(tǒng)版本和環(huán)境變量的差異是透明的。
(4)輕松的遷移服務(wù)。由于Docker有一致的運(yùn)行環(huán)境的特點(diǎn),幾乎可以運(yùn)行在任意平臺(tái)上,無(wú)論是服務(wù)器、虛擬機(jī)、公有云、私有云,甚至是PC等,其運(yùn)行結(jié)果是一致的[5]。所以很容易地將應(yīng)用服務(wù)從一個(gè)平臺(tái)直接遷移到另一個(gè)平臺(tái),不必?fù)?dān)心平臺(tái)不同導(dǎo)致應(yīng)用服務(wù)不能正常使用。
四、基于Docker的桌面即服務(wù)虛擬化管理系統(tǒng)架構(gòu)研究
本文中的桌面即服務(wù)虛擬化管理系統(tǒng)使用開(kāi)源的IsardVDI工程,該工程由Python語(yǔ)言開(kāi)發(fā),數(shù)據(jù)庫(kù)使用Mysql,服務(wù)器采用Apache Tomcat。按照應(yīng)用部署流程,在Ubuntu Server18.04操作系統(tǒng)上,首先安裝Docker服務(wù),然后通過(guò)Docker服務(wù)器拉取數(shù)據(jù)庫(kù)、虛擬化、服務(wù)器鏡像,在此基礎(chǔ)上,開(kāi)啟Docker容器,接著拉取IsardVDI項(xiàng)目鏡像,部署在Tomcat服務(wù)器上。部署完畢后,通過(guò)瀏覽器訪問(wèn)虛擬化管理系統(tǒng)。
整個(gè)框架如圖2所示。
五、結(jié)語(yǔ)
本文設(shè)計(jì)了基于Docker容器的桌面即服務(wù)虛擬化管理系統(tǒng)架構(gòu),對(duì)池化的軟硬件資源進(jìn)行連接、協(xié)調(diào)、管理,為客戶連接的虛擬桌面分配虛擬機(jī)所需的硬、軟件資源,然后將虛擬機(jī)進(jìn)行加載、啟動(dòng),確保客戶終端與虛擬桌面的對(duì)應(yīng)關(guān)系及資源分配對(duì)應(yīng)情況。然后利用Docker的特性開(kāi)發(fā)新架構(gòu)平臺(tái),為桌面即服務(wù)進(jìn)一步架構(gòu)升級(jí)提供了參考。下一步的研究工作為在桌面即服務(wù)平臺(tái)向IPv6協(xié)議升級(jí)的具體部署策略等。
參考文獻(xiàn)
[1]Duc Hung Luu.Deploying Building Information Modeling Software on Desktop as a Service Platform.Degree Programme in Computer,Communication and Information Sciences,School of SciencQe,Aalto University.
[2]張甦敏.未來(lái)課堂環(huán)境下的云桌面教學(xué)系統(tǒng)實(shí)現(xiàn)與應(yīng)用研究[D].華東師范大學(xué),2013.
[3]張國(guó)彬.虛擬網(wǎng)格環(huán)境中的動(dòng)態(tài)桌面云技術(shù)研究與實(shí)現(xiàn)[D].南京航空航天大學(xué),2014.
[4]桌面云中的Connection Broker.https://www.ibm.com/developerworks/cn/cloud/library/1112_zhuxy_connectionbroker/.
[5]李光達(dá),等.本體映射規(guī)則研究[J].情報(bào)雜志,2012,(9):98-103.
[6]Docker—從入門(mén)到實(shí)踐.https://www.doc88.com/p-84187077910015.html
Architecture Design of Desktop as a Service (DaaS) Management System Based on Docker Container
REN Yan-jiea,ZHANG Yuea,ZHANG Yana,GUO Xiao-jingb,SUN Hai-yinga
(a.Modern Education Technology Center,b.Department of Information Engineering,Hebei Institute of Mechanical and Electrical Technology,Xingtai,Hebei 054000,China)
Abstract:Desktop as a Service (DaaS) is a new type of cloud computing Service,which places computing and storage capabilities on the autonomous and heterogeneous cloud computing server side,and provides virtual Desktop services to the majority of customers according to their needs.This paper proposes a Docker-container-based DaaS virtualization management system architecture design,focusing on the simple and rapid realization of virtual desktop functions,including virtual desktop state management,life cycle management,connection management,and allocation management.This system takes advantage of the consistent operating environment of Docker container technology and the characteristics of easy migration of services to reduce the coupling degree between server hardware requirements and software configuration,and realize the second-level startup virtualization management system,which is more flexible and efficient than other solutions.
Key words:Docker;container;desktop as a service;virtualization;cloud computing