400 likes | 938 Views
3-1. 概述虛擬化技術與分類探討. 單機虛擬化. 3-2. 多機虛擬化:雲端運算的根基. 3-3. 小結. 3-4. 3.1 虛擬化技術與分類探討. 虛擬化是以某種使用者和應用程式都可以很容易從中獲益的方式來表示電腦資源的過程,而不是根據這些資源的實作、地理位置或物理包裝的專有方式來表示它們。 最常用的虛擬化技術可能是所有通用 OS 系統都支援的虛擬記憶體技術,它使應用程式認為它擁有連續的可用的記憶體(一個連續完整的位址空間),而實際上,它通常是被分隔成多個實體記憶體碎片,還有部分是暫時儲存在外部磁碟記憶體上的,在需要時進行資料交換。.
E N D
3-1 • 概述虛擬化技術與分類探討 單機虛擬化 3-2 多機虛擬化:雲端運算的根基 3-3 小結 3-4
3.1 虛擬化技術與分類探討 • 虛擬化是以某種使用者和應用程式都可以很容易從中獲益的方式來表示電腦資源的過程,而不是根據這些資源的實作、地理位置或物理包裝的專有方式來表示它們。 • 最常用的虛擬化技術可能是所有通用OS系統都支援的虛擬記憶體技術,它使應用程式認為它擁有連續的可用的記憶體(一個連續完整的位址空間),而實際上,它通常是被分隔成多個實體記憶體碎片,還有部分是暫時儲存在外部磁碟記憶體上的,在需要時進行資料交換。
電腦作業系統、資料庫、Java虛擬主機等其實都可以說是虛擬化技術或在其中用到了大量的虛擬化技術,我們可以把虛擬化技術分為單機虛擬化(Single-System Virtualization)和多機虛擬化(Multi-System Virtualization)兩大類。
最新一輪虛擬化技術的熱潮由VMWare公司“引爆” 。 VMWare虛擬化技術可以把一台普通電腦或PC類比成同時執行多個作業系統的機器,如圖3-2所示。 圖3-2
由於以VMWare為首的虛擬化技術在IDC資料中心的成功使用,人們自然地把它和雲端運算理念融為一體,然而,和VMWare這樣的虛擬化技術並無直接關聯。在Google內部後臺中執行著幾百萬台Linux PC或RISC Workstations伺服器,所採用的而是類似PVM/MPI那樣的專用多機高性能群集(High Performance Clustering或High Performance Computing,HPC)虛擬化技術。 • 只有結合基於網路的分散式多機虛擬化技術,才能算是真正的雲端運算技術。
3.2 單機虛擬化 • 執行單一應用、基於x86的伺服器大多數其平均利用率只有10%。使用虛擬化技術把工作負荷合併到單一設備上後有望大幅提高利用率、實現降低成本最佳化利用率的目的。
虛擬化的目標: • 降低成本:一個系統能夠支援多個OS上的應用,提高伺服器利用率,降低硬體成本,降低能耗,減少機房面積。 • 可用性:減少系統當機時間,提高資料安全性,快速災難恢復。 • 性能:提高伺服器、儲存設備及桌面應用相對應時間。
安全性:降低安全風險,一個客座OS出問題不影響其他客座OS上的應用。安全性:降低安全風險,一個客座OS出問題不影響其他客座OS上的應用。 • 互操作性:32位元和64位元Linux/Windows等應用可以同台執行。 • 可管理性:統一伺服器管理,更加靈活的內部設施,按需分配計算力。 • 可伸縮性:提高商業回應速度和敏捷性。
虛擬化是因為它帶來了很多好處,它同樣也帶來了不少問題,所以並不適用於所有的人。圖3-6列出了它的優勢和劣勢。虛擬化是因為它帶來了很多好處,它同樣也帶來了不少問題,所以並不適用於所有的人。圖3-6列出了它的優勢和劣勢。
單機虛擬化也不是新概念,早在20世紀70年代,大型電腦如DEC VAX/VMS、IBM 370等就可以同時執行多個作業系統實例。
3.2.1Hypervisor 技術 • VMWare的成功使它幾乎成了虛擬化的代名詞,不過從技術分類的角度來說,Hypervisor才是對所有虛擬化技術和功能,尤其是虛擬化產品的統稱。Hypervisor也叫Virtual Machine Monitor(VMM)或硬體虛擬化(Hardware Virtualization)。 • Hypervisor這個詞出自IBM,最早用於稱呼IBM System/370的VM/370虛擬作業系統,當時Supervisor這個詞被用來指作業系統的核心(Kernel),Hypervisor被用來指整個作業系統。
Hypervisor被分為如下兩大類型。 • 第一類是本地(Native)或裸機(Bare Metal)Hypervisor,如圖3-11所示。
第二類(Hosted)Hypervisor執行在主機的OS上,如圖3-12所示。第二類(Hosted)Hypervisor執行在主機的OS上,如圖3-12所示。 圖3-12
還有一種混合虛擬化方式,如圖3-13所示。 圖3-13
大家熟悉的Java虛擬主機(JVM)屬於應用層(Application Level)虛擬化技術,其上不能執行OS,只能執行應用程式。 • Hypervisor功能的虛擬化技術有很多種。 • 全虛擬化(Full Virtualization)。 • 準虛擬化(Para Vrtualization)。 • 硬體輔助虛擬化(Hardware-Assisted Virtualization)。
3.2.2Hypervisor 產品 • Hypervisor“革命”的熱潮是VMWare掀起來的,VMWare自然成為了這個市場的領先者。 • VMWare除了價格以外,在其他所有指標中都處於領先地位。
虛擬化主要是軟體技術,最受關注的開源軟體主要是基於Linux的KVM和Xen兩種軟體。但是Xen由於被Citrix公司收購並得到商業支援,越來越受到開源社群的質疑。Linux建議廠商和開發者使用並標準化KVM,而不是Xen。虛擬化主要是軟體技術,最受關注的開源軟體主要是基於Linux的KVM和Xen兩種軟體。但是Xen由於被Citrix公司收購並得到商業支援,越來越受到開源社群的質疑。Linux建議廠商和開發者使用並標準化KVM,而不是Xen。 • RedHat收購了Qumranet,開發和維護KVM,將虛擬化的技術作為作業系統的一種特性整合到RedHat Linux系統中,同時也像VMWare vSphere一樣,提供Cluster功能。
對於中小企業而言,選擇KVM和Xen主要考慮成本、部署複雜程度、性能和管理介面等方面。但是在部署複雜度方面,KVM要比Xen開源版本容易些, Xen具有部署資料中心等大規模虛擬化應用的能力。
3.2.3VMWare 與 Xen • 為什麼Xen與雲端運算有關? • 如何保證一個客戶的程式,不至於破壞其他客戶的程式執行,不至於損壞其他客戶的檔案? • 最簡單的辦法是給不同的客戶分配不同的機器。
Xen提供了實作這一目標的技術解決方案,如圖3-22所示。Xen提供了實作這一目標的技術解決方案,如圖3-22所示。 • 描述的是Xen的系統結構。 圖3-22
多個OS實例共用CPU的實作,是透過兩套機制來完成的。當多個OS實例請求使用CPU時,這些請求被放置在hypercall佇列裏。Xen hypervisor根據預先設定的優先等級政策,在hypercall佇列裏挑選出下一個被執行的請求。請求被處理完了以後,Xen透過非同步的事件回應機制(Async Event-callback Handler),把結果回授給相對應的OS實例。
各個OS實例都有自己的RAM區域,彼此不相互干擾。從每個OS實例的角度看,似乎自己的RAM區域在物理上位於相鄰區域,但是事實上不是這樣。這種善意的欺騙歸功於虛擬RAM,虛擬RAM不僅記錄著物理RAM的分配和使用,而且負責位址的翻譯等工作。各個OS實例都有自己的RAM區域,彼此不相互干擾。從每個OS實例的角度看,似乎自己的RAM區域在物理上位於相鄰區域,但是事實上不是這樣。這種善意的欺騙歸功於虛擬RAM,虛擬RAM不僅記錄著物理RAM的分配和使用,而且負責位址的翻譯等工作。
3.2.4 其他虛擬化技術 • 其他虛擬化技術,例如,虛擬實境(Virtual Reality)。 • 就單系統虛擬化而言,展示了不同層次的虛擬化,Hypervisor屬於“Virtual System”,以及系統層面的虛擬化,此外還有應用層面的虛擬化(Virtual Applications),以及使用者(感受)層面的虛擬化(Virtual Experience)。
“其他”類虛擬化,歸納起來主要有: • 應用虛擬化(Application Virtualization)。 • 桌面虛擬化(Desktop Virtualization)和 表現層虛擬化(Presentation Virtualization)。 • 資源虛擬化(Resource or Infrastructure Virtualization)。 • 作業系統級虛擬化(OS Level Virtualization)。
單系統或單機虛擬化技術主要用於提高單系統使用效率等應用,嚴格來說這樣的虛擬化技術和雲端運算沒有直接關係。雲端運算的目標是整合整個部門或企業。單系統或單機虛擬化技術主要用於提高單系統使用效率等應用,嚴格來說這樣的虛擬化技術和雲端運算沒有直接關係。雲端運算的目標是整合整個部門或企業。
3.3 多機虛擬化:雲端運算的根基 • 多機其實是多系統,不是共用記憶體(Shared Memory),而是分散式平行鬆耦合(Loosely-coupled)多機系統(Cluster、MPP等)架構。
圖3-26展示了一個典型的雲端運算系統的架構圖(來自Eucalyptus),其主要目標是把一大批單節點(單系統或單機)整合到一起,實作為同一計算任務或目標服務。圖中的Node Controller管理一個物理節點上的Hypervisor支援的一個或多個VM實例,Cluster Controller實作對一組單機系統的統一管理和支配。
事實上,Eucalyptus依賴KVM、也可以是Xen(Amazon EC2主要依賴Xen)乃至VMWare實作節點的虛擬化,提供同構(Homogeneous)的執行節點,即執行同一個OS的節點,以便簡化管理,這樣可以比以往的基於異構(Heterogeneous),即包含各種OS的COW系統更易管理,也可方便地實作基於Checkpoint的結果恢復【66】。對使用者來說,整個被整合的計算資源(一組單機系統)就是一台(超大的)電腦,這就是多機虛擬化。
SSI(Single System Image)是多機虛擬化系統必備的功能。SSI系統有LVS(Linux Virtual System)、openSSI等,其基本特徵大致有: • 單一的系統。 • 單一的控制入口。 • 資源存取透明。
多機虛擬化系統的目標是統一管理虛擬化計算環境,一個多機虛擬化計算環境(也就是雲)可以包含幾個基於單機的多虛擬主機到上千個虛擬化單機,這些機器可以是完全不同的。多機虛擬化系統的目標是統一管理虛擬化計算環境,一個多機虛擬化計算環境(也就是雲)可以包含幾個基於單機的多虛擬主機到上千個虛擬化單機,這些機器可以是完全不同的。 • 很多架構如Cluster、HPC、網格運算,乃至Hadoop等,和本章描述的虛擬化技術無直接關係,著眼點也很不相同,但筆者都把它們統一歸納為多機虛擬化技術。
3.4 小結 • 多機虛擬化才是雲端運算的基礎和根基,多機資源的整合或群集(Clustering)這項技術應該說本質上也是一種虛擬化。PVM/MPI目前仍然是全世界HPC/MPP超級電腦的核心軟體之一。 • 本章中筆者把採用整合多機資源、提高計算力的技術,包括分散式計算技術(Distributed Computing)、群集技術(Clustering)、並行處理技術(Parallel Processing)、超級計算技術(Supercomputing)、網格運算技術(Grid Computing)等,統稱為HPC(High Performance Computing),即高性能計算技術。