:第一章 瞭解Linux虛擬化

本章爲讀者提供了Linux虛擬化中流行技術的深入看法,以及相較於其餘同類技術的優點特色。本書共有14章,囊括了KVM虛擬化中的各個方面,從KVM的內部構造開始,幷包括了諸如軟件定義網絡(SDN),性能調節和優化以及P2V(physical to virtual migration)等高級內容。node

在本章中,咱們將學習如下內容:linux

  • Linux虛擬化和它的基本概念
  • 爲何咱們要使用Linux虛擬化
  • Hypervisor/VMM
  • 在雲計算中,Linux虛擬化能夠爲你提供什麼
  • 公有云和私有云

TIP:在開始學習以前,你能夠前往本書的主頁,查看相關的更新,技巧和更新狀況 http://bit.ly/mkvmvirtgit

什麼是虛擬化

在哲學概念中,虛擬意味着「某些並不是真實存在的東西(something that is not real)」。在計算機科學中,虛擬的意思「一個並不是物理存在的硬件環境(a hardware environment that is not real)」。在這裏,咱們複用物理硬件的功能,並用來運行操做系統。用來建立此類環境的相關技術,咱們稱之爲「虛擬化技術」,簡稱「虛擬化」。運行虛擬化軟件(Hypervisor或者叫VMM,虛擬機監視器)的物理設施咱們稱之爲Host,安裝在Hypervisor之上的虛擬機稱爲Guest。安全

爲何我須要使用Linux虛擬化

User-mode Linux (UML) 是首個出如今Linux上的虛擬化技術。如今Linux上已經有許多種虛擬化技術可供選擇,能夠將一臺主機虛擬成多臺使用。比較流行的虛擬化技術包括KVM,XEN,QEMU以及VirtualBox。本書主要聚焦的是KVM虛擬化。服務器

開放性,靈活性和性能是Linux虛擬化吸引用戶的幾個主要因素。和其餘的開源同樣,Linux虛擬化技術是在一種合做的模式下獲得發展的,這間接地使用戶享受了開源軟件便利和優點。舉例來講,相較於閉源模式,開源能夠從社區得到普遍輸入,間接幫助下降研究和開發支出,提高了效率,性能和生產力。開源模式鼓勵創新。下面是一些開源帶來的其餘好處和優點:網絡

  • 來自實際問題的用戶驅動的解決方案
  • 從社區和用戶獲取支持,幫助用戶解決問題
  • 提供技術設施的選擇
  • 數據和安全的掌控,能夠根據須要自由閱讀,研究和修改代碼
  • 避免了廠商鎖定,能夠靈活地在同類技術產品之間進行遷移

虛擬化的分類

簡而言之,虛擬化是虛擬 硬件、網絡、存儲、程序、訪問等資源的過程。所以,虛擬化技術能夠應用在以上提到的多個內容當中。架構

例如:app

  • 軟件定義網絡
  • 軟件定義存儲
  • application stream、遠程桌面服務、桌面虛擬化等應用程序虛擬化技術

儘管如此,在本書的內容中,咱們主要討論基於Hypervisor的軟件虛擬化方面的內容。從這個視角來看,虛擬化隱藏了底層物理硬件,使其能夠被多個操做系統共享和使用。這也被稱爲平臺虛擬化。簡而言之,這代表了在底層硬件和運行在它上面的操做系統間,有一個稱爲hypervisor/VMM的中間層。運行在Hypervisor之上的操做系統被稱爲Guest或者VM。負載均衡

虛擬化的好處

