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