虛擬化 (Virtualization) 的含義很普遍。將任何一種形式的資源抽象成另外一種形式的技術都是虛擬化。虛擬化是資源的邏輯表示,其不受物理限制的約束。
安全
幾個和虛擬化相關的常見概念:服務器
虛擬機:虛擬機 VM (Virtual Machine)是指使用虛擬化技術,經過軟件模擬完整的計算機硬件系統功能,構造出的完整虛擬計算機系統。該虛機能夠獨立運行在個徹底隔離的環境中,像使用本地計算機-樣安全可靠。網絡
Hypervisor:即虛擬機監視器VMM( Virtual Machine Monitor),是一種運行在基礎物理服務器和操做系統之間的中間軟件層,可容許多個操做系統和應用共享硬件。 Hypervisor是種在虛擬環境中的"元"操做系統。它能夠訪冋服務器上包括磁盤和內存在內的全部物理設備。 Hypervisor是全部虛擬化技術的核心。 Hypervisor不但協調着這些硬件資源的訪問,也同時在各個虛擬機之間施加防禦。當服務器啓動並執行Hypervisor時,它會加載全部虛擬機客戶端的操做系統 ,同時會分配給每一臺虛擬機適量的內存、CPU、網絡和硬盤。架構
Xen Hypervisor:是一個開源的採用半虛擬化技術的VMM,負責在各虛擬機之間進行CPU調度和內存分配。Xen Hypervisor抽象出硬件層,並控制虛擬機的執行,但不會處理網絡、存儲設備、視頻以及其餘I/O(輸入/輸出)。因爲Xen Hypervisor能夠在單個計算機上運行多個修改過的操做系統,且最上層的用戶應用無需作特殊修改,所以Xen Hypervisor無需特殊硬件支持,就能達到高性能的虛擬化。併發
宿主操做系統:宿主操做系統(Host os)指被虛擬的物理機的操做系統。負載均衡
客戶操做系統:客戶操做系統(Guest os)指運行在虛擬機上的操做系統。運維
Domain0:指運行Host os的虛擬機。Domain0是其餘虛擬主機的管理者和控制者,能夠構建其餘更多的 Domain,並管理虛擬設備。它還能執行管理任務,好比虛擬機的休眠喚醒和遷移其餘虛擬機。性能
Domain U:指除 Domain 0以外的虛擬機。ui
分區:分區意味看虛擬化層爲多個虛擬機劃分服務器資源的能力;每一個虛擬機能夠同時運行個單獨的操做系統(相同或不一樣的操做系統),使您夠在臺服務器上運行多個應用程序;每一個操做系統只能看到虛擬化層爲其提供的」虛擬硬件」(虛擬網卡、CPU、內存等),以使它認爲運行在本身的專用服務器上。雲計算
隔離:虛擬機是互相隔離的。
一個虛擬機的崩潰或故障(例如,操做系統故障應用程序崩潰、驅動程序故障,等等)不會影響同一服務器上的其它虛擬機。
—個虛擬機中的病毒、蠕蟲等與其它虛擬機相隔離,就像每一個虛擬機都位於單獨的物理機器上同樣。
能夠進行資源控制以提供性能隔離:您能夠爲每一個虛擬機指定最小和最大資源使用量,以確保某個虛擬機不會佔用全部的資源而使得同一系統中的其餘虛擬機無資源可用。
能夠在單一機器上同時運行多個負載/應用程序/操做系統,而不會出現咱們剛纔討論傳統x86服務器體系結構的侷限性時所提到的那些問題(應用程序衝突、DLL衝突等)。
封裝:封裝意味看將整個虛擬機(硬件配置、BOS配置、內存狀態、磁盤狀態、CPU狀態)儲存在獨立於物理硬件的一小組文件中。這樣,您只需複製幾個文件就能夠隨時隨地根據須要複製、保存和移動虛擬機。
相對於硬件獨立:由於虛擬機運行於虛擬化層之上,因此只能看到虛擬化層提供的虛擬硬件;此虛擬硬件也一樣沒必要考慮物理服務器的狀況;這樣,虛擬機就能夠在任何x86服務器(BIM、Dell、HP等)上運行而無需進行任何修改。這打破了操做系統和硬件以及應用程序和操做系統/硬件之間的約束。
服務器虛擬化:將一臺物理服務器虛擬成多臺虛擬服務器。虛擬機是運行在物理機上的一系列的標準虛擬硬件,並由一系列的文件組成。
虛找機與物理機相比:物理機的操做系統運行在物理硬件上,物理硬件的變動必然帶來操做系統的變化。一個操做系統總每每只能運行一個應用,所以資源利用率低,每每只有5~10%。虛擬化環境中,多臺虛擬機能夠運行在同一個物理硬件上,所以大大提升了資源的利用率,節約能耗。另外一方面,虛擬機是由一系列標準虛擬硬件組成的,底層的物理硬件變化不會影響到上層的虛擬硬件,所以虛擬機的生命週期更長,不會隨着硬件變化而變化。同時可拓展性也更好,能夠根據需求的變化,很是容易更改資源的分配。
虛擬機是由一系列文件組成的,所以高可靠、遷移、保護等高級功能能夠很是容易地實現。
虛擬機易於建立、易於管理,用戶能夠更方便地獲取計算資源,減小總體擁有成本,包括管理、維護等。
更高級功能
下降運營成本
服務器虛擬化下降了IT基礎設施的運營成本,運維人員能夠從繁重的物理服務器、OS、中間件及兼容性的管理工做解放處理,減小人工干預頻率,使管理更增強大、便捷。
縮短上線週期
虛擬化中對能夠將須要批量預安裝機器進行模板化,使用模板建立虛擬機,不只能夠縮短安裝週期,也能夠減小人工帶來的配置失誤。從而縮短操做系統安裝部署週期,進而縮短業務的上線期。
提升可靠性
經過集羣部署、雙網卡、雙電源以及OS盤的RAID策略均可覺得咱們提高基礎構的可靠性。經過對集羣設置,咱們能夠實現虛擬機的冷熱遷移,故障恢復甚至容錯等,從而在架構上實現了高可靠。
提升資源利用率
擺脫傳統架構單臺服務器單個應用,經過虛擬化技術,資源能夠以更小的單位提供,能夠實現一比多的形式,很大程度提升了物理資源的利用率,同時,可對虛擬機進行隔離,保證了安全性。
動態資源調度(DRS)
經過DRS能夠實現機房節能環保,下降功耗,在資源閒置時自動遷移並關閉部分資源,資源緊張時可自動開啓資源並負載均衡。
虛擬化先後的對比
虛擬機的三個特徵:
同質( Equivalence)
即VM的運行環境和物理機的環境在本質上是相同的,表現上能夠有一些差別。如CPU的ISA必須一致(實際能夠不—致),CPU core的個數能夠不一樣。
高效( Efficiency)
即VM的性能必須接近物理機。所以,常見的模擬器(boches,simics...)就不能稱爲VM。
資源受控( Resource control)
即VMM對物理機的全部資源有絕對的控制力。
寄居虛擬化:寄居虛擬化架構指在宿主操做系統之上安裝和運行虛擬化程序,依賴於宿主操做系統對設備的支持和物理資源的管理。虛擬化管理軟件做爲底層操做系統(Windows或Linux等)上的一個普通應用程序,而後經過其建立相應的虛擬機,共享底層服務器資源。也能夠理解爲在宿主操做系統之上安裝和運行虛擬化程序,依賴於宿主操做系統對設備的支持和物理資源的管理。
裸金屬虛擬化:裸金屬虛擬化架構指直接在硬件上面安裝虛擬化軟件,再在其上安裝操做系統和應用,依賴虛擬層內核和服務器控制檯進行管理。Hypervisor是指直接運行於物理硬件之上的虛擬機監控程序。它主要實現兩個基本功能:首先是識別、捕獲和響應虛擬機所發出的CPU特權指令或保護指令;其次,它負責處理虛擬機隊列和調度,並將物理硬件的處理結果返回給相應的虛擬機。華爲公司的統一虛擬化平臺使用的是裸金屬虛擬化架構。
操做系統虛擬化:操做系統虛擬化架構在操做系統層面增長虛擬服務器功能。操做系統虛擬化架構把單個的操做系統劃分爲多個容器,使用容器管理器來進行管理。宿主操做系統負責在多個虛擬服務器(即容器)之間分配硬件資源,而且讓這些服務器彼此獨立。沒有獨立的 hypervisor層。一個明顯的區別是,若是使用操做系統層虛擬化,全部虛擬服務器必須運行同一操做系統(不過每一個實例有各自的應用程序和用戶帳戶)。
混合虛擬化:將一個內核級驅動器插入到宿主操做系統內核。這個驅動器做爲虛擬硬件管理器來協調虛擬機和宿主操做系統之間的硬件訪問。混合虛擬化須要底層硬件支持虛擬化擴展功能。
虛擬機 (Virtual Machine) 是由虛擬化層提供的高效、獨立的虛擬計算機系統,其皆擁有本身的虛擬硬件(CPU,內存,I/O設備)。
經過虛擬化層的模擬,虛擬機在上層軟件看來,其就是一個真實的機器。這個虛擬化層通常稱爲虛擬機監控器 (VirtualMachine Monitor, VMM),也稱Hypervisor。
Tips:這裏虛擬化層也就是虛擬機的控制層。
虛擬資源
VMM利用底層硬件資源來構建一個包含虛擬CPU、內存和外設等的虛擬環境。在這個環境中,Guest OS認爲本身運行在一臺真是的計算機上,並惟一擁有這臺「虛擬」機器上的全部資源。
虛擬環境的調度
VMM能夠同時構建多個虛擬機環境,從而容許多個Guest OS併發執行,VMM利用一套策略來有效的調度資源。
虛擬化環境的管理接口 VMM提供一組完備的管理接口,來支持虛擬環境的建立、刪除、暫停和遷移等功能。上層的管理程序經過調用VMM提供的管理接口,爲用戶提供管理界面。