讓咱們來討論一下虛擬化的一些好處:dom

  • 服務器整合:虛擬化能夠幫助節省電力和擁有更小的能源足跡,這是衆所周知的。利用虛擬化技術實現服務整合能夠減小整個數據中心的總使用量。虛擬化減小了裸金屬服務器數量,減小了網絡設備以及其餘相關的物理設施,例如機架。最終地,它減小了樓層空間和電力資源等消耗。這些能夠爲你節省金錢,幫助你提升能源利用率。它是否確實地增長了硬件的利用率?是的。咱們能夠以確切的CPU、內存、存儲資源數量來置備咱們所需的虛擬機,反過來,這使得咱們能夠確信硬件使用率確實獲得了增長。
  • 服務隔離:假如沒有虛擬化,在這種狀況下,如何實現服務隔離。是否須要將每一個應用程序跑在單獨的物理服務器中?沒錯,這也能夠保證服務的隔離。可是,這是否會致使物理服務器無序增加,服務器利用率低和成本增加嗎?答案是顯而易見的。服務器虛擬化能夠幫助應用程序相互隔離,並經過在更少的物理服務器上整合許多虛擬機,從而消除應用程序兼容性問題。簡而言之,服務隔離技術帶來了簡化的服務管理的優點。
  • 更快的服務器配置:置備一臺裸金屬服務器須要消耗大量時間,即便咱們在自動化的道路上已經取得了不少進步。但在虛擬化的狀況下,您能夠從預先構建的鏡像(模板)或快照中生成虛擬機。就像你想象的那樣,速度很快。另外,你沒必要擔憂物理資源配置,例如會帶來很大物理或者裸金屬服務器置備負擔的「網絡堆棧」等內容。
  • 災難恢復:當你擁有一個虛擬化數據中心時,災難恢復會變得很容易。虛擬化容許你爲虛機生成最新的快照。這些快照能夠快速地從新部署,這樣您就能夠到達一個一切都運行良好的狀態。另外,虛擬化提供了一些特性,好比在線和離線VM遷移技術,這樣您就能夠移動這些虛擬機到數據中心的任意其餘地方。這種靈活性有助於制定更容易實施,成功率更高災難恢復計劃。
  • 動態負載均衡:這取決於你制定的策略。當服務器工做負載改變,虛擬化技術能夠基於你制定的策略,將虛擬機從高負載的服務器,遷移至低負載的服務器。大多數的虛擬化解決方案都爲用戶準備此類策略。這種動態負載平衡能夠有效地利用服務器資源。
  • 更快的開發和測試環境:試想一下,你想以臨時的方式測試環境。在物理服務器上面部署很是困難,不是嗎?另外,若是你以一種臨時的方式來搭建這個環境,也不太有價值。可是,以虛擬化的方式搭建一個生產或者測試環境卻很是簡單。經過使用一個虛擬機操做系統用來隔離出一個已知和受控的環境,使得快速開發成爲了可能。它還消除了許多未知因素,好比屢次安裝致使的多個庫文件版本並存。特別是,若是它是一個開發或測試環境,咱們能夠預料到因爲安裝實驗性版本而致使的嚴重崩潰。若是這發生在物理或裸金屬服務器上,咱們須要數小時的事件來從新安裝配置環境。然而,在VM的狀況下,這隻須要簡單地複製一個虛擬映像並再次嘗試。
  • 改善系統的可靠性和安全性:虛擬化解決方案增長了虛擬機和底層物理硬件之間的抽象層。在物理機磁盤上的數據因爲某些緣由致使損壞進而影響整個服務器是很常見的。然而,若是存儲在虛擬機硬盤中,主機系統中的物理硬盤將無缺無損,不須要擔憂替換虛擬硬盤。在任何其餘實例中,虛擬化均可以防止因爲設備驅動程序等軟件形成的內存崩潰而致使系統崩潰。系統管理員能夠在獨立和隔離的環境中配置虛擬機。這種虛擬機的沙箱部署能夠爲基礎設施提供更多的安全性,由於管理員能夠靈活地選擇最適合這種設置的配置。若是管理員決定某個特定的VM不須要訪問Internet或其餘的生產網絡,那麼虛擬機就能夠輕鬆地被設置在一個徹底隔離的網絡配置中,並限制其對其餘部分網絡的訪問。這有助於減小由單個系統感染進而影響大量生產計算機或虛擬機的風險。
  • OS獨立或硬件廠商鎖定:虛擬化就是在底層硬件之間建立一個抽象層,並向運行在堆棧頂部的Guest OS提供虛擬硬件。虛擬化消除了硬件廠商鎖定,不是嗎?也就是說,虛擬化的設置必須綁定到一個特定的供應商/平臺/服務器,特別是當虛擬機並不真正關心它們運行的硬件的時候。所以,當選擇服務器設備時,數據中心管理員就有了更多的靈活性。簡而言之,虛擬化技術的優點在於它的硬件獨立性和封裝性。這些特性加強了可用性和業務連續性。虛擬化的優勢之一是軟件和硬件之間的抽象。

 

 

正如咱們在前一節所討論的,儘管虛擬化能夠在不一樣的領域實現,但我想更多地討論操做系統虛擬化和軟件虛擬化。

操做系統虛擬化/分區

