當我們在做 RHEL 5 的虛擬化時 Virtual machine 要選 PV 還是 FV,一般來說如果你用的 Host 是 RHEL5 那 PV Guest OS 一定可以用 RHEL5 那其他版本可以嗎??RHEL 5 支援哪一些 Guest 是 PV 還是只能選擇效能較差的 FV.我們可以先上 RedHat 官方網站 (http://www.redhat.com/rhel/server/advanced/virt.html) 他列出了目前支援的列表可以依據此表格來參考,至少不用自己試半天還搞錯了模式!不過很可惜的是他隻字片語沒有提到 SuSE Linux,不像是 VMware 或是 Xen Source 都有支援 RedHat 和 SuSE.
PV(Paravirtualized):
為什麼在一般 x86 系統下沒有辦法做虛擬化,大部分的原因是不能虛擬化的指令(nonvirtualizable instructions)必須直接在 Ring 0 執行.但是 Paravirtualization 使用了另一種方式,修改虛擬化作業系統(Guest OS)的核心,讓虛擬的作業系統(Guest OS)可以直接將不能虛擬化的指令(nonvirtualizable instructions)自動轉換成 VMM 可以執行的指令(hypercall),再由 VMM 去向硬體提出請求.所以像是(Windows 2000/XP)不能去修改它的核心(Microsoft 也不願意讓別人來修改它的核心),所以無緣使用 Paravirtualization.而所謂的 hypercall 就像是 OS kernel 的 syscall 只不過 hypercall 是針對 hypvisor(VMM)的.
FV(Fully Virtualized):
在沒有 VT 的時代 VMM 是直接載入在 Ring 0 裡面,Dom0 的 kernel 則是被放在 Ring1(Dom0 是第一個在 Xen 底下運行的虛擬機器).後來產生出的 DomU 也是存放在 Ring1(需為 Para-Virtualized,沒有 VT 的支援 Xen 不支援 full-Virtualized).不過一般的 AP 還是運行在 Ring 3.也正因為如此 Para-Mode 的 Guest OS 必須知道 VMM 的存在.此時是不支援 Full-Mode 的.後來有了 VT 這一項技術.VMM 和Guest OS(Para/Full-Mode)都可以直接執行在 Ring0 運行.不過 VMM 是存在比 Guest OS 還要低的一層.Root Mode Privilege Levels.不能虛擬化的指令(nonvirtualizable instructions)會自動被 hypervisor 截取不需要再經過 binary translation 或 paravirtualization 的模式轉換.
如果你在建立 virtual machine 遇到不能建立 FV(Fully Virtualized),首先檢查系統的 CPU 是否有支援,目前有支援的 CPU 包括了 AMD-V Pacifica (Flag 是 svm) ,Intel VT (flag 是 vmx) ,再來檢查 BIOS 對於 CPU virtualization 是否有支援.
列表說明:
PV | Para-Virtualized: 需要修改作業系統的核心才能支援. |
FV | Fully-Virtualized: 核心不需修改但是需要有硬體(CPU) 的支援 – Intel VT 或者 AMD-V. |
Optimized | 支援 PV 而且 Guest OS kernel / driver 已經做過最佳化. |
Supported | 支援 PV 但 Guest OS kernel / driver 並不是最佳化的支援. |
Unsupported | 不支援這個 Guest OS 不一定能安裝 |
N/A | 不支援這種組合. |
Tech Preview | 技術上支援但還沒有正式經過驗證.. |
轉貼於 http://www.redhat.com/rhel/server/advanced/virt.html
Red Hat Enterprise Linux 5.2 Virtualization Guest Matrix | |||
Kernel & Processor Architecture | |||
Guest Operating System |
Enterprise Linux 5 x86-64 |
Enterprise Linux 5 x86-32 (PAE) |
Enterprise Linux 5 IA64 |
Supported Enterprise Linux Combinations | |||
Red Hat Enterprise Linux 3 x86-64 FV | Optimized | N/A | N/A |
Red Hat Enterprise Linux 3 x86-32 FV | Optimized | Optimized | N/A |
Red Hat Enterprise Linux 3 IA64 FV | N/A | N/A | N/A |
Red Hat Enterprise Linux 4 x86-64 PV | Optimized | N/A | N/A |
Red Hat Enterprise Linux 4 x86-64 FV | Optimized | N/A | N/A |
Red Hat Enterprise Linux 4 x86-32 PV | Tech Preview1 | Optimized | N/A |
Red Hat Enterprise Linux 4 x86-32 FV | Optimized | Optimized | N/A |
Red Hat Enterprise Linux 4 IA64 PV | N/A | N/A | N/A |
Red Hat Enterprise Linux 4 IA64 FV | N/A | N/A | Supported |
Red Hat Enterprise Linux 5 x86-64 PV | Optimized | N/A | N/A |
Red Hat Enterprise Linux 5 x86-64 FV | Optimized | N/A | N/A |
Red Hat Enterprise Linux 5 x86-32 PV | Tech Preview1 | Optimized | N/A |
Red Hat Enterprise Linux 5 x86-32 FV | Optimized | Optimized | N/A |
Red Hat Enterprise Linux 5 IA64 PV | N/A | N/A | Optimized |
Red Hat Enterprise Linux 5 IA64 FV | N/A | N/A | Supported |
Supported 3rd Party Operating Systems | |||
Windows Server 2000 32-Bit | Supported2 | Supported2 | N/A |
Windows Server 2000 64-Bit | Unsupported3 | N/A | N/A |
Windows Server 2000 IA64 | N/A | N/A | Supported |
Windows Server 2003 32-Bit | Supported2 | Supported2 | N/A |
Windows Server 2003 64-Bit | Unsupported3 | N/A | N/A |
Windows Server 2003 IA64 | N/A | N/A | Supported |
Windows XP 32-Bit | Supported2 | Supported2 | N/A |
Windows XP 64-Bit | Unsupported3 | N/A | N/A |
Windows Vista 32-Bit | Supported2 | Supported2 | N/A |
Windows Vista 64-Bit | Supported2 | N/A | N/A |
One thought on “RHEL5 XEN – PV 還是 FV”