郭廣軍,賀江濤,黎 梅,謝 東
(1.婁底職業(yè)技術(shù)學(xué)院電子信息工程系,湖南婁底417000)
(2.湖南人文科技學(xué)院信息科學(xué)與工程系,湖南婁底417000)
隨著近年來多核系統(tǒng)、集群、網(wǎng)格和云計(jì)算的廣泛部署,虛擬化技術(shù)在商業(yè)應(yīng)用上的優(yōu)勢日益體現(xiàn)。不僅降低了IT部署的TCO(Total Cost of Ownership,總體擁有成本),且增強(qiáng)了系統(tǒng)安全性和可靠性,虛擬化技術(shù)應(yīng)用逐漸深入人們的工作與生活中。面向云計(jì)算的虛擬化應(yīng)用集群部署[1]主要研究采用虛擬化技術(shù)支撐構(gòu)建服務(wù)器集群以整合共享資源、統(tǒng)一管理調(diào)度軟硬件資源,為云應(yīng)用提供基礎(chǔ)平臺(tái),實(shí)現(xiàn)云計(jì)算的科學(xué)化、便捷化和系統(tǒng)化,提高系統(tǒng)的整體效率并降低管理成本。
虛擬化(Virtualization)[2]是指在虛擬的機(jī)器上而不是真實(shí)的計(jì)算機(jī)或計(jì)算機(jī)集群上運(yùn)行系統(tǒng)。虛擬化可分為平臺(tái)虛擬化、資源虛擬化和應(yīng)用程序虛擬化等類型。平臺(tái)虛擬化是針對計(jì)算機(jī)和操作系統(tǒng)的虛擬化,可進(jìn)一步分為全虛擬化、超虛擬化、硬件輔助虛擬化、部分虛擬化和操作系統(tǒng)級虛擬化,當(dāng)前常見的平臺(tái)虛擬化主機(jī)軟件VM-ware、Xen、KVM(Kernel-based Virtual Machine)等都同時(shí)提供了對全虛擬化和半虛擬化的支持;資源虛擬化是針對如內(nèi)存、存儲(chǔ)和網(wǎng)絡(luò)資源等特定系統(tǒng)資源的虛擬化;應(yīng)用程序虛擬化包括仿真、模擬和解釋技術(shù)等。
虛擬化技術(shù)可以簡化系統(tǒng)重新配置過程,并且可以實(shí)現(xiàn)對硬件資源的管理。它能把服務(wù)器的CPU、內(nèi)存等硬件資源虛擬成資源池,以虛擬的形式對系統(tǒng)提供底層運(yùn)行平臺(tái)。將一個(gè)精簡的層插入在計(jì)算機(jī)硬件或計(jì)算機(jī)操作系統(tǒng)上面,此層包含一個(gè)以透明和動(dòng)態(tài)方式分配硬件資源的控制器。在單臺(tái)物理機(jī)上同時(shí)運(yùn)行多個(gè)操作系統(tǒng)或者將多個(gè)服務(wù)器資源集合起來進(jìn)行集中分配,共享硬件資源。多個(gè)虛擬操作系統(tǒng)和應(yīng)用程序可以同時(shí)彼此隔離而安全運(yùn)行,在必要時(shí),每個(gè)操作系統(tǒng)和應(yīng)用程序都可以訪問其所需的資源。
集群(Cluster)[3]是由一組獨(dú)立的服務(wù)器構(gòu)成的一種松散耦合的計(jì)算節(jié)點(diǎn)集合,形成一個(gè)虛擬的服務(wù)器,為用戶提供統(tǒng)一的服務(wù)器資源視圖,實(shí)現(xiàn)資源共享,同時(shí)提供良好的負(fù)載均衡、故障遷移和恢復(fù)能力。集群系統(tǒng)中的每個(gè)計(jì)算節(jié)點(diǎn)的服務(wù)器進(jìn)程可以獨(dú)立運(yùn)行或彼此通信,對客戶來說就像是一個(gè)單一的主機(jī),以多服務(wù)器協(xié)同方式向用戶提供數(shù)據(jù)、系統(tǒng)資源和應(yīng)用程序。集群系統(tǒng)可通過在集群中動(dòng)態(tài)增加服務(wù)器的方式,以增加集群內(nèi)部服務(wù)器的處理能力,可通過系統(tǒng)級的冗余提供固有的高可靠性和可用性。集群系統(tǒng)的關(guān)鍵功能包括應(yīng)用故障接管、站點(diǎn)故障接管、服務(wù)器遷移和負(fù)載均衡等。
云計(jì)算[4](Cloud Computing)是由分布式計(jì)算、并行處理、網(wǎng)格計(jì)算、效用計(jì)算、網(wǎng)絡(luò)存儲(chǔ)、虛擬化等技術(shù)發(fā)展來的,是一種新興的計(jì)算模型結(jié)構(gòu)。其核心思想是將大量用網(wǎng)絡(luò)連接的計(jì)算資源統(tǒng)一管理和調(diào)度,構(gòu)成一個(gè)計(jì)算資源池向用戶提供按需服務(wù)。狹義的云計(jì)算是指通過虛擬化技術(shù)和分布式計(jì)算構(gòu)建的數(shù)據(jù)中心或超級計(jì)算機(jī)。以免費(fèi)或按需租用方式向技術(shù)開發(fā)者或者企業(yè)客戶提供數(shù)據(jù)存儲(chǔ)、分析以及科學(xué)計(jì)算等服務(wù)。廣義的云計(jì)算指廠商利用虛擬化技術(shù)構(gòu)建的虛擬集群,動(dòng)態(tài)地組織異構(gòu)計(jì)算資源,隔離具體硬件體系結(jié)構(gòu)和多樣化軟件系統(tǒng)平臺(tái)差異,靈活構(gòu)建滿足不同應(yīng)用需求的計(jì)算環(huán)境。向各種不同類型客戶提供在線軟件服務(wù)、硬件租借、數(shù)據(jù)存儲(chǔ)、計(jì)算分析等不同類型的服務(wù),提高計(jì)算資源的使用效率,實(shí)現(xiàn)彈性計(jì)算系統(tǒng)架構(gòu),高性能計(jì)算。
圖1 系統(tǒng)邏輯結(jié)構(gòu)
云計(jì)算系統(tǒng)架構(gòu)模型[5]可分為訪問層、應(yīng)用接口層和基礎(chǔ)管理層。⑴訪問層:包括個(gè)人空間服務(wù)、運(yùn)營空間租賃;企事業(yè)單位或SMB(Small Middle Business,中小企業(yè))實(shí)現(xiàn)數(shù)據(jù)備份、數(shù)據(jù)歸檔、集中存儲(chǔ)、遠(yuǎn)程共享;視頻監(jiān)控、IPTV等系統(tǒng)的集中存儲(chǔ),網(wǎng)站大容量在線存儲(chǔ)等。⑵應(yīng)用接口層:將云計(jì)算能力封裝成一套標(biāo)準(zhǔn)的接口服務(wù),包括廣域網(wǎng)或互聯(lián)網(wǎng)接入、用戶認(rèn)證、權(quán)限管理;公用API接口、應(yīng)用軟件、Web Service等。⑶基礎(chǔ)管理層:負(fù)責(zé)對云計(jì)算的資源進(jìn)行管理,采用合適的算法調(diào)度資源,提供高效的服務(wù),包括集群系統(tǒng)、分布式文件系統(tǒng)、并行計(jì)算等。
云計(jì)算是對虛擬化集群數(shù)據(jù)中心的進(jìn)一步封裝。云計(jì)算服務(wù)提供商以虛擬機(jī)的方式向用戶提供計(jì)算資源,用戶無須了解虛擬機(jī)背后實(shí)際的物理資源狀況。若某個(gè)云平臺(tái)僅對某個(gè)集團(tuán)內(nèi)部提供服務(wù),那么這個(gè)云平臺(tái)也可以被稱為“私有云”;若某個(gè)云平臺(tái)對公眾提供服務(wù),那么這個(gè)云平臺(tái)也可以被稱為“公有云”(如圖1)。
本系統(tǒng)主要技術(shù)是基于云計(jì)算實(shí)現(xiàn),參考云計(jì)算應(yīng)用模型,將本系統(tǒng)主要分為三層服務(wù):云基礎(chǔ)設(shè)施即服務(wù)(IaaS,Infrastructure as a Service)、云平臺(tái)即服務(wù)(PaaS,Platform as a Service)、云軟件即服務(wù)(SaaS,Software as a Service)。它們通過低層為高層提供服務(wù),并且通過接口與其它層進(jìn)行連接,減小了各層之間的耦合度,實(shí)現(xiàn)層內(nèi)高內(nèi)聚和層間低耦合。
基于虛擬化集群的數(shù)據(jù)中心體系結(jié)構(gòu),本系統(tǒng)采用VMware家族中數(shù)據(jù)中心虛擬化管理軟件VMware vCenter進(jìn)行管理。它通過劃分資源池(一個(gè)資源池通常是一個(gè)集群)的方式對硬件資源進(jìn)行重新組織,以虛擬基礎(chǔ)構(gòu)架(Virtual Infrastructure)的方式將計(jì)算資源暴露給用戶(如圖2)。
圖2 系統(tǒng)拓?fù)浣Y(jié)構(gòu)
基于VMware ESX Server的虛擬化存儲(chǔ)、虛擬化網(wǎng)絡(luò)、操作系統(tǒng)和用戶應(yīng)用程序的體系結(jié)構(gòu)(如圖3)。
圖3 VMware ESX Server虛擬化存儲(chǔ)、網(wǎng)絡(luò)與應(yīng)用體系結(jié)構(gòu)
VMware ESX系統(tǒng)主要功能模塊包括以下7個(gè)部分:
⑴ESX/ESXi虛擬主機(jī)模塊:物理服務(wù)器的虛擬化層。它將處理器、內(nèi)存、存儲(chǔ)器和資源虛擬化(交換機(jī))為多個(gè)虛擬機(jī),是vSphere服務(wù)器虛擬化基礎(chǔ)架構(gòu)組件。
⑵vCenter管理模塊:用于集中管理ESX/ESXi及其上的虛擬機(jī)??赏ㄟ^其配置ESX/ESXi Cluster,實(shí)現(xiàn)HA、DRS、vMotion等高可用性功能;通過擴(kuò)展vCenter相關(guān)插件,可實(shí)現(xiàn)更多高級功能。
⑶vSphere Client客戶登錄模塊:vSphere管理客戶端。用于直接連接ESX/ESXi主機(jī)實(shí)現(xiàn)基本管理任務(wù),或通過連接vCenter實(shí)現(xiàn)ESX/ESXi和VM的集中管理。
⑷VMware vMotion模塊:可實(shí)現(xiàn)一臺(tái)VM從一個(gè)物理ESX遷移到另一臺(tái)物理ESX上。
⑸VMware HA模塊:保證虛擬機(jī)的高可用性,實(shí)現(xiàn)雙機(jī)互備。
⑹VMware DRS:實(shí)現(xiàn)在一個(gè)大的資源池分配給每一臺(tái)VM的資源智能調(diào)優(yōu)。
⑺虛擬化模塊:主要用來分配和管理虛擬主機(jī)、虛擬網(wǎng)絡(luò)和虛擬存儲(chǔ)等。
VMware ESX是運(yùn)行在物理服務(wù)器上的虛擬層,這個(gè)虛擬層將物理服務(wù)器上的處理器、內(nèi)存、物理硬盤等資源進(jìn)行抽象和映射,從而能夠虛擬出多個(gè)虛擬機(jī)來。增加ESX主機(jī)主要步驟:
Step1 打開 vSphere Client,輸入 IP地址或NETBIOS名稱,并輸入在安裝vCenter Server的過程中設(shè)置的授權(quán)賬號,并點(diǎn)擊“登錄”。登錄后,在當(dāng)前的控制臺(tái)面板里,選定“主機(jī)和群集”,單擊右鍵后,選擇“新建數(shù)據(jù)中心”,命名為home。
Step2 在名稱為“home”數(shù)據(jù)中心,添加虛擬機(jī)。單擊右鍵,在彈出的列表中選擇“添加主機(jī)”。彈出“添加主機(jī)向?qū)А贝翱?,在“主機(jī)名”后面輸入ESX01,并在授權(quán)下面的對話框中填寫入相應(yīng)的賬戶信息。輸入root賬號和對應(yīng)的密碼。
Step3 設(shè)置的是虛擬機(jī)的位置,保留默認(rèn)配置。使用Telnet登錄ESX主機(jī),輸入su-root切換至根用戶,編輯“\etc\hosts”文件,添加vCenter和所有群集內(nèi)所有ESX主機(jī)的IP地址、域名和主機(jī)名,保存退出。
在使用物理機(jī)時(shí)電腦通過物理網(wǎng)卡連接到物理交換機(jī)上進(jìn)行聯(lián)網(wǎng),在虛擬機(jī)的一臺(tái)服務(wù)器上通常會(huì)有多塊網(wǎng)卡,虛擬機(jī)直接及虛擬機(jī)與物理機(jī)之間進(jìn)行聯(lián)網(wǎng)。接下來在兩個(gè)ESX主機(jī)上創(chuàng)建虛擬網(wǎng)絡(luò),此將為創(chuàng)建iSCSI存儲(chǔ)打下基礎(chǔ)。
Step1 在主機(jī)和群集、數(shù)據(jù)中心vCenter下,選擇exs01.vi.com,在右側(cè)的控制板中,選擇“配置”、“網(wǎng)絡(luò)”并點(diǎn)右上角的“屬性”,在彈出的對話框中,選擇“端口”,點(diǎn)擊“Add”。
Step2 在彈出的“添加網(wǎng)絡(luò)向?qū)А苯缑妫x擇VMKernel,建立的目的就是為了iSCSI存儲(chǔ)以及為vMotion測試做準(zhǔn)備,在“VMKernel—連接設(shè)置”界面,分別添入下列相應(yīng)的內(nèi)容,并且在“將此端口組用于vMotion”。點(diǎn)“完成”,會(huì)彈出警告,選擇“是”并輸入相應(yīng)的默認(rèn)網(wǎng)關(guān)的IP地址192.168.1.1(如圖4)。
圖4 vmotion Network界面
同樣的操作在主機(jī)esx02上進(jìn)行。在創(chuàng)建VMkernel時(shí),網(wǎng)絡(luò)標(biāo)簽要保持一致,均是for vmontion。若要?jiǎng)h除虛擬網(wǎng)絡(luò),則單擊右上角“移除”。
VMware vSphere的存儲(chǔ)時(shí)存儲(chǔ)虛擬機(jī)[6]的空間,根據(jù)存儲(chǔ)的種類不同可分為本地存儲(chǔ)和共享存儲(chǔ)。
目前有很多用戶會(huì)選擇使用共享存儲(chǔ)來承載虛擬機(jī)及其數(shù)據(jù),目前VMware vSphere支持的存儲(chǔ)有FC SAN、iSCSI SAN和NFSNAS三種。
由于FC SAN需要光纖支持,所以本系統(tǒng)采用ISCSI方式。接下向兩個(gè)ESX主機(jī)添加iSCSI存儲(chǔ),在主機(jī)esx01.vi.com上完成以下操作:
Step1 在“主機(jī)和群集、數(shù)據(jù)中心home”下,選擇 esx.vi.com,在右側(cè)的控制板中,選擇“配置”、“存儲(chǔ)適配器”,在右側(cè)面板,高亮“iSCSI軟件適配器”,并在詳細(xì)信息欄中點(diǎn)擊“屬性”。
Step2 在彈出的“iSCSI啟動(dòng)器”界面,選擇“常規(guī)”項(xiàng),在下欄內(nèi)發(fā)現(xiàn)“iSCSI屬性”后面都是空的,且“軟件啟動(dòng)器屬性”的狀態(tài)也是禁用的。這里需要開啟,點(diǎn)擊“配置”以啟用。
Step3 確定后,會(huì)回到起始界面。
其中虛擬機(jī)管理 可以直接通過ESX主機(jī)或通過vCenter Server系統(tǒng)管理虛擬機(jī)。如果直接通過ESX主機(jī)管理虛擬機(jī),則只能管理安裝在該主機(jī)上的那些虛擬機(jī)及其資源。也可以通過vCenter Server系統(tǒng)管理虛擬機(jī),則可以管理分布在許多ESX主機(jī)上的多臺(tái)虛擬機(jī)及其資源。
1.安裝虛擬機(jī)
用vSphere Client 5.0登錄vCenter Server服務(wù)器。右鍵點(diǎn)擊服務(wù)器樹型列表中的服務(wù)器,選擇“新建虛擬機(jī)”選項(xiàng)。然后按提示操作可以新建一個(gè)虛擬機(jī)并為其安裝操作系統(tǒng)。
2.從vCenter Server中移除虛擬機(jī)
移除虛擬機(jī)包括從清單中移除虛擬機(jī)和從數(shù)據(jù)存儲(chǔ)中移除虛擬機(jī)兩種方式。從清單中移除虛擬機(jī)將從主機(jī)和vCenter Server中取消對該虛擬機(jī)的注冊,此操作不會(huì)將其從數(shù)據(jù)存儲(chǔ)中刪除。虛擬機(jī)文件保留在同一存儲(chǔ)位置,并且可使用數(shù)據(jù)存儲(chǔ)瀏覽器重新注冊虛擬機(jī)。前提條件是必須關(guān)閉虛擬機(jī)。
1.備份功能
在ESX Server中,VMFS上的每個(gè)虛擬機(jī)都有一個(gè)屬于自己的目錄,這個(gè)目錄包含所有組成該虛擬機(jī)的文件。在表1中列出了組成一臺(tái)虛擬機(jī)所需的部分文件。
表1 虛擬機(jī)文件目錄清單
最簡單有效對虛擬機(jī)系統(tǒng)進(jìn)行備份辦法就是將每個(gè)虛擬機(jī)相對應(yīng)的文件拷貝下來。但是由于在運(yùn)行的狀態(tài)下的虛擬機(jī)并不是保持其硬盤配置文件的實(shí)時(shí)刷新,大量正在運(yùn)行數(shù)據(jù)存放在內(nèi)存之中,僅僅是保存硬盤配置文件并不能完全還原虛擬機(jī)故障前的狀態(tài)。因此,使用該備份方案進(jìn)行數(shù)據(jù)備份時(shí)虛擬機(jī)必須處于關(guān)機(jī)的狀態(tài)。
2.遷移功能
Storage vMotion功能是VM集群功能的重要組成部分。主要配置包括移動(dòng)虛擬機(jī)的主目錄、配置文件(vmx)、日志、交換文件(VSWP)、快照、磁盤或者邏輯硬盤(vmdk)、操作系統(tǒng)磁盤、數(shù)據(jù)盤以及所有跟該虛擬機(jī)相關(guān)的文件。
選中vCenter服務(wù)器清單中的虛擬服務(wù)器,右鍵點(diǎn)擊虛擬機(jī)選擇“遷移”選項(xiàng)開始遷移按提示選擇選項(xiàng)(此處選“更改方機(jī)和數(shù)據(jù)存儲(chǔ)”)。選擇遷移對象,選擇主機(jī)或存儲(chǔ),并進(jìn)行遷移(如圖5)。
圖5 遷移完成狀態(tài)
VMware HA群集通過ESX主機(jī)集合在一起協(xié)同工作,這些主機(jī)為虛擬機(jī)提供更高的可用級別。當(dāng)創(chuàng)建和使用新VMware HA群集的時(shí)候,選擇不同的選項(xiàng)會(huì)影響群集對主機(jī)或虛擬機(jī)的功能及故障的響應(yīng)方式[8]。創(chuàng)建HA集群的主要步驟如下:
Step1 選擇“主機(jī)和群集”選項(xiàng)卡。右鍵單擊左側(cè)目錄樹中的“數(shù)據(jù)中心”,然后單擊“新建群集”,單擊“完成”。
Step2 使用vSphere Client將主機(jī)添加到群集。右鍵單擊群集,然后單擊“編輯設(shè)置”。在“群集功能”頁上,選擇打開VMware HA。
圖6 勾選RDS\vMontion功能之前資源占有情況
Step3 根據(jù)需要為群集配置VMware HA設(shè)置,主機(jī)監(jiān)控狀態(tài)、虛擬機(jī)監(jiān)控、虛擬機(jī)選項(xiàng)、接入控制。
系統(tǒng)性能測試主要通過對集群資源的利用測試及外部請求測試兩方面來分別測試系統(tǒng)的處理性能和吞吐量。集群資源利用測試通過使用vSphere vCenter 5.0將集群中的虛擬機(jī)加入RDS\vMontion功能前后的性能測試(如圖6,圖7)。
圖7 勾選RDS\vMontion功能之后資源占有情況
云服務(wù)集群數(shù)據(jù)中心I/O測試指標(biāo)(如表2)。
表2 測試指標(biāo)
通過測試可以得出平均響應(yīng)時(shí)間與吞吐量之間的關(guān)系圖,由于系統(tǒng)在登錄進(jìn)入主頁時(shí)需要加載所有的文件(約1M)及權(quán)限處理,系統(tǒng)在登錄時(shí)的響應(yīng)速度并不快,而且隨著用戶數(shù)的增加其響應(yīng)速度越長。在吞吐量方面,可以發(fā)現(xiàn)隨著吞吐增加的響應(yīng)時(shí)間緩慢的減少(如圖8)。
圖8 云服務(wù)集群I/O測試性能指標(biāo)
基于VMware設(shè)置部署的虛擬化集群數(shù)據(jù)中心能有效整合多種應(yīng)用,提高服務(wù)器集群利用效率。提高了集群整體性能,合理分配資源;提高了服務(wù)器管理效率,避免了資源閑置;降低了運(yùn)行成本。實(shí)驗(yàn)表明虛擬化集群技術(shù)提高了系統(tǒng)I/O性能,增強(qiáng)了系統(tǒng)靈活性和可用性。
[1]曾龍海,張博鋒,張麗華,等.基于云計(jì)算平臺(tái)的虛擬集群構(gòu)建技術(shù)研究[J].微電子學(xué)與計(jì)算機(jī),2010,27(8):32-35.
[2]張宇.基于虛擬現(xiàn)實(shí)技術(shù)的研究性學(xué)習(xí)的設(shè)計(jì)與開發(fā)[D].武漢:華中師范大學(xué),2009.
[3]車靜光.微機(jī)集群組建、優(yōu)化和管理[M].北京:機(jī)械工業(yè)出版社,2004:12-15.
[4]王慶波,金涬,何樂,等.虛擬化與云計(jì)算[M].北京:電子工業(yè)出版社,2009:106-110.
[5]修長虹,梁建坤,董鴻曄.云計(jì)算技術(shù)綜述[J].網(wǎng)絡(luò)安全與技術(shù)應(yīng)用,2012,(3):9 -11.
[6]NAHUM NELSON.高性能存儲(chǔ)虛擬化架構(gòu)[J].軟件和信息服務(wù),2007(10):65-67.
[7]懷進(jìn)鵬,李沁,胡春明.基于虛擬機(jī)的虛擬計(jì)算環(huán)境研究與設(shè)計(jì)[J].軟件學(xué)報(bào),2007,18(8):2016 -2026.
[8]李吉勇.面向云計(jì)算環(huán)境的校園網(wǎng)設(shè)計(jì)方法研究[D].蘇州:蘇州大學(xué),2013.