虛擬化與虛擬技術(shù)應(yīng)用
引言
虛擬機(jī)的概念產(chǎn)生在20世紀(jì)60年代,它最早是由IBM提出用來交互式訪問主機(jī)計(jì)算機(jī)。每個(gè)虛擬機(jī)(VM)是一個(gè)物理機(jī)的虛擬實(shí)例,讓用戶有直接訪問物理機(jī)的錯(cuò)覺。用戶通過同一個(gè)硬件平臺(tái)分享上面的資源。每一個(gè)VM是一個(gè)底層系統(tǒng)完全保護(hù)和隔離的副本。用戶可以在上面執(zhí)行,開發(fā)和測(cè)試應(yīng)用程序,而不必?fù)?dān)心因?yàn)閷?dǎo)致系統(tǒng)當(dāng)機(jī)而影響其他正在使用同一臺(tái)物理機(jī)的用戶。虛擬化的出現(xiàn),可以降低硬件購(gòu)置成本和提高生產(chǎn)力,讓更多的用戶可以同時(shí)在同一個(gè)平臺(tái)上并行工作。隨著硬件價(jià)格的降低和具有多線程處理能力的操作系統(tǒng)的出現(xiàn),虛擬機(jī)一度在20世紀(jì)70年代和20世紀(jì)80年代幾乎消失。進(jìn)入20世紀(jì)90年代以來,隨著對(duì)電腦硬件和操作系統(tǒng)需求的日益增加,虛擬化的概念被越來越重視。事實(shí)上,在傳統(tǒng)的電腦技術(shù)中,虛擬技術(shù)已經(jīng)被廣泛的應(yīng)用。虛擬內(nèi)存技術(shù)在現(xiàn)代操作系統(tǒng)中已經(jīng)不再陌生,它允許一個(gè)程序調(diào)用遠(yuǎn)遠(yuǎn)多于其本機(jī)物理內(nèi)存的容量。同時(shí)虛擬內(nèi)存也實(shí)現(xiàn)了讓上百個(gè)進(jìn)程同時(shí)訪問同一個(gè)物理內(nèi)存。同樣道理,CPU的多任務(wù)處理能力也可以理解為一個(gè)CPU被虛擬為多個(gè)CPU從而可以分配運(yùn)行多個(gè)進(jìn)程,或者在另一種模式設(shè)置下,多個(gè)具有普通時(shí)鐘速度的CPU可以被虛擬的整合成一個(gè)CPU從而具體有很高的時(shí)鐘速度。后者在現(xiàn)實(shí)生活中更為常用。
1虛擬化
虛擬化(Virtualization),顧名思義:虛幻的、虛構(gòu)的,不是真實(shí)存在的。在電腦界,虛擬化泛指創(chuàng)建一個(gè)虛擬版本的設(shè)備或資源,例如服務(wù)器、存儲(chǔ)裝置、網(wǎng)絡(luò)或者甚至是一個(gè)框架被分割成一個(gè)或多個(gè)執(zhí)行環(huán)境資源的操作系統(tǒng)。即使像硬盤分區(qū)這樣一個(gè)簡(jiǎn)單的操作也可以被認(rèn)為是虛擬化,因?yàn)槟憧梢园岩粋€(gè)物理硬盤分割成為兩個(gè)分區(qū)后成為兩個(gè)獨(dú)立的硬盤存儲(chǔ)器。用戶能夠通過應(yīng)用軟件和設(shè)備與所建立的虛擬資源進(jìn)行互動(dòng),就好像它是一個(gè)真正的單一存在的邏輯資源。
2虛擬技術(shù)的實(shí)現(xiàn)
那么虛擬技術(shù)是通過什么方法實(shí)現(xiàn)的呢?虛擬技術(shù)大致分為常見的五個(gè)層面:指令集架構(gòu)層實(shí)現(xiàn)虛擬化(VirtualizationattheInstructionSetArchitectureLevel);硬件抽象層實(shí)現(xiàn)虛擬化(VirtualizationattheHardwareAbstractionLevel);操作系統(tǒng)層的虛擬化(VirtualizationattheOSLevel);編譯語言層虛擬化(VirtualizationattheProgrammingLevel)和系統(tǒng)庫層的虛擬化(VirtualizationattheLibraryLevel)。其中,又由硬件抽象層實(shí)現(xiàn)虛擬化技術(shù)是最為普遍的應(yīng)用,例如常見的虛擬機(jī)(VM)。其實(shí)現(xiàn)架構(gòu)目前大致分為托管(Hosted)和裸機(jī)(Bare-Metal)兩種架構(gòu)方式。一般在托管架構(gòu)下,一個(gè)基本的操作系統(tǒng)會(huì)首先被安裝到主機(jī)中,被稱為“主操作系統(tǒng)(HostOperatingSystem)”,然后再將VMM(VirtualMachineMonitor)安裝到主操作系統(tǒng)上,并允許用戶在VMM中安裝“來賓操作系統(tǒng)(GuestOperatingSystem)”,這種主賓模式稱為Hosted(托管)。在這個(gè)虛擬化架構(gòu)中,每個(gè)虛擬機(jī)的操作系統(tǒng)通常只具有訪問1/0(輸入輸出)設(shè)備的有限子集,主操作系統(tǒng)保留對(duì)所安裝主機(jī)中物理I/O設(shè)備的所有權(quán)。來賓操作系統(tǒng)需要通過VMM,在可能的情況下(由于VMM對(duì)很多非通用的I/O沒有記錄,例如PCI數(shù)據(jù)采集卡等,所以在虛擬過程中不會(huì)將這些設(shè)備提供給虛擬的環(huán)境,只有對(duì)例如網(wǎng)卡,聲卡,光驅(qū)這樣的通用設(shè)備進(jìn)行模擬),通過對(duì)物理硬件的模擬來進(jìn)行訪問。到目前為止,大部分的軟件虛擬方案支持直接使用USB設(shè)備的功能。允許用戶從虛擬操作系統(tǒng)內(nèi)直接訪問USB設(shè)備,提供超出以上所提到的I/O模擬方式。例如,用戶可以從虛擬操作系統(tǒng)中訪問連接到電腦的USB打印機(jī)。在實(shí)際實(shí)現(xiàn)這個(gè)過程當(dāng)中,需要通過多個(gè)軟件組件合作才能完成對(duì)I/O的訪問。例如VMware的VMwareWorkstation將虛擬操作系統(tǒng)的I/O請(qǐng)求傳輸給一個(gè)底層VMM組件,通過驅(qū)動(dòng)程序,傳輸給一個(gè)名為VMApp的用戶級(jí)別的組件,再由這個(gè)組件將請(qǐng)求傳送給主操作系統(tǒng)。值得強(qiáng)調(diào)的一點(diǎn)是,在這個(gè)架構(gòu)中,無論有多少個(gè)虛擬系統(tǒng),所有對(duì)I/O的請(qǐng)求都必須通過主操作系統(tǒng)。這也就導(dǎo)致了這種虛擬架構(gòu)雖然方便配置和安裝,但是由于對(duì)主操作系統(tǒng)請(qǐng)求的增加,虛擬系統(tǒng)越多,主系統(tǒng)的性能及穩(wěn)定性就會(huì)大幅度下降。而裸機(jī)的架構(gòu)則通過直接安裝在系統(tǒng)硬件上虛擬機(jī)管理程序(Hypervisor)與系統(tǒng)硬件進(jìn)行訪問,而不是依賴于主操作系統(tǒng)。這個(gè)方案為虛擬系統(tǒng)提供了多種I/O訪問的選項(xiàng)。虛擬系統(tǒng)之間則通過虛擬機(jī)管理程序中所包含的底層驅(qū)動(dòng)程序來共享同一個(gè)I/O資源,例如網(wǎng)卡,硬盤等。而裸機(jī)虛擬架構(gòu)的另一個(gè)特點(diǎn)就是通過分配指定的I/O資源供所需要的虛擬系統(tǒng)獨(dú)享,此虛擬系統(tǒng)即可通過指定I/O設(shè)備的原生驅(qū)動(dòng)直接訪問,這類方法的虛擬機(jī)管理程序?qū)⒆钚』貐⑴c到其中,從而更好的提升訪問速度。
3虛擬技術(shù)的應(yīng)用
虛擬化技術(shù)應(yīng)用到實(shí)踐中比較常見的有:服務(wù)器整合(ServerConsolidation)-將一些工作能力較低的服務(wù)器整合,從而節(jié)省基礎(chǔ)設(shè)施投資和管理精力以及充分利用硬件資源;應(yīng)用程序整合(ApplicationConsolidation)-一些傳統(tǒng)的程序可能需要獨(dú)自享用一個(gè)硬件環(huán)境或系統(tǒng)環(huán)境,現(xiàn)在通過虛擬化,可以在一些新的設(shè)備上通過虛擬使這類程序運(yùn)行在單獨(dú)的環(huán)境里;沙盒技術(shù)(Sandboxing)-虛擬機(jī)可以通過提供一個(gè)獨(dú)立的,封閉的環(huán)境來運(yùn)行一些不被信任的軟件,也可以認(rèn)為虛擬技術(shù)可以幫助建立一個(gè)安全可靠的計(jì)算機(jī)平臺(tái);多執(zhí)行環(huán)境(MultipleExecutionEnvironment)-虛擬技術(shù)可以用來在最大可能條件下創(chuàng)建多個(gè)可執(zhí)行環(huán)境,并在同時(shí)增加QoS(服務(wù)質(zhì)量)以確保每個(gè)環(huán)境的資源量;虛擬硬件(VirtualHardware)-可以虛擬一個(gè)在物理機(jī)中不存在的硬件,例如虛擬SCSI驅(qū)動(dòng)器,虛擬網(wǎng)卡,虛擬網(wǎng)絡(luò)交換機(jī)或集線器等等;多個(gè)并行操作系統(tǒng)(MultipleSimultaneousOS)-可以在同一個(gè)設(shè)備上同時(shí)運(yùn)行多個(gè)操作系統(tǒng),且運(yùn)行不同的應(yīng)用程序;調(diào)試(Debug)-允許用戶在一個(gè)虛擬的電腦環(huán)境內(nèi)通過享有完全軟件調(diào)度權(quán)來調(diào)試復(fù)雜的操作系統(tǒng)或是驅(qū)動(dòng)軟件;軟件合并(SoftwareMigration)-簡(jiǎn)化的軟件合并的過程并且方便軟件轉(zhuǎn)移的過程;測(cè)試(Testin/QA)-通過模擬各種現(xiàn)實(shí)中很難出現(xiàn)場(chǎng)景來確保軟件的質(zhì)量并簡(jiǎn)化測(cè)試過程。
這些虛擬技術(shù)的應(yīng)用已經(jīng)慢慢的滲透到很多企業(yè)的日常應(yīng)用當(dāng)中。一個(gè)傳統(tǒng)的企業(yè)在部署IT方案的時(shí)候,會(huì)將所有的企業(yè)應(yīng)用程序直接運(yùn)行在專有服務(wù)器硬件上,且大部分時(shí)間將由特殊需要的應(yīng)用程序分散到獨(dú)立的服務(wù)器上,使數(shù)據(jù)中心的服務(wù)器運(yùn)行最小的工作負(fù)載。如果在日后公司有需求使用新的應(yīng)用程序,那么IT部門將不得不制定新硬件計(jì)劃,購(gòu)置或更新硬件并部署到網(wǎng)絡(luò)中。而現(xiàn)在,只需要根據(jù)需要?jiǎng)澐忠粋€(gè)新的虛擬服務(wù)器或在原有虛擬服務(wù)器的基礎(chǔ)上劃分更多硬件資源就可實(shí)現(xiàn)更新計(jì)劃,整個(gè)操作很多時(shí)間只需要幾個(gè)鼠標(biāo)點(diǎn)擊即可完成。甚至于現(xiàn)在很多基于云端的企業(yè)方案,在后臺(tái)實(shí)際上都是通過虛擬的方式實(shí)現(xiàn),企業(yè)只需要根據(jù)隨時(shí)實(shí)際的需要,向供應(yīng)商提供所需要服務(wù)的硬件需求,無需等待漫長(zhǎng)的采購(gòu)過程,無需等待設(shè)備的安裝過程,馬上就能投入使用(當(dāng)然對(duì)虛擬設(shè)備的軟件配置還是需要企業(yè)按照自己的需求搭建軟件環(huán)境)。隨著各個(gè)企業(yè)業(yè)務(wù)的飛速發(fā)展,數(shù)據(jù)中心的數(shù)據(jù)也在與日俱增,傳統(tǒng)存儲(chǔ)管理模式已經(jīng)不足以跟上更新的速度,且管理員需要掌握各種管理工具才能在復(fù)雜結(jié)構(gòu)的存儲(chǔ)環(huán)境進(jìn)行管理。存儲(chǔ)虛擬化可以統(tǒng)一的管理數(shù)據(jù)中心的數(shù)據(jù),將所有可用資源虛擬為一個(gè)龐大資源,管理員可以根據(jù)需要?jiǎng)討B(tài)的分配資源,并且整合結(jié)構(gòu)相異的存儲(chǔ)壞境以達(dá)到更高的存儲(chǔ)利用率和降低企業(yè)成本,并且虛擬技術(shù)還提供快照,磁盤鏡像,數(shù)據(jù)保護(hù)等特有功能。
4結(jié)語
實(shí)際上,由于虛擬技術(shù)的特殊內(nèi)涵,它與業(yè)界流行的云技術(shù)密切相關(guān),企業(yè)向云生態(tài)發(fā)展,實(shí)際上就是向虛擬化發(fā)展。通過硬件節(jié)省成本往往得不償失,企業(yè)更關(guān)心如何整合各種資源,以加快應(yīng)用部署速度,通過簡(jiǎn)化IT管理,為企業(yè)創(chuàng)造更有利的價(jià)值。因此虛擬技術(shù)必將成為未來的發(fā)展趨勢(shì)。