摘 ?要:隨著計算機(jī)網(wǎng)絡(luò)應(yīng)用的增多,其對企業(yè)中的數(shù)據(jù)中心提出了更高的要求。在數(shù)據(jù)中心服務(wù)器配置越來越高的工作環(huán)境中,其資源利用率卻沒有得到實(shí)質(zhì)性的提高。本文探討了虛擬化技術(shù)目前概要,如虛擬化技術(shù)的發(fā)展、虛擬技術(shù)的定義、虛擬技術(shù)的作用及分類等,進(jìn)一步探討了實(shí)現(xiàn)服務(wù)器虛擬化的核心技術(shù),如Hypervisor的定義及功能和分類;還探討了常用服務(wù)器虛擬化技術(shù)介紹、服務(wù)器虛擬化技術(shù)的選擇。
關(guān)鍵詞:虛擬化;服務(wù)器;虛擬機(jī);云計算
中圖分類號:TP391.9 ? ? 文獻(xiàn)標(biāo)識碼:A 文章編號:2096-4706(2019)12-0093-03
Abstract:With the increase of computer network applications,higher requirements are placed on data centers in enterprises. In the work environment where the data center server configuration is getting higher and higher,the resource utilization has not been substantially improved. This paper discusses the current outline of virtualization technology,such as the development of virtualization technology,the definition of virtualization technology,the role and classification of virtualization technology,and further explores the core technology of server virtualization,such as the definition and function and classification of Hypervisor,and also discusses the introduction of commonly used server virtualization technology and the choice of server virtualization technology.
Keywords:virtualization;server;virtual machine;cloud computing
0 ?引 ?言
現(xiàn)代信息技術(shù)的發(fā)展,極大地擴(kuò)展了計算機(jī)網(wǎng)絡(luò)的應(yīng)用范圍,不僅網(wǎng)上共享資源越來越多,網(wǎng)絡(luò)使用者人數(shù)也逐年遞增。服務(wù)器作為網(wǎng)絡(luò)資源的集散地,負(fù)責(zé)將各種信息服務(wù)通過網(wǎng)絡(luò)傳遞給客戶機(jī)。因此為了使客戶機(jī)能夠得到快速而穩(wěn)定的服務(wù),服務(wù)器的整體性能、日常管理和維護(hù)工作就顯得尤為重要。
企業(yè)數(shù)據(jù)中心在提供網(wǎng)絡(luò)服務(wù)過程中,經(jīng)常出現(xiàn)由于負(fù)載過重而導(dǎo)致服務(wù)器卡死故障,經(jīng)過故障分析,在判定故障為服務(wù)器性能瓶頸問題時,采用的解決方案大多是對現(xiàn)有服務(wù)器進(jìn)行硬件方面的升級換代。在選擇相關(guān)服務(wù)器硬件參數(shù)時大多是按照網(wǎng)絡(luò)訪問的峰值流量進(jìn)行配置的,但在實(shí)際使用過程中,服務(wù)器所提供的資源并沒有得到充分的利用。據(jù)相關(guān)數(shù)據(jù)統(tǒng)計,目前服務(wù)器的利用率平均在15%左右。那么我們?nèi)绾尾拍茉诓惶岣哂布杀镜幕A(chǔ)上,充分利用好現(xiàn)有的服務(wù)器資源,更好地為客戶端提供優(yōu)質(zhì)的服務(wù)呢?這就要用到服務(wù)器虛擬化技術(shù)。
1 ?虛擬化技術(shù)概述
1.1 ?虛擬化技術(shù)的發(fā)展
虛擬化概念最早出現(xiàn)在20世紀(jì)60年代,由于當(dāng)時大型機(jī)的硬件價格比較昂貴,研究虛擬化技術(shù)的初衷是為了對其進(jìn)行分區(qū)。隨著硬件成本的逐漸降低以及多用戶操作系統(tǒng)的出現(xiàn),計算機(jī)在進(jìn)行資源分配和處理時,有了更加經(jīng)濟(jì)有效的方法。到20世紀(jì)80年代,虛擬化技術(shù)應(yīng)用就沒有那么廣泛了。然而到了20世紀(jì)90年代,在計算機(jī)網(wǎng)絡(luò)應(yīng)用中出現(xiàn)了新的問題,如隨著計算機(jī)硬件的更新?lián)Q代而導(dǎo)致廉價硬件增多、高性能硬件資源空間利用率不高,服務(wù)器管理維護(hù)成本增加等問題。為了解決相關(guān)問題,研究人員開始對虛擬化技術(shù)進(jìn)行了全新的探索。如今,運(yùn)行在X86架構(gòu)上的虛擬化技術(shù),已成為企業(yè)應(yīng)用的主流。
1.2 ?虛擬技術(shù)的定義
在計算機(jī)中,虛擬化實(shí)質(zhì)上就是把磁盤、內(nèi)存、I/O等物理資源加以抽象,轉(zhuǎn)換為一種統(tǒng)一的邏輯資源并加以呈現(xiàn)的資源管理技術(shù)。它可以將系統(tǒng)中所有可以利用的資源以一個整體的形式提供給所有用戶共同使用,打破了以往實(shí)體結(jié)構(gòu)不可分割的障礙,也解除了地理位置不同、資源架設(shè)方式不同的限制。利用虛擬化技術(shù)在提高系統(tǒng)資源利用率的同時,可以為用戶提供更優(yōu)質(zhì)的服務(wù)。
1.3 ?虛擬技術(shù)的作用及分類
首先,虛擬化技術(shù)能夠?qū)α畠r的物理硬件進(jìn)行重組利用。其次,虛擬化技術(shù)能夠使物理層硬件對虛擬機(jī)客戶不可見,從而更大程序上發(fā)揮物理硬件的功能。再次,各類資源的邏輯抽象和統(tǒng)一表示也離不開虛擬化技術(shù)。
虛擬化技術(shù)通過對物理資源的邏輯化表示,實(shí)現(xiàn)了對資源的統(tǒng)一管理和調(diào)度。在實(shí)際應(yīng)用中能夠?qū)崿F(xiàn)資源的按需分配,使各類資源都得到充分的利用,解決了以往因缺乏資源而導(dǎo)致的網(wǎng)絡(luò)應(yīng)用服務(wù)性能下降的問題。運(yùn)用虛擬化技術(shù)可以實(shí)現(xiàn)虛擬機(jī)的創(chuàng)建和動態(tài)遷移,提供了系統(tǒng)的容錯性。當(dāng)網(wǎng)絡(luò)服務(wù)出現(xiàn)故障時,很容易就可以完成災(zāi)難恢復(fù)。虛擬化技術(shù)對云計算機(jī)的實(shí)現(xiàn)提供了很大的支持,它使得網(wǎng)絡(luò)上的計算、存儲、應(yīng)用和服務(wù)都以資源的形式得以呈現(xiàn),并可以根據(jù)用戶的需求進(jìn)行動態(tài)擴(kuò)展,因此虛擬化技術(shù)也被視為云計算中的核心技術(shù)。
虛擬化技術(shù)包括服務(wù)器虛擬化、網(wǎng)絡(luò)虛擬化和存儲虛擬化等。其中服務(wù)器虛擬化是我們最常用的一種虛擬化技術(shù)。
2 ?實(shí)現(xiàn)服務(wù)器虛擬化的核心技術(shù)
2.1 ?Hypervisor的定義及功能
Hypervisor也叫虛擬機(jī)監(jiān)視器,它是一個運(yùn)行在服務(wù)器物理硬件和傳統(tǒng)意義上操作系統(tǒng)之間的軟件層。利用Hypervisor可以實(shí)現(xiàn)多個操作系統(tǒng)共享一組物理硬件,即所有虛擬機(jī)都可以利用它來對物理機(jī)的硬件進(jìn)行訪問控制。在進(jìn)行服務(wù)器虛擬化時,利用Hypervisor來為虛擬機(jī)模擬分配各種硬件環(huán)境并加載所有的虛擬機(jī)操作系統(tǒng)。Hypervisor作為虛擬化技術(shù)的核心,其基本功能是非中斷地支持多工作負(fù)載遷移。
2.2 ?Hypervisor的分類
Hypervisor可以劃分為兩大類:類型一和類型二。
類型一虛擬機(jī)監(jiān)控程序運(yùn)行在裸機(jī)上,系統(tǒng)主機(jī)加電后就被加載運(yùn)行。被創(chuàng)建的虛擬機(jī)中運(yùn)行著不同的操作系統(tǒng)。這一類虛擬機(jī)監(jiān)控程序運(yùn)行在最底層的軟件層,需要完成原來由操作系統(tǒng)完成的如系統(tǒng)初始化、系統(tǒng)資源管理等任務(wù)。它會創(chuàng)建一個具有特殊功能的虛擬機(jī),由這臺虛擬機(jī)來運(yùn)行操作系統(tǒng)環(huán)境,用來滿足用戶的日常操作需求。類型一虛擬機(jī)的典型代表有:微軟的Hyper-V、商業(yè)軟件VMware ESX/ESXi和著名的開源虛擬化軟件Xen。
類型二虛擬機(jī)監(jiān)控程序在系統(tǒng)主機(jī)加電后首先運(yùn)行的是傳統(tǒng)意義上的操作系統(tǒng),即所謂的宿主機(jī)操作系統(tǒng)。其他虛擬機(jī)需要在此基礎(chǔ)上進(jìn)行創(chuàng)建。采用這一類型監(jiān)控程序的虛擬機(jī)的優(yōu)勢在于,可以充分利用現(xiàn)有操作系統(tǒng)來實(shí)現(xiàn)系統(tǒng)資源的管理,從而實(shí)現(xiàn)起來更為簡單。類型二虛擬機(jī)的典型代表有:著名的VirtualBox、VMware Workstation以及KVM。
3 ?常用服務(wù)器虛擬化技術(shù)介紹
服務(wù)器虛擬化是指將CPU、內(nèi)存、磁盤和I/O等物理資源抽象成邏輯資源,并在此基礎(chǔ)上創(chuàng)建多個虛擬機(jī)共享使用這些資源,從而達(dá)到整合服務(wù)器資源,提高資源利用率的目的。此外,它還有助于資源利用率的提升,根據(jù)IT業(yè)務(wù)的變化更好地做出調(diào)整。就目前來說,Citrix公司的Xen、VMare公司的ESX、Redhat的KVM以及微軟公司的Hyper-V等都是目前比較流行的服務(wù)器虛擬化軟件。
3.1 ?Xen
Xen最初源于劍橋大學(xué)的科研項(xiàng)目,它直接運(yùn)行在裸機(jī)上,因此屬于類型一虛擬機(jī)監(jiān)控器。Xen采用了一種定制的微內(nèi)核,把每個虛擬機(jī)都稱為Domain域,每個Xen平臺都有一個特殊的虛擬機(jī)Domain0,它運(yùn)行了資源調(diào)度和管理程序作為管理平臺,可以直接訪問硬件的只有Domain0,至于其他虛擬機(jī),則都必須借助虛擬I/O才能訪問硬件。
Xen支持全虛擬化和準(zhǔn)虛擬化的虛擬機(jī)運(yùn)行方式。全虛擬化是指借助軟件來完整地模擬客戶機(jī)的硬件環(huán)境,包括機(jī)器指令、I/O操作、中斷、內(nèi)存訪問等;準(zhǔn)虛擬化是指不用軟件來模擬完成硬件環(huán)境,而是利用一套適合軟件平臺的指令來簡化硬件訪問,在運(yùn)行準(zhǔn)虛擬化虛擬機(jī)時,需要更改客戶機(jī)系統(tǒng)。Xen的核心框架替換掉了復(fù)雜的硬件指令,讓客戶機(jī)自己知道工作在虛擬的狀態(tài),并配合虛擬化工作,避免了效率低下的純軟件環(huán)境模擬,因此Xen可以運(yùn)行在沒有硬件虛擬化的平臺上。
3.2 ?Vmware ESX
VMware ESX采用的是單內(nèi)核的結(jié)構(gòu),該結(jié)構(gòu)的特點(diǎn)是硬件的驅(qū)動程序都裝載在虛擬機(jī)監(jiān)控程序?qū)又?,被所有虛擬機(jī)所共用。這種單內(nèi)核的Hypervisor不需要虛擬機(jī)操作系統(tǒng)做任何的改變,可以提供很好的性能,但也有一些弊端。由于Hypervisor層對于被使用的虛擬機(jī)是不可見的,而驅(qū)動程序和一些第三方代碼需要運(yùn)行在Hypervisor層,會導(dǎo)致無法通過防病毒軟件對其實(shí)施監(jiān)控,因此安全性無法保證;另外其穩(wěn)定性和兼容性也存在一定的欠缺。一旦某個驅(qū)動程序中存在bug,所有的虛擬機(jī)都將受到影響。由于Hypervisor層支持所有的硬件驅(qū)動程序,導(dǎo)致該層體積較大。因此單內(nèi)核的Hypervisor還有另一個別稱——胖Hypervisor。
3.3 ?Hyper-V
Hyper-V采用的是微內(nèi)核結(jié)構(gòu),里面沒有裝載驅(qū)動程序,被稱為瘦Hypervisor。而且由于微內(nèi)核體積較小,所以大大提升了它的運(yùn)行效率。除此之外,由于驅(qū)動程序是跑在每一個分區(qū)里的,因此通過Hypervisor,硬件不僅可以被每一個分區(qū)內(nèi)的虛擬機(jī)直接訪問,而且還會使每一個分區(qū)都相互獨(dú)立,這樣就擁有更好的安全性和穩(wěn)定性。
通常,大多數(shù)服務(wù)器虛擬化技術(shù)的硬件訪問的兼容性問題大多是通過采用硬件模擬方式來解決的,這樣的解決方案會造成極大的開銷和性能損失。微軟的Hyper-V并沒有采用硬件模擬的方式,而是采用了Enlightenment技術(shù)來實(shí)現(xiàn)虛擬機(jī)操作系統(tǒng)與Hypervisor的通信。它通過對虛擬機(jī)操作系統(tǒng)的啟蒙,讓其記住自己的虛擬機(jī)身份。啟蒙后的操作系統(tǒng)通過虛擬化服務(wù)提供者(VSP)/虛擬化服務(wù)消費(fèi)者(VSC)這套組件來實(shí)現(xiàn)對硬件的訪問。當(dāng)某虛擬機(jī)中的操作系統(tǒng)需要訪問硬件時,由虛擬機(jī)中的VSC通過VMBUS將request發(fā)給物理機(jī)中的VSP,實(shí)際的硬件服務(wù)由VSP提供。相對于傳統(tǒng)使用硬件模擬的方法,采用這種使用硬件的方式,可以大大提高訪問性能。
3.4 ?KVM
KVM英文全稱為Kernel-based Virtual Machine,其中Kernel指的是Linux內(nèi)核。KVM從Linux2.6.20版本開始與Linux打包發(fā)布,可以看出Linux社區(qū)對KVM的認(rèn)同和支持,KVM必須運(yùn)行在硬件虛擬化特性的物理機(jī)上,比如說Intel VT或AMD-V的虛擬機(jī),因?yàn)镵VM利用了硬件特性輔助來提高虛擬機(jī)訪問物理硬件的性能,在形式上KVM是二型虛擬機(jī)監(jiān)控器,KVM是和Linux操作系統(tǒng)打包發(fā)布的,并未獨(dú)立地在裸機(jī)上工作,因此虛擬機(jī)需要通過硬件模擬器模擬出來的環(huán)境與物理硬件通信。在KVM工作模式中,KVM是與QEMU綁定發(fā)布的。其中KVM負(fù)責(zé)與硬件通信的部分,工作在Linux內(nèi)核空間;QEMU負(fù)責(zé)把虛擬機(jī)的硬件環(huán)境模擬出來,工作在Linux用戶空間。KVM最初只支持全虛擬化一種模式,利用QEMU虛擬模擬器來實(shí)現(xiàn)硬件環(huán)境的模擬。這樣的優(yōu)點(diǎn)在于虛擬機(jī)的操作系統(tǒng)完全不需要因?yàn)樽鳛樘摂M機(jī)在工作而做任何的改變;缺點(diǎn)在于純粹的軟件模擬速度很慢。因此為了改善性能,KVM采取了依賴硬件性能來實(shí)現(xiàn)虛擬化的方法,要求虛擬機(jī)一定要工作在具有虛擬化特性的硬件上,如支持Intel VT或AMD-V功能的硬件。
KVM在發(fā)展了一個階段后,也實(shí)現(xiàn)了支持準(zhǔn)虛擬化的驅(qū)動,以此來提升I/O的性能,這種驅(qū)動稱為Virtio驅(qū)動。KVM在與物理硬件通信時,充分利用了Linux內(nèi)核,虛擬機(jī)作為Linux內(nèi)存進(jìn)程存在著,可以利用很多Linux的原生功能,如進(jìn)程調(diào)度模塊、內(nèi)存管理模塊和電源管理等,對虛擬機(jī)的管理提供了很大的便利條件??梢哉fKVM把Linux操作系統(tǒng)變成了一個大的虛擬機(jī)監(jiān)控器,用來支持虛擬環(huán)境下所要求的強(qiáng)大而穩(wěn)定的資源管理功能。
4 ?服務(wù)器虛擬化技術(shù)的選擇
通過前面的介紹大體了解了各服務(wù)器虛擬化軟件的工作原理及特點(diǎn),那么企業(yè)數(shù)據(jù)中心在具體應(yīng)用時,應(yīng)該選擇哪一種虛擬化技術(shù)進(jìn)行部署呢?此時我們還需要了各虛擬化軟件除了功能之外的一些特性。
從是否需要付費(fèi)的角度來看,KVM和Xen是開源且免費(fèi)的虛擬化軟件,VMware ESX則是需要付費(fèi)的虛擬化軟件,而Hyper-V是微軟Windows Server 2008 R2自帶的虛擬化組件,如果你購買了Windows Server的授權(quán),則Hyper-V就可以免費(fèi)使用。
如果用戶使用Hyper-V或VMware ESX虛擬Windows,虛擬化軟件和虛擬機(jī)所作用的操作系統(tǒng)都需支付許可費(fèi)用。如果用戶使用Hyper-V或VMware ESX(VMware ESXi是免費(fèi)的)虛擬Linux,則只支付虛擬化軟件本身的許可費(fèi)用即可,虛擬機(jī)操作系統(tǒng)可用Linux來節(jié)省成本。
如果用戶使用KVM或Xen虛擬Windows,僅需要支付虛擬機(jī)操作系統(tǒng)的許可費(fèi)用。而如果用戶使用KVM或Xen虛擬Linux,那么虛擬化軟件和虛擬機(jī)操作系統(tǒng)不需要支付任何費(fèi)用。
從虛擬機(jī)中運(yùn)行操作系統(tǒng)的性能角度來看,如果購買廠商的許可,那么虛擬Windows時,利用前面提到的任何一款軟件都能使系統(tǒng)資源利用率達(dá)到80%以上。此時還是建議優(yōu)先選擇Hyper-V,因?yàn)樗俏④浌咀约旱漠a(chǎn)品,與其他軟件相比是絕對有優(yōu)勢的。在虛擬Linux時,建議優(yōu)先考慮Xen。該軟件可以直接使用宿主系統(tǒng)的資源來支持虛擬機(jī)的操作,減少虛擬化調(diào)度操作,可實(shí)現(xiàn)極高的性能,但它的缺點(diǎn)在于操作比較復(fù)雜、維護(hù)成本高。其次推薦使用KVM,因?yàn)镵VM本身就是集成在Linux內(nèi)核中,Linux能夠支持KVM的Virtio技術(shù),很容易利用Linux系統(tǒng)中的功能來實(shí)現(xiàn)較高的系統(tǒng)性能。在虛擬Linux時,不建議使用Hyper-V,因?yàn)椴豢杉嫒菪蕴鄻O有可能大幅降低虛擬化后的Linux系統(tǒng)性能。
如果用戶在選購虛擬化軟件產(chǎn)品時,不考慮后續(xù)廠商的服務(wù)與支持,而Hyper-V和Vmware ESX兩種只有取得廠商授權(quán)才能允許使用,因此就不在考慮范圍之內(nèi)了。在備選的KVM和Xen中,如果選用KVM,用戶可從Linux社區(qū)中免費(fèi)獲取許多針對Windows系統(tǒng)優(yōu)化過的軟件,從而使系統(tǒng)發(fā)揮出高效的性能(與用Hyper-V虛擬出來Windows系統(tǒng)性能不分伯仲)。如果選用Xen,用戶很難獲取到相關(guān)的軟件支持。綜上所述,企業(yè)數(shù)據(jù)中心在做服務(wù)器虛擬化時,需要從實(shí)際工作環(huán)境中需要的系統(tǒng)功能、軟件授權(quán)、現(xiàn)有資源和管理成本等多方面進(jìn)行綜合考慮,最終選擇一種適宜的服務(wù)器虛擬技術(shù)來完成最終的部署。
參考文獻(xiàn):
[1] 邢靜宇.KVM虛擬化技術(shù)基礎(chǔ)與實(shí)踐 [M].西安:西安電子科技大學(xué)出版社,2015.
[2] 沈建國,陳永.OpenStack云計算機(jī)基礎(chǔ)架構(gòu)平臺技術(shù)與應(yīng)用 [M].北京:人民郵電出版社,2017.
[3] 王中剛,薛志紅,項(xiàng)帥求.服務(wù)器虛擬化技術(shù)與應(yīng)用 [M].北京:人民郵電出版社,2018.
作者簡介:喬壽合(1979-),男,漢族,山東煙臺人,副教授,碩士,研究方向:計算機(jī)網(wǎng)絡(luò)技術(shù)。