摘要
Xen 可以在一部實體電腦上執行多個 Linux 系統。不同系統的硬體會以虛擬模式提供。本章將提供這項技術的可能性和限制性的說明。整個介紹會包括安裝、設定和執行 Xen。
虛擬機器通常需要模擬系統所需的硬體。缺點是模擬硬體會比實際硬體跑得慢。Xen 的實作方法不同。它限制模擬元件的數量到最小。若要達成這個目標,Xen 使用超虛擬。這項技術和虛擬機器很像,但是基本的硬體不同。所以,主機和外來作業系統會適用核心層級。使用者空間保持不變。Xen 使用 Hypervisor 和控制外來系統 (同時也稱作 domain-0) 控制硬體。這些提供虛擬區塊和網路裝置的所有需要。外來系統會使用這些虛擬區塊和網路裝置執行系統,且會連結到其他外來系統或本地網路。執行 Xen 的多個實體電腦會被設定成可用虛擬區塊和網路裝置,所以也可在執行時,將外來系統從一個硬體轉移到另一個。Xen 原來的開發目的是在一台電腦上執行最多 100 個外來系統,但是這個數量會根據執行外來系統的系統需求 (尤其是記憶體消耗) 而不同。
若要限制 CPU 的使用,Xen Hypervisor 提供三種不同的排程器。您也可在執行外來系統時,變更排程器,以變更執行中外來系統的優先順序。更高層級的做法,就是轉移外來系統,使其也可用來調整可用 CPU 電力。
Xen 圖形化系統對於支援的硬體也有某些缺點:
多個閉鎖來源驅動程式,如 Nvidia 或 ATI 無法正常運作。這些案例中,如果可能,您必須使用開放原始碼驅動程式,即使他們無法支援晶片的完整功能。使用 Xen 時,也無法支援某些 WLAN 晶片和 CardBus 橋接器。
在第二版,Xen 不支援 PAE (實體位址延伸),這代表它不支援超過 4 GB 的記憶體。
它也不支援 ACPI。仰賴 ACPI 的電源管理和其他模式就無法正常運作。
安裝 Xen 的過程包含設定 domain-0 領域和安裝 Xen 用戶端。首先,請確認已安裝需要的套件。這些是 python、bridge-utils、xen 和 kernel-xen 套件。使用 SUSE 套件時,Xen 會被新增到 GRUB 組態。其他的案例中,在 boot/grub/menu.lst 建立項目。項目必須和下列類似:
title Xen2
kernel (hd0,0)/boot/xen.gz dom0_mem=458752
module (hd0,0)/boot/vmlinuz-xen <parameters>
module (hd0,0)/boot/initrd-xen
使用包含 /boot 目錄的分割區取代 (hd0,0)。請參閱 章 29,
開機載入器。變更 dom0_mem 的數量以符合您的系統。系統記憶體的最大值是 -65536 kB。使用正常啟動的 Linux 核心取代 <parameters>。然後重新以 Xen 模式開機。這將會以 Xen Hypervisor 啟動,並小幅變更 Linux 核心為執行多數硬體的 Domain-0。除了已提過的例外,其他應該都可正常運作。