OS虛擬化技術容許同一物理主機服務不一樣的工做負載,並隔離每一個工做負載。請注意,這些工做負載在相同的操做系統上獨立運行。這容許物理服務器運行多個獨立的操做系統實例,稱爲容器。這被稱爲基於容器的虛擬化技術也沒有什麼不對。此類虛擬化技術的優點是,Host的操做系統不須要模擬和自身OS不一樣的的系統調用接口。因爲上述接口不存在,所以在這種虛擬化中,其餘操做系統沒法被虛擬化或支持。這是此類虛擬化的常見且易於理解的限制。Solaris containers、FreeBSD jails和Parallel的OpenVZ都屬於這一類虛擬化。在使用這種方法時,全部的工做負載都運行在單個系統上。進程隔離和資源管理由內核提供。雖然全部的虛擬機/容器在同一個內核中運行,它們也有本身獨立的文件系統、進程、內存、設備等等。從另外一個角度來看,同一物理主機上的Windows、Unix和Linux工做負載的混合,並非這種虛擬化的一部分。可是性能和效率上帶來的好處遠超過該技術的侷限性,由於一個操做系統就能夠支持全部的虛擬環境。此外,從一個分區切換到另外一個分區的速度很是快。

在咱們進一步討論虛擬化和深刻到下一種虛擬化類型以前(hypervisor-based /軟件虛擬化),瞭解計算機科學中的一些術語是頗有用的。話雖如此,咱們仍是從「protection rings」開始吧。在計算機科學中,存在着各類分級保護域(hierarchical protection domains)/特權環(privileged rings)。在訪問計算機系統中的資源時,這種安全機制用於保護數據或錯誤(These are the mechanisms that protect data or faults based on the security enforced when accessing the resources in a computer system.)。這些保護域有助於計算機系統的安全性。

如以前的圖片顯示,protection rings從最高特權到最低特權進行編號。ring 0是最高特權等級,它直接與物理硬件交互,例如CPU和內存等。諸如內存,IO端口和CPU指令的資源經過特權ring受到保護。ring 1和ring 2一般不被使用。大多數通用操做系統只使用兩個ring,即便它們運行的硬件提供了更多的CPU模式。這兩個主要的CPU模式被稱爲內核模式(kernel mode)和用戶模式(user mode)。從操做系統的角度來看,Ring 0被稱爲kernel mode/supervisor mode,而Ring 3是user mode。正如你所想的同樣,應用程序運行在Ring 3。

諸如Linux和Windows這樣的操做系統使用supervisor/kernel 和 user mode。用戶模式在沒有調用內核狀況下,幾乎不能作任何事,由於它被限制了對內存、CPU和I/O端口的訪問。內核能夠在特權模式下運行,這意味着它們能夠在ring 0上運行。爲執行特定的函數,用戶模式代碼(全部應用程序運行在ring 3)必須執行supervisor mode或內核空間的系統調用,操做系統的可信代碼將執行所需的任務並將執行結果返回給用戶空間。簡而言之,正常環境下OS運行在ring 0下。它須要最高特權級別來進行資源管理並提供對硬件的訪問。如下圖片解釋了這一點:

ring大於0時在稱爲unprotected的處理器模式下運行指令。hypervisor/VMM須要訪問主機的內存、CPU和I/O設備。由於,只有在ring 0中運行的代碼才能執行這些操做,它須要運行在最高特權的ring 0,而且放置在靠近內核的地方。若是沒有特定的硬件虛擬化支持,hypervisor/VMM運行在ring 0中,這基本上阻止了虛擬機操做系統運行在ring 0。因此VM的操做系統必須運行在ring1。在VM中安裝的操做系統也須要訪問全部資源,由於它並不能感知虛擬化層。爲了實現這一點,它必須和VMM同樣運行在ring 0中。因爲同一時間只有一個內核能夠運行在ring 0,因此Guest OS必須在另外一個具備更少特權的ring中,或者必須修改以在用戶模式下運行。

這致使須要引入稱爲全虛擬化和半虛擬化的虛擬化方法,咱們將在下面的部分中進行討論。

全虛擬化

在全虛擬化中,經過模擬特權指令來克服由Guest OS運行在ring1和VMM運行在ring 0中所產生的限制。全虛擬化在第一代x86 VMM中普遍採用。它依靠例如二進制轉譯(binary translation)來捕獲和虛擬化某些敏感和沒法虛擬化的指令。也就是說,在二進制轉換中,一些系統調用被解釋執行和動態重寫。下圖描述了「Guest OS如何在ring 1下訪問主機硬件,執行特權指令」以及「非特權指令是如何在無ring 1參與的狀況下得到執行」。

