您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關如何理解虛擬化及云計算的相關知識,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
OpenStack是云操作系統,要學習OpenStack,首先需要掌握一些虛擬化和云計算的相關知識。
虛擬化
虛擬化是云計算的基礎。簡單的說,虛擬化使得在一臺物理的服務器上可以跑多臺虛擬機,虛擬機共享物理機的 CPU、內存、IO 硬件資源,但邏輯上虛擬機之間是相互隔離的。
物理機我們一般稱為宿主機(Host),宿主機上面的虛擬機稱為客戶機(Guest)。
那么 Host 是如何將自己的硬件資源虛擬化,并提供給 Guest 使用的呢?
這個主要是通過一個叫做 Hypervisor 的程序實現的。
根據 Hypervisor 的實現方式和所處的位置,虛擬化又分為兩種:
1型虛擬化和2型虛擬化
Hypervisor 直接安裝在物理機上,多個虛擬機在 Hypervisor 上運行。Hypervisor 實現方式一般是一個特殊定制的 Linux 系統。Xen 和 VMWare 的 ESXi 都屬于這個類型。
物理機上首先安裝常規的操作系統,比如 Redhat、Ubuntu 和 Windows。Hypervisor 作為 OS 上的一個程序模塊運行,并對管理虛擬機進行管理。KVM、VirtualBox 和 VMWare Workstation 都屬于這個類型。
理論上講:
1型虛擬化一般對硬件虛擬化功能進行了特別優化,性能上比2型要高;
2型虛擬化因為基于普通的操作系統,會比較靈活,比如支持虛擬機嵌套。嵌套意味著可以在KVM虛擬機中再運行KVM。
KVM
下面重點介紹KVM這種2型虛擬化技術。
在 x86 平臺上最熱門運用最廣泛的虛擬化方案莫過于 KVM 了。OpenStack 對 KVM 支持得也最好,我們的教程也理所當然選擇 KVM 作為 實驗環境的 Hypervisor。
KVM 全稱是 Kernel-Based Virtual Machine。也就是說 KVM 是基于 Linux 內核實現的。
KVM有一個內核模塊叫 kvm.ko,只用于管理虛擬 CPU 和內存。
那 IO 的虛擬化,比如存儲和網絡設備由誰實現呢?
這個就交給 Linux 內核和Qemu來實現。
說白了,作為一個 Hypervisor,KVM 本身只關注虛擬機調度和內存管理這兩個方面。IO 外設的任務交給 Linux 內核和 Qemu。
大家在網上看 KVM 相關文章的時候肯定經常會看到 Libvirt 這個東西。
Libvirt 是啥
簡單說就是 KVM 的管理工具。
其實,Libvirt 除了能管理 KVM 這種 Hypervisor,還能管理 Xen,VirtualBox 等。
OpenStack 底層也使用 Libvirt,所以很有必要學習一下。
Libvirt 包含 3 個東西:后臺 daemon 程序 libvirtd、API 庫和命令行工具 virsh
libvirtd是服務程序,接收和處理 API 請求;
API 庫使得其他人可以開發基于 Libvirt 的高級工具,比如 virt-manager,這是個圖形化的 KVM 管理工具,后面我們也會介紹;
virsh 是我們經常要用的 KVM 命令行工具,后面會有使用的示例。
作為 KVM 和 OpenStack 的實施人員,virsh 和 virt-manager 是一定要會用的。
關于如何理解虛擬化及云計算的相關知識就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。