常正超
摘要 桌面的虛擬化技術(shù)可以在高校PC數(shù)量眾多、軟硬件系統(tǒng)升級(jí)困難、位置分散等復(fù)雜環(huán)境中進(jìn)行集中化配置管理,隨著云計(jì)算的興起,將桌面虛擬化技術(shù)與云計(jì)算技術(shù)相結(jié)合,能夠有效的提高計(jì)算資源利用率、增強(qiáng)傳統(tǒng)虛擬桌面系統(tǒng)彈性。本文提出了一種基于開(kāi)源云計(jì)算OpenStack的私有云桌面實(shí)現(xiàn)方案。
【關(guān)鍵詞】OpenStack 私有云 虛擬桌面 云計(jì)算
在傳統(tǒng)高校環(huán)境應(yīng)用PC的過(guò)程中,人員的流動(dòng)和持續(xù)發(fā)展的軟硬件技術(shù)一直影響著PC的實(shí)際部署。其中一個(gè)重要的因素就是為了能夠跟上主流操作系統(tǒng)和常用軟件的升級(jí),IT和資產(chǎn)部門(mén)必須不斷的為用戶升級(jí)PC機(jī)。而且用戶所具備的計(jì)算機(jī)相關(guān)知識(shí)參差不齊,這些現(xiàn)象除增加了大量的人力和財(cái)力成本之外,也帶來(lái)了巨大的桌面安全隱患。例如關(guān)鍵數(shù)據(jù)丟失、各種惡意病毒的傳播等。隨著云計(jì)算技術(shù)的發(fā)展,其與虛擬桌面的結(jié)合,能夠有效的對(duì)虛擬PC進(jìn)行統(tǒng)一的維護(hù)與管理,可以解決信息安全等問(wèn)題,實(shí)現(xiàn)彈性擴(kuò)展、迅速部署,具有移動(dòng)辦公便捷、節(jié)能、資源利用率高等優(yōu)點(diǎn)。
1 虛擬化與云計(jì)算介紹
1.1 虛擬化技術(shù)
虛擬化技術(shù)( Virtualization)是一種資源管理技術(shù),是將計(jì)算機(jī)的各種實(shí)體資源(CPU、內(nèi)存、磁盤(pán)空間、網(wǎng)絡(luò)適配器等),予以抽象、轉(zhuǎn)換后呈現(xiàn)出來(lái)并可供分區(qū)、組合為一個(gè)或多個(gè)電腦配置環(huán)境。由此,打破實(shí)體結(jié)構(gòu)間的不可切割的障礙,使用戶可以比原本的配置更好的方式來(lái)應(yīng)用這些電腦硬件資源。這些資源的虛擬部分是不受現(xiàn)有資源的架設(shè)方式、地域或物理配置所限制。一般所指的虛擬化資源包括計(jì)算能力和數(shù)據(jù)存儲(chǔ)。
1.2 云計(jì)算技術(shù)
云計(jì)算( cloud computing),是一種基于互聯(lián)網(wǎng)的計(jì)算方式,通過(guò)這種方式,共享的軟硬件資源和信息可以按需求提供給計(jì)算機(jī)各種終端和其他設(shè)備。美國(guó)國(guó)家標(biāo)準(zhǔn)和技術(shù)研究院的云計(jì)算定義中明確了三種服務(wù)模式:軟件即服務(wù)(SaaS,Software as aService)、平臺(tái)即服務(wù)(PaaS,Platform as a Service)和基礎(chǔ)設(shè)施即服務(wù)(IaaS,Infrastructure as aService);其也涉及了關(guān)于云計(jì)算的部署模型:公用云(Public Cloud)、私有云(Private Cloud)、社區(qū)云( Community Cloud)和混合云(HybridCloud)。其中私有云具備許多公用云環(huán)境的優(yōu)點(diǎn),例如彈性、適合提供服務(wù),兩者差別在于私有云服務(wù)中,數(shù)據(jù)與程序皆在組織內(nèi)管理,且與公用云服務(wù)不同,不會(huì)受到網(wǎng)絡(luò)帶寬、安全疑慮、法規(guī)限制影響;此外,私有云服務(wù)讓供應(yīng)者及用戶更能掌控云基礎(chǔ)架構(gòu)、改善安全與彈性,因?yàn)橛脩襞c網(wǎng)絡(luò)都受到特殊限制。
現(xiàn)有的私有云桌面解決方案大都是商用軟件,構(gòu)建企業(yè)或高校虛擬桌面成本較高。因此本文采用開(kāi)源的OpenStack應(yīng)用于虛擬桌面中,提出了基于OpenStack的私有云桌面實(shí)現(xiàn)方案。
2 0penStack概述
2.1 0penStack起源
OpenStack是一個(gè)美國(guó)宇航局和Rackspace合作研發(fā)的云計(jì)算軟件,以Apache授權(quán)條款授權(quán),并且是一個(gè)自由軟件和開(kāi)放源代碼項(xiàng)目。OpenStack是基礎(chǔ)設(shè)施即服務(wù)(IaaS)軟件,讓任何人都可以自行創(chuàng)建和提供云計(jì)算服務(wù)。此外,OpenStack也用作創(chuàng)建防火墻內(nèi)的“私有云”(Private Cloud),提供機(jī)構(gòu)或企業(yè)內(nèi)各部門(mén)共享資源。如圖1所示。
2.2 0penStack架構(gòu)
如圖2所示,OpenStack采用模塊化設(shè)計(jì)理念,全平臺(tái)系統(tǒng)有多個(gè)模塊項(xiàng)目構(gòu)成,每個(gè)項(xiàng)目實(shí)現(xiàn)獨(dú)自的功能,同時(shí)項(xiàng)目之間采用消息隊(duì)列進(jìn)行通信,將項(xiàng)目之間的耦合性將到最低,每個(gè)項(xiàng)目都可以單獨(dú)的安裝和測(cè)試,因此在采用OpenStack部署云平臺(tái)的時(shí)候,我們可以根據(jù)自己的需要選擇相應(yīng)的模塊項(xiàng)目進(jìn)行部署。
Nova,為整個(gè)云計(jì)算架構(gòu)的Controller,提供計(jì)算服務(wù)。Keystone,為OpenStack的認(rèn)證服務(wù)中心,為其他模塊之間的請(qǐng)求提供認(rèn)證服務(wù)。Glance,提供鏡像服務(wù),創(chuàng)建虛擬機(jī)時(shí)需要通過(guò)Glance服務(wù)選擇鏡像模板。Neutron,提供OpenStack的網(wǎng)絡(luò)服務(wù),負(fù)責(zé)Nova創(chuàng)建虛擬機(jī)時(shí)配置IP地址等網(wǎng)絡(luò)功能。Horizon,是管理OpenStack各個(gè)模塊的web平臺(tái),大部分模塊都可以通過(guò)Dashboard進(jìn)行圖形化操作。Swift、Cinder,提供對(duì)象存儲(chǔ)、塊存儲(chǔ)服務(wù),將虛擬機(jī)上的數(shù)據(jù)進(jìn)行持久化存儲(chǔ)。
3 基于OpenStack私有云桌面系統(tǒng)實(shí)現(xiàn)
3.1 系統(tǒng)架構(gòu)
一個(gè)虛擬桌面系統(tǒng)需要虛擬桌面服務(wù)器、資源池管理器、終端客戶端以及桌面?zhèn)鬏攨f(xié)議等幾個(gè)部分組成。將私有云結(jié)合到虛擬桌面技術(shù)中,可以利用如圖3所示的架構(gòu)實(shí)現(xiàn)私有云桌面。利用私有云的彈性計(jì)算、安全可靠等天然優(yōu)勢(shì)來(lái)實(shí)現(xiàn)虛擬桌面服務(wù)器以及資源池的管理。用戶通過(guò)運(yùn)行一些低成本的客戶端軟件,通過(guò)認(rèn)證服務(wù)器的認(rèn)證獲取到操作虛擬機(jī)資源池的權(quán)限,客戶端得到授權(quán)后通過(guò)相應(yīng)的虛擬桌面?zhèn)鬏攨f(xié)議連接到虛擬資源池里的虛擬機(jī),這些虛擬機(jī)放置在學(xué)校的IDC數(shù)據(jù)中心,通過(guò)OpenStack進(jìn)行創(chuàng)建和管理。用戶可以像使用PC機(jī)一樣使用虛擬機(jī)。
3.2 系統(tǒng)部署
本文中OpenStack所有節(jié)點(diǎn)均使用Centos7.4,內(nèi)核版本為L(zhǎng)inux3.10,數(shù)據(jù)庫(kù)為MariaDBl0.1,OpenStack版本為Ocata。CPU使用AMDRyzen17003.OGHz8核16線程,內(nèi)存為16GBDDR43000Hz,存儲(chǔ)為RAID磁盤(pán)陣列。當(dāng)用戶通過(guò)運(yùn)行在終端客戶機(jī)上的客戶端程序(瀏覽器或?qū)S肁PP)輸入正確的用戶名和密碼信息向后臺(tái)服務(wù)器發(fā)出連接虛擬機(jī)的請(qǐng)求。請(qǐng)求信息發(fā)送到認(rèn)證服務(wù)器,經(jīng)過(guò)Keystone的認(rèn)證返回一個(gè)token,客戶端得到合法的token后由Nova-schedule選擇一臺(tái)部署了Nova-compute服務(wù)的節(jié)點(diǎn),分配該節(jié)點(diǎn)上的一臺(tái)虛擬機(jī)給相應(yīng)的用戶,客戶端軟件與虛擬機(jī)之間相連,相應(yīng)的虛擬桌面返回到用戶的客戶端上。
OpenStack是一種分布式系統(tǒng),它需要提供彈性水平擴(kuò)展、計(jì)算、控制分離的功能。OpenStack主要分為控制節(jié)點(diǎn)(Controller)和計(jì)算節(jié)點(diǎn)( Compute)兩種不同功能的節(jié)點(diǎn)。在實(shí)際應(yīng)用中,OpenStack會(huì)采用多節(jié)點(diǎn)的部署方式以實(shí)現(xiàn)云平臺(tái)的彈性。
(1) Controller負(fù)責(zé)整個(gè)系統(tǒng)的管理和控制,是控制整個(gè)平臺(tái)訪問(wèn)的中心節(jié)點(diǎn),所有的外部請(qǐng)求都必須通過(guò)Controller節(jié)點(diǎn)進(jìn)行處理。同時(shí)它需要對(duì)所有的Compute節(jié)點(diǎn)進(jìn)行管理和調(diào)度。而且一般Keystone(認(rèn)證節(jié)點(diǎn))也部署于Controller節(jié)點(diǎn)之上,KeyStone的認(rèn)證信息一般存儲(chǔ)在Maria DB數(shù)據(jù)庫(kù)中。習(xí)慣中我們也將Glance(鏡像服務(wù))部署在Controller節(jié)點(diǎn)之上,所以一旦Controller不能正常運(yùn)行時(shí),整個(gè)OpenStack云平臺(tái)都將癱瘓。在服務(wù)器集群中很有可能會(huì)發(fā)生由于硬件故障或人為操作的原因而造成單個(gè)或者多個(gè)節(jié)點(diǎn)故障,即便是不出現(xiàn)故障,服務(wù)器集群運(yùn)行一段時(shí)間后也是需要做物理節(jié)點(diǎn)或者軟件的維護(hù)升級(jí),這時(shí)也是需要暫時(shí)停止某些物理節(jié)點(diǎn)。因此一個(gè)可靠的服務(wù)器集群系統(tǒng)必須要做好解決單點(diǎn)故障的方案,良好的集群系統(tǒng)應(yīng)該能夠承受單過(guò)或多個(gè)物理節(jié)點(diǎn)產(chǎn)生故障。所以,為了提高系統(tǒng)的可用性,在Linux系統(tǒng)下我們有多種解決方法,如:HAproxy. keepalived、heartbeat、pacemaker等。
(2) Compute節(jié)點(diǎn)是虛擬機(jī)最終跑在的節(jié)點(diǎn),主要通過(guò)虛擬技術(shù)創(chuàng)建一些可用的VM。此節(jié)點(diǎn)需要虛擬CPU與內(nèi)存給虛擬機(jī)使用,因此部署Compute節(jié)點(diǎn)的物理主機(jī)的CPU需要盡可能的支持多核心多線程、內(nèi)存盡可能的大一些,這樣一個(gè)Compute節(jié)點(diǎn)才可以虛擬出較多的VM,并且保證VM的性能。單個(gè)虛擬機(jī)的資源配額以及Compute節(jié)點(diǎn)上虛擬機(jī)的數(shù)量都會(huì)影響用戶的使用體驗(yàn)。所以O(shè)penStack支持Compute節(jié)點(diǎn)的動(dòng)態(tài)水平擴(kuò)展,一般一個(gè)云平臺(tái)包含多個(gè)Compute節(jié)點(diǎn)。
(3) Glance節(jié)點(diǎn)通常是部署在Controller之上的,創(chuàng)建虛擬機(jī)是需要通過(guò)它選擇鏡像模板,并且在上次鏡像時(shí)可以指定鏡像的屬性、位置等相關(guān)權(quán)限。需要特別注意的是,OpenStack在實(shí)際中大多數(shù)情況下是為企業(yè)搭建公有云或私有云平臺(tái)使用的,而企業(yè)中的服務(wù)器絕大多數(shù)使用的都是Linux操作系統(tǒng),所以O(shè)penStack官方并沒(méi)有給出創(chuàng)建Windows系列虛擬機(jī)鏡像的方法。而在高校中,大部分用戶是習(xí)慣使用Windows的。OpenStack管理虛擬機(jī)需要virrio驅(qū)動(dòng),但是Windows默認(rèn)不支持virtio驅(qū)動(dòng),所以至少需要手動(dòng)添加兩個(gè)最基本的vlrtio驅(qū)動(dòng),一個(gè)是硬盤(pán)驅(qū)動(dòng)一個(gè)是網(wǎng)卡驅(qū)動(dòng),即:virtio-win-1.1.16.vfd和virrio-win-0.1-30.iso。并通過(guò)VNC手動(dòng)安裝Windows系統(tǒng)以加載virtio驅(qū)動(dòng)。
(4) Neuron節(jié)點(diǎn),提供各種網(wǎng)絡(luò)服務(wù)和網(wǎng)絡(luò)模型,并根據(jù)實(shí)際使用情況創(chuàng)建安全組規(guī)則。在使用Windows系列的虛擬機(jī)時(shí),需要開(kāi)放ICMP協(xié)議和RDP協(xié)議,以供網(wǎng)絡(luò)測(cè)試和遠(yuǎn)程桌面連接。
(5) Cinder節(jié)點(diǎn),通過(guò)邏輯卷的方式為虛擬機(jī)提供動(dòng)態(tài)的磁盤(pán)容量擴(kuò)展,并且可以實(shí)現(xiàn)網(wǎng)絡(luò)云盤(pán)的功能,方便用戶間數(shù)據(jù)共享。
3.3 驗(yàn)證測(cè)試
用戶可使用Web界面通過(guò)身份認(rèn)證后根據(jù)自身權(quán)限和需求申請(qǐng)?zhí)摂M機(jī),申請(qǐng)成功后通過(guò)瀏覽器或者專用客戶端軟件連接至虛擬機(jī)。連接成功之后即可像使用本地PC -樣使用虛擬機(jī)。
4 總結(jié)展望
本文根據(jù)目前高校PC機(jī)實(shí)際部署中出現(xiàn)的各種問(wèn)題,提出了基于開(kāi)源云平臺(tái)OpenStack實(shí)現(xiàn)私有云桌面系統(tǒng)的解決方案,實(shí)現(xiàn)了統(tǒng)一管理、信息安全、節(jié)能減排等目標(biāo)。根據(jù)統(tǒng)計(jì)數(shù)據(jù),一臺(tái)傳統(tǒng)的PC機(jī)配上顯示器后平均功耗在200w左右,而一臺(tái)云終端配上顯示器再加上服務(wù)器的均攤功耗平均在30w左右,就其節(jié)能效果而言是非常顯著的。
制約云主機(jī)性能的因素是多種多樣的,如CPU規(guī)格、內(nèi)存速率、網(wǎng)絡(luò)帶寬等,未來(lái)需要對(duì)不同的物理服務(wù)器設(shè)定合理的評(píng)價(jià)指標(biāo)和進(jìn)一步性能優(yōu)化,但是云計(jì)算因其獨(dú)特的優(yōu)勢(shì),其于桌面虛擬化技術(shù)的融合一定是未來(lái)研究和應(yīng)用的重要方向。
參考文獻(xiàn)
[1]鄧倩妮,陳全.云計(jì)算及其關(guān)鍵技術(shù)[J],計(jì)算機(jī)應(yīng)用,2009,29: 71-73.
[2]楊智楠,虛擬桌面技術(shù)應(yīng)用與研究[J].信息安全與技術(shù),2011,12: 75-77.
[3]云計(jì)算白皮書(shū)[R],工業(yè)和信息化部電信研究院,2012.