經過這種方法,關鍵指令就會在運行時(靜態或動態地)發現,取而代之的是陷入VMM中以軟件仿真的方式執行。與運行在原生虛擬化架構上的虛擬機相比,二進制轉換可能會帶來巨大的性能開銷。

然而,如前面的圖像所示,當咱們使用全虛擬化時,咱們可使用未修改的客戶操做系統。這意味着咱們沒必要改變運行在VMM上的Guest OS 內核。當Guest OS內核執行特權操做時,VMM提供CPU仿真來處理和修改受保護的CPU操做,可是正如前面提到的,與其餘虛擬化模式(稱爲半虛擬化)相比,這會將致使較大的性能開銷。

半虛擬化

在半虛擬化中,須要對Guest OS進行修改,以容許這些指令訪問ring 0。換句話說,OS須要經過修改,以「hypercalls」的方式實現VMM/hypervisor和Guest OS的通訊。

NOTE:請注意,咱們也能夠稱VMM爲hypervisor。

半虛擬化技術中hypervisor提供API接口,通過修改的Guest OS能夠調用該接口。特權指令調用與VMM提供的API接口完成信息交換。在這種狀況下,修改後的Guest OS能夠在ring 0中運行。

正如你所見,在這種技術下Guest 內核須要通過修改而運行在VMM上。換句話說,虛擬化對Guest kernel是可感知的。本應在ring 0中運行的特權指令/操做已經被VMM提供的hypercalls所替代。hypercalls調用VMM執行本來由Guest OS完成的工做。因爲Guest kernel有能力經過hypercalls直接與VMM進行通訊,所以與全虛擬化相比,這種技術的有更大的性能優點。然而這須要Guest kernel進行定製化以感知半虛擬化技術,須要軟件支持。

硬件輔助虛擬化

Intel和AMD意識到x86架構(這本書的範圍僅限於x86體系結構中,咱們將主要討論這個架構的演變)全虛擬化和半虛擬化的主要挑戰是性能開銷問題和虛擬化解決方案在設計與維護上的複雜性。Intel和AMD各自獨立地建立了新的x86架構的處理器擴展,分別稱爲Intel VT-x和AMD-v。在Itanium架構上,硬件輔助虛擬化稱爲VT-i。硬件輔助虛擬化是一種平臺虛擬化技術,旨在有效地利用硬件功能執行全虛擬化。不一樣的廠商對此技術有不一樣的命名,包括虛擬化加速、硬件虛擬機和原生虛擬化。

爲了更好地支持虛擬化,Intel和AMD分別引入了虛擬化技術(VT)和安全虛擬機(SVM),做爲IA-32指令集的擴展。這些擴展容許VMM/hypervisor能夠在較低的ring中,運行本來須要運行在內核模式下的Guest OS。硬件輔助虛擬化不只提出了新的指令,還引入了一個新的特權訪問級別ring -1,用以運行hypervisor/VMM,所以Guest OS能夠在運行在ring 0。此外,在硬件輔助虛擬化下,VMM/hypervisor與前面提到的其餘技術相比能夠執行更少的工做,從而下降了性能開銷。

簡單來講,這種虛擬化感知的硬件提供了構建VMM的支持,並確保了客戶操做系統的隔離。這有助於實現更好的性能,並避免了虛擬化解決方案設計上的複雜性。現代虛擬化技術利用這個特性提供虛擬化。一個例子是KVM,咱們將在本書的範圍內詳細討論它。

介紹VMM/hypervisor

顧名思義,VMM或hypervisor是負責監視和控制VM或Guest OS的軟件。hypervisor/VMM負責確保不一樣的虛擬化管理任務,例如提供虛擬硬件、VM生命週期管理、VM遷移、實時分配資源、定義虛擬機管理策略等。VMM/hypervisor還負責有效地控制物理平臺資源,例如內存轉換和I / O映射。虛擬化軟件的主要優勢之一是它可以在同一物理系統或硬件上的運行多個客戶機。多個客戶機系統能夠在相同的操做系統或不一樣的操做系統上。例如,能夠有多個Linux Guest OS做爲客戶機運行在同一物理系統上。VMM負責分配這些Guest OS請求的資源。系統硬件(如處理器、內存等)必須根據它們的配置分配給這些客戶操做系統,VMM負責處理這個任務。所以,VMM是虛擬化環境中的一個關鍵組件。

根據VMM/hypervisor的位置,能夠被歸類爲type 1或type 2型。

Type 1型和Type 2型hypervisor

