CentOS 上的虛擬化
1. 概覽
現時,CentOS 軟件庫提供了兩大虛擬化術技,它們就是 Xen 及 KVM(我們不會在這裡考慮較舊的 qemu 模擬技術)。這頁提供這些技術的簡介,及一些額外的觀念。要理解這些虛擬化術技,你必須知道虛擬化可以遁不同途徑達成。以下兩個方法與 KVM 及 Xen 有關聯:
全虛擬化: 硬件會被模擬到一個地步,讓未被更改的客端操作系統可以在虛擬化平台上運作。正常來說,這意味著各種不同硬件都須要被模擬。普遍來說,這些虛擬化平台嘗試在原生的中央處理器上盡量執行所有指令(因為這樣比虛擬處理器快很多),然後適當地攔截及處理擁有特權的指令。
某些虛擬化平台支援或須要中央處理器的延伸來協助虛擬化。有些較新的 x86 及 x86_64 中央處理器透過 VT-X(Intel)及 AMD-V(AMD)延伸來提供協助。這樣做一般稱為硬件協助虛擬化。
半虛擬化: 在半虛擬化情況下,客端操作系統需要被移植到監督器上 —— 它位於是硬件與虛擬系統之間。因於這樣做一般並不需要模擬所有設備,或利用動態編譯來攔截擁有特權的指令,半虛擬化經常以接近原生的速度進行。
在大部份情況下半虛擬化較全虛擬化更為可取,因為它比較快。
2. 誰做甚麼?
- Xen 支援半虛擬化及硬件協助的全虛擬化。不論半虛擬機器(PVM)或硬件協助的全虛擬機器(HVM)都可以同時運作。Xen 需要一個比所有 Linux 內核更早啟動的監督器。這個監督器在管理區域又名特權區域內啟動一個 CentOS,意即它可被用來啟動額外的虛擬機器,並且擁有權利存取實體的設備。這個管理系統一般名叫 dom0。其它沒有特別權限的區域可以透過 dom0 來啟動。這些沒有特權的區域一般名叫 domU。無論 dom0 或半虛擬的 domU 都必須運行 CentOS 的 Xen 內核,而不是預設的內核。
KVM 現時只支援硬件協助的全虛擬化(縱使支援半虛擬化的工作正在進行中)。KVM 是一個內核模塊,而且可以與預設(非 Xen)內核一起運作。虛擬機器是借著 qemu-kvm 這個指令,透過 /dev/kvm 而建立的。這個指令是一個被改至適用於 KVM 的 qemu 版本。
3. CentOS 支援
3.1. CentOS 4
由 CentOS 4.5 起,CentOS 4 可以透過 kernel-xen 內核作為一個 domU 系統。
3.2. CentOS 5
CentOS 5 包含了 Xen 監督器,亦可以作為一個 dom0 或 domU 的系統。CentOS 5 也收錄了 virt-install 及 virt-manager 等方便的管理工具。
- 由 CentOS 5.4(x86_64 版)開始,KVM 套件已經包含在發行版本內。
Translation of revision 9