1,193 瀏覽數

RHEL5 XEN – PV 還是 FV

當我們在做 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_fc
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 是否有支援.
CPU_not_support
列表說明:

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

網友的想法

  1. 自動參照通知: XEN – RHEL5 | Benjr.tw

發表迴響