hypervisor主要被歸類爲Type 1和Type 2型(基於它們駐留在系統中的位置)。可是對於Type 1和Type 2型hypervisor並無明確或標準的定義。若是VMM/hypervisor直接運行在硬件之上,它一般被認爲是一個Type 1的hypervisor。若是有一個操做系統存在,VMM/hypervisor做爲一個單獨的層運行,它將被認爲是一個Type 2 hypervisor。再一次申明,這個概念是開放的,沒有標準的定義。

Type 1型的hypervisor直接與系統硬件交互;它不須要任何主機操做系統。您能夠直接將其安裝在裸金屬系統上,用以運行虛擬機。類型1的管理程序也稱爲裸金屬、嵌入式或原生hypervisor。

oVirt-node是Type 1型的Linux hypervisor的例子。下圖提供對Type 1型hypervisor設計概念圖:

如下是Type 1型hypervisor的優勢:

  • 易於安裝配置
  • 體積小,優化以將大部分物理資源提供給託管客戶機(虛擬機)
  • 開銷小,由於它只涉及了運行虛擬機所需的應用程序
  • 更安全,由於某個Guest OS的問題不會影響運行在Hypervisor上的其餘Guest OS

然而,Type 1 hypervisor不支持自定義。通常狀況下,您不能安裝任何第三方應用程序或驅動程序。

另外一方面,Type 2 hypervisor駐留在操做系統之上,容許您進行大量的自定義。Type 2 hypervisor也被稱爲hosted hypervisor。Type 2 hypervisor依賴於主機操做系統的操做。Type 2 hypervisor的主要優勢是普遍的硬件支持,由於它由底層主機操做系統控制硬件訪問。下面的圖提供了Type 2 hypervisor設計概念的說明:

決定使用哪一類hypervisor主要取決於您在何處部署虛擬化的基礎設施。

還有一點是,與Type 2 hypervisor相比,Type 1 hypervisor執行性能更好,由於它們直接運行在硬件之上。沒有對Type 1和Type 2 hypervisor的正式定義,評估性能沒有多大意義。

開源虛擬化項目

下表列出了Linux中的開源虛擬化項目:

 Project Virtualization Type  Project URL 
 KVM (Kernel-based Virtual Machine)  Full virtualizatio  http://www.linux-kvm.org/
 VirtualBox Full virtualizatio   https://www.virtualbox.org/
 Xen Full and paravirtualization  http://www.xenproject.org/
 Lguest  Paravirtualization  http://lguest.ozlabs.org/
 UML (User Mode Linux)     http://user-mode-linux.sourceforge.net/
 Linux-VServer    http://www.linux-vserver.org/Welcome_to_Linux-VServer.org

在接下來的部分中,咱們將討論Xen和KVM,這是Linux中領先的開源虛擬化解決方案。

XEN

Xen起源於劍橋大學的一個研究項目,初版在2003年正式對外發布。以後,劍橋大學負責這個項目的主管,Lan Pratt,與另一位來自劍橋大學的Simon Crosby合做創辦了公司XenSource。這家公司開始以開源的方式開發這個項目。在2013年4月15日,Xen做爲一個協做項目被移入Linux基金會。Linux基金會爲Xen項目推出了一個新商標,以區分該項目與舊Xen商標的任何商業用途。更多細節能夠在xenproject.org網站找到。

Xen hypervisor已經移植到一些處理器家族中,例如,Intel IA-32/64,x86_64,PowerPC,ARM,MIPS等等。

Xen能夠在半虛擬化和硬件輔助或全虛擬化(HVM)上運行,HVM容許運行未經修改的Guest。Xen hypervisor運行Guest OS的組件稱爲Domains。在XEN中主要有兩種類型的Domains:

  • Dom 0
  • Dom U

Dom U是無特權域或客戶系統(guest system)。Dom 0也被稱爲特權域或特殊客戶(special guest),具備擴展功能。Dom U由Dom 0管理。Dom 0包含系統中全部設備的驅動程序。Dom 0還包含一個控制堆棧來管理虛擬機的建立、銷燬和配置。Dom 0還具備直接訪問硬件的特權;它能夠處理對系統I/O功能的全部訪問,並能夠與其餘虛擬機進行交互。Dom 0設置Dom Us,使用虛擬驅動與硬件設備通訊。Dom 0對外提供控制接口,能夠經過該接口控制整個系統。Dom 0是系統啓動的第一個VM,是Xen hypervisor的必備域。

KVM簡介

