概述
虛擬化是一種方法,本質上講是指從邏輯角度而不是物理角度來對資源進行配置,是從單一的邏輯角度來看待不同的物理資源的方法。以此出發,虛擬化是一種邏輯角度出發的資源配置技術,是物理實際的邏輯抽象。比如說,當前只有一台計算機,通過虛擬技術,在用戶看來,可以多台,每台都有其各自的CPU、記憶體、硬碟等物理資源。
對於用戶,虛擬化技術實現了軟體跟硬體分離,用戶不需要考慮後台的具體硬體實現,而只需在虛擬層環境上運行自己的系統和軟體。而這些系統和軟體在運行時,也似乎跟後台的物理平台無關。
伺服器虛擬化技術是將伺服器物理資源抽象成邏輯資源,讓一台伺服器變成幾台甚至上百台相互隔離的虛擬伺服器,我們不再受限於物理上的界限,而是讓CPU、記憶體、磁碟、I/0等硬體變成可以動態管理的“資源池”,從而提高資源的利用率,簡化系統管理,實現伺服器資源整合,讓IT對業務的變化更具適應力。
虛擬化的概念在20世紀60年代首次出現,利用它可以對屬於稀有而昂貴資源的大型機硬體進行分區。隨著時間的推移,微型計算機和PC可提供更有效、更經濟的方法來分配處理能力,因此到20世紀80年代,虛擬技術已不再廣泛使用。
但是到了20世紀90年代,研究人員開始探索如何利用虛擬化解決與廉價硬體激增相關的一些問題,例如,利用率不足、管理成本不斷攀升和易受攻擊等。現在,虛擬化技術處於時代前沿,可以幫助企業升級和管理他們在世界各地的IT基礎架構並確保其安全。虛擬化技術可以擴大硬體的容量,簡化軟體的重新配置過程。CPU的虛擬化技術可以單CPU模擬多CPU並行,允許一個平台同時運行多個作業系統,並且應用程式都可以在相互獨立的空間內運行而互不影響,從而顯著提高計算機的工作效率。
所有的IT設備,不管是PC、伺服器還是存儲,都有一個共同點:它們被設計用來完成一組特定的指令。這些指令組成一個指令集。對於虛擬技術而言,“虛擬”實際上就是指的虛擬這些指令集。虛擬機有許多不同的類型,但是它們有一個共同的主題就是模擬一個指令集的概念。每個虛擬機都有一個用戶可以訪問的指令集。虛擬機把這些虛擬指令“映射”到計算機的實際指令集。硬分區、軟分區、邏輯分區、Solaris Container、VMware、Ken、微軟Hyper—V這些虛擬技術都是運用的這個原理,只是虛擬指令集所處的層次位置不同。無論哪一種虛擬技術,都要求需要實施虛擬化的物理伺服器能夠良好地支持這些的虛擬化指令集。
虛擬化程度
全虛擬化方式
全虛擬化方式(Full Virtualization)是指虛擬管理層對底層硬體進行完全模擬,把底層硬體平台的API完整拷貝並提供給上層虛擬機,虛擬機中的客戶作業系統和套用無法感知真實機器的存在。全虛擬化方式的優點是兼容性好,可以在虛擬機上使用任何類型的作業系統,客戶作業系統無需修改,所有軟體都能在虛擬機中運行;但其缺點是性能開銷較大,以軟體來完全模擬底層硬體必然影響硬體調用的性能。
半虛擬化方式
半虛擬化方式(Para—virtualization)是指虛擬管理層對底層硬體進行部分模擬,把底層硬體平台的低級API用一套高級API來代替並提供給上層虛擬機,客戶作業系統需要支持底層硬體。這樣,虛擬機在運行時可減少用戶模式(User Mode)和特權模式(Supervisor Mode)之間的切換,從而降低運行時的開銷。例如,虛擬化軟體XEN就是使用了半虛擬化方式。
伺服器虛擬化的實現技術
實現虛擬化的技術主要有純軟體的虛擬化技術和硬體輔助虛擬化技術兩種。前者是當前主流的虛擬化技術,具有成熟的套用,硬體輔助虛擬化技術是今後的發展方向。
軟體虛擬化技術
傳統的計算機層次結構分為三層,即硬體層(Hardware Layer)、主機作業系統層(HostOS Layer)和套用層(Application Layer)。在這種結構中,主機作業系統統一控制、管理和分配整個計算機的硬體和軟體資源,這種結構的缺點主要在於未能充分發揮CPU的性能,利用率較低;還有就是一台計算機無法滿足同時運行多平台的套用需求,如果對於一種不同的應用程式採用一台獨立的物理伺服器,解決方案是增加伺服器的數量,這無疑將增加投資成本。
伺服器虛擬化技術採用純軟體的方法,就是在硬體層之上仍然安裝被稱為主機作業系統的系統,在其上部署虛擬機軟體(Virtual Machine Software,VMS),根據實際套用需求,VMS可以將物理計算機虛擬出多個分區,每一個分區稱為一個虛擬機(Virtual Machine,VM)。虛擬機具有完整的計算機套用環境,包括硬體層(由VMS提供)、驅動接口層(由VMS提供)、作業系統(Guest OS Layer)及套用層(Applications),都是建立在計算機的應
用環境上,屬於用戶級軟體。這樣用戶可以“隨心所欲”地安裝應用程式。實現這種虛擬化技術關鍵在於虛擬機軟體的可靠性。
對於一台獨立的物理伺服器,在這台伺服器上安裝作業系統,在作業系統安裝相應的應用程式,這種傳統架構是一台獨立的物理伺服器作為一種應用程式伺服器使用。伺服器虛擬化之後,一台獨立物理伺服器的資料被虛擬化為若干個獨立的主機,這些主機可以單獨安裝其他的作業系統,在作業系統之上又可以分別安裝各種不同的應用程式。
基於軟體虛擬化技術實現的虛擬機軟體主要有VMware的Workstation、Microsoft的Hvper-V、Parallels等,這些軟體在近年來得到了迅速的推廣和套用。
硬體虛擬化技術
硬體輔助虛擬化技術源於Intel公布的Vanderpool技術,即VT技術,該技術對於伺服器系統,包括處理器VT技術和IO虛擬分配技術進行了規範。Intel和AMD公司在最近幾年發布的CPU產品中都集成了VT技術,為進一步推動和發展虛擬化計算環境提供了硬體支持。
虛擬化技術的特點
由於虛擬化技術將物理伺服器進行了抽象,形成邏輯上的伺服器,因而有助於我們更好管理伺服器的計算資源,與傳統套用相比.有以下四大突出的特徵。
(1)分區:將物理伺服器進行虛擬化後。使得在一個物理伺服器上同時運行多作業系統,每個作業系統單獨運行在一台虛擬機,通過在多個虛機之間劃分系統資源以滿足使用需求,顯然,這將提高伺服器的利用效率。
(2)隔離:由於在硬體層實現了虛擬機之間的故障和安全隔離,因而因作業系統或套用軟體帶來的安全問題能夠更好地進行隔離,更好地保證安全性。而且通過高級資源調控還能動態地保證不同虛機的性能。
(3)封裝:運行的每個虛機都被封裝為檔案,這樣在移動和複製虛機時就如同移動和複製檔案一樣簡單,提高管理和部署的便利。
(4)硬體獨立性:虛擬機可以在異構硬體安裝和移動,基於虛擬化技術,可以在AMD或Intel架構的伺服器上進行不同作業系統的安裝和移動,可以更好地整合現有的異構硬體資源來提高使用效率和節約投資。
虛擬化技術套用
基於伺服器虛擬化技術所體現的特點,採用虛擬化技術帶來的好處非常明顯通過整合物理伺服器,提高的資源利用率相當充分,絕大多數套用的傳統部署利用率不超過10%,虛擬化後利用率往往超過70%;此外,虛擬化意味著降低成本,節能減排,成為構建綠色IT的必然選擇,因為數據中心每減少一台伺服器,可以降低約4 t的二氧化碳排放量,這相當於減少了1.5輛在路上行駛的汽車或多種植55棵樹木,對於環境的保護意義非凡;虛擬化實現上是對物理硬體進行抽象,形成池化的計算資源,使得用戶面對多台伺服器時的管理複雜度大大降低.將大幅節約在傳統架構上的管理成本。正是基於這些優勢,虛擬化技術得到廣泛認可和套用。現在不僅伺服器被廣泛進行虛擬化.由於雲計算的驅動,傳統的桌面PC也以新的虛擬化套用方式提供,存儲、網路也被虛擬化,以全池化的形式進行資源的分配和管理,通過虛擬化層的軟體重新對數據中心的建設和套用方式進行定義。