雲計算主流技術
1. 什么是虛擬化
虛擬化 (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之外的虛擬機。
2. 虛擬化的特點
分區:分區意味看虛擬化層為多個虛擬機划分服務器資源的能力;每個虛擬機可以同時運行個單獨的操作系統(相同或不同的操作系統),使您夠在台服務器上運行多個應用程序;每個操作系統只能看到虛擬化層為其提供的”虛擬硬件”(虛擬網卡、CPU、內存等),以使它認為運行在自己的專用服務器上。
隔離:虛擬機是互相隔離的。
-
一個虛擬機的崩潰或故障(例如,操作系統故障應用程序崩潰、驅動程序故障,等等)不會影響同一服務器上的其它虛擬機。
-
—個虛擬機中的病毒、蠕蟲等與其它虛擬機相隔離,就像每個虛擬機都位於單獨的物理機器上一樣。
-
可以進行資源控制以提供性能隔離:您可以為每個虛擬機指定最小和最大資源使用量,以確保某個虛擬機不會占用所有的資源而使得同一系統中的其他虛擬機無資源可用。
-
可以在單一機器上同時運行多個負載/應用程序/操作系統,而不會出現我們剛才討論傳統x86服務器體系結構的局限性時所提到的那些問題(應用程序沖突、DLL沖突等)。
封裝:封裝意味看將整個虛擬機(硬件配置、BOS配置、內存狀態、磁盤狀態、CPU狀態)儲存在獨立於物理硬件的一小組文件中。這樣,您只需復制幾個文件就可以隨時隨地根據需要復制、保存和移動虛擬機。
相對於硬件獨立:因為虛擬機運行於虛擬化層之上,所以只能看到虛擬化層提供的虛擬硬件;此虛擬硬件也同樣不必考慮物理服務器的情況;這樣,虛擬機就可以在任何x86服務器(BIM、Dell、HP等)上運行而無需進行任何修改。這打破了操作系統和硬件以及應用程序和操作系統/硬件之間的約束。
3. 雲計算VS虛擬化
4. 虛擬化的優勢
服務器虛擬化:將一台物理服務器虛擬成多台虛擬服務器。虛擬機是運行在物理機上的一系列的標准虛擬硬件,並由一系列的文件組成。
虛找機與物理機相比:物理機的操作系統運行在物理硬件上,物理硬件的變更必然帶來操作系統的變化。一個操作系統總往往只能運行一個應用,因此資源利用率低,往往只有5~10%。虛擬化環境中,多台虛擬機可以運行在同一個物理硬件上,因此大大提高了資源的利用率,節約能耗。另一方面,虛擬機是由一系列標准虛擬硬件組成的,底層的物理硬件變化不會影響到上層的虛擬硬件,因此虛擬機的生命周期更長,不會隨着硬件變化而變化。同時可拓展性也更好,可以根據需求的變化,非常容易更改資源的分配。
虛擬機是由一系列文件組成的,因此高可靠、遷移、保護等高級功能可以非常容易地實現。
虛擬機易於創建、易於管理,用戶可以更方便地獲取計算資源,減少整體擁有成本,包括管理、維護等。
更高級功能
- 在線的數據、虛擬機遷移
- 高可用
- 自動資源調配
- 計算雲
-
降低運營成本
服務器虛擬化降低了IT基礎設施的運營成本,運維人員可以從繁重的物理服務器、OS、中間件及兼容性的管理工作解放處理,減少人工干預頻率,使管理更加強大、便捷。 -
縮短上線周期
虛擬化中對可以將需要批量預安裝機器進行模板化,使用模板創建虛擬機,不僅可以縮短安裝周期,也可以減少人工帶來的配置失誤。從而縮短操作系統安裝部署周期,進而縮短業務的上線期。 -
提高可靠性
通過集群部署、雙網卡、雙電源以及OS盤的RAID策略都可以為我們提升基礎構的可靠性。通過對集群設置,我們可以實現虛擬機的冷熱遷移,故障恢復甚至容錯等,從而在架構上實現了高可靠。 -
提高資源利用率
擺脫傳統架構單台服務器單個應用,通過虛擬化技術,資源可以以更小的單位提供,可以實現一比多的形式,很大程度提高了物理資源的利用率,同時,可對虛擬機進行隔離,保證了安全性。 -
動態資源調度(DRS)
通過DRS可以實現機房節能環保,降低功耗,在資源閑置時自動遷移並關閉部分資源,資源緊張時可自動開啟資源並負載均衡。
虛擬化前后的對比
虛擬機的三個特征:
-
同質( Equivalence)
即VM的運行環境和物理機的環境在本質上是相同的,表現上可以有一些差異。如CPU的ISA必須一致(實際可以不—致),CPU core的個數可以不同。 -
高效( Efficiency)
即VM的性能必須接近物理機。因此,常見的模擬器(boches,simics...)就不能稱為VM。 -
資源受控( Resource control)
即VMM對物理機的所有資源有絕對的控制力。
5. 虛擬化架構
寄居虛擬化:寄居虛擬化架構指在宿主操作系統之上安裝和運行虛擬化程序,依賴於宿主操作系統對設備的支持和物理資源的管理。虛擬化管理軟件作為底層操作系統(Windows或Linux等)上的一個普通應用程序,然后通過其創建相應的虛擬機,共享底層服務器資源。也可以理解為在宿主操作系統之上安裝和運行虛擬化程序,依賴於宿主操作系統對設備的支持和物理資源的管理。
裸金屬虛擬化:裸金屬虛擬化架構指直接在硬件上面安裝虛擬化軟件,再在其上安裝操作系統和應用,依賴虛擬層內核和服務器控制台進行管理。Hypervisor是指直接運行於物理硬件之上的虛擬機監控程序。它主要實現兩個基本功能:首先是識別、捕獲和響應虛擬機所發出的CPU特權指令或保護指令;其次,它負責處理虛擬機隊列和調度,並將物理硬件的處理結果返回給相應的虛擬機。華為公司的統一虛擬化平台使用的是裸金屬虛擬化架構。
操作系統虛擬化:操作系統虛擬化架構在操作系統層面增加虛擬服務器功能。操作系統虛擬化架構把單個的操作系統划分為多個容器,使用容器管理器來進行管理。宿主操作系統負責在多個虛擬服務器(即容器)之間分配硬件資源,並且讓這些服務器彼此獨立。沒有獨立的 hypervisor層。一個明顯的區別是,如果使用操作系統層虛擬化,所有虛擬服務器必須運行同一操作系統(不過每個實例有各自的應用程序和用戶賬戶)。
混合虛擬化:將一個內核級驅動器插入到宿主操作系統內核。這個驅動器作為虛擬硬件管理器來協調虛擬機和宿主操作系統之間的硬件訪問。混合虛擬化需要底層硬件支持虛擬化擴展功能。
6. 了解虛擬機與VMM
-
虛擬機 (Virtual Machine) 是由虛擬化層提供的高效、獨立的虛擬計算機系統,其皆擁有自己的虛擬硬件(CPU,內存,I/O設備)。
-
通過虛擬化層的模擬,虛擬機在上層軟件看來,其就是一個真實的機器。這個虛擬化層一般稱為虛擬機監控器 (VirtualMachine Monitor, VMM),也稱Hypervisor。
Tips:這里虛擬化層也就是虛擬機的控制層。
7. VMM的功能
-
虛擬資源
VMM利用底層硬件資源來構建一個包含虛擬CPU、內存和外設等的虛擬環境。在這個環境中,Guest OS認為自己運行在一台真是的計算機上,並唯一擁有這台“虛擬”機器上的所有資源。 -
虛擬環境的調度
VMM可以同時構建多個虛擬機環境,從而允許多個Guest OS並發執行,VMM利用一套策略來有效的調度資源。 -
虛擬化環境的管理接口
VMM提供一組完備的管理接口,來支持虛擬環境的創建、刪除、暫停和遷移等功能。上層的管理程序通過調用VMM提供的管理接口,為用戶提供管理界面。