基於內核的虛擬機(KVM)表明了最新的開源虛擬化技術。這個項目的目標是建立一個現代化的hypervisor,它創建在前幾代技術的經驗之上,並利用當今可用的現代硬件技術(VT-x,AMD-v)。

當您安裝了KVM內核模塊,KVM輕鬆的將Linux內核轉換爲一個hypervisor。儘管如此,因爲hypervisor是一個標準的Linux內核,使得它能夠從標準內核的更新中受益(內存支持,調度等)。對這些Linux組件的優化(如3.1內核中的新調度器)不只讓hypervisor從中受益,也有利於Linux Guest OS。在I/O仿真方面,KVM使用了一個用戶態軟件QEMU;Qemu是一個負責硬件仿真的用戶程序。

它負責模擬處理器和一長串外圍設備:磁盤、網絡、VGA、PCI、USB、串口/並行端口等,從而構建一個完整的虛擬硬件,能夠安裝Guest OS,並經過KVM的支持變得更增強大。

KVM的高級概述

下圖給出了KVM的用戶模式和內核模式組件的高級概述:

 

在系統管理實用程序(如virsh和virt-manager)的請求下,libvirtd爲每一個虛擬機啓動了一個單獨的qemu-kvm進程。虛擬機的屬性(cpu數量、內存大小、I/O設備配置)是在單獨的XML文件中定義的,這些文件位於/etc/libvirt/qemu目錄中,libvirtd使用這些XML文件的詳細信息來傳遞給qemu-kvm進程的參數列表。舉例:

qemu     14644  9.8  6.8 6138068 1078400 ?     Sl   03:14  97:29 /usr/bin/qemu-system-x86_64 -machine accel=kvm -name guest1 -S -machine pc--m 5000 -realtime mlock=off -smp 4,sockets=4,cores=1,threads=1 -uuid 7a615914-ea0d-7dab-e709-0533c00b921f -no-user-config -nodefaults -chardev socket,id=charmonitor-drive file=/dev/vms/hypervisor2,if=none,id=drive-virtio-disk0,format=raw,cache=none,aio=native -device id=net0,mac=52:54:00:5d:be:06

在此處,相似於-m 5000的一個參數爲虛擬機指定了5GB的內存,--smp=4指定了4個vCPU,它的拓撲結構爲四個vSocket,每一個Socket有一個核心。

關於libvirt和qemu是什麼以及它們是如何相互通訊的詳細內容,將在第2章中進行了解釋。

 在雲計算中Linux虛擬化能夠提供什麼

 多年來,Linux已經成爲開發雲計算方案的首選。許多成功的公共雲提供商使用Linux虛擬化來爲底層基礎設施提供助力。例如,亞馬遜(Amazon)是最大的IaaS雲提供商,它使用Xen虛擬化來爲其EC2提供動力,一樣KVM爲Digital Ocean的發展提供了助力。Digital Ocean是世界上第三大雲供應商。Linux虛擬化一樣也在私有云領域佔據主導地位。

如下是使用Linux虛擬化構建IaaS軟件的開源雲軟件的列表:

  • Openstack:一個徹底開源的雲操做系統,它由幾個開放源碼子項目組成,這些子項目提供了全部的組件來建立IaaS雲。KVM(Linux虛擬化)是OpenStack部署中使用最多的(也是支持最好的)hypervisor。它是由供應商無關的OpenStack基金會管理的。在第六章,虛擬機生命週期管理和第7章,模板和快照中,詳細解釋瞭如何使用KVM構建OpenStack雲。
  • Cloudstack:這是另外一個開放源碼的Apache Software Foundation(Apache軟件基金會,ASF)控制的雲項目,以構建和管理高度可伸縮的多租戶IaaS雲,它徹底兼容EC2/S3 API。儘管它支持全部頂級Linux hypervisor。大多數Cloudstack用戶選擇Xen,由於它與Cloudstack緊密地集成在一塊兒。
  • Eucalyptus:這是一個兼容aws的私有云軟件,用於下降公共雲成本,並得到對安全性和性能的控制。它支持Xen和KVM做爲計算資源提供者。

概要

在本章中,您瞭解了Linux虛擬化、它的優勢以及不一樣類型的虛擬化方法。咱們還討論了hypervisor的類型,而後介紹了Xen和KVM的高級架構,以及流行的開源Linux虛擬化技術。

在下一章中,咱們將討論libvirt、qemu和KVM的內部工做機理,並瞭解這些組件如何相互通訊以實現虛擬化。

相關文章
相關標籤/搜索