章 17. 使用 Xen 的虛擬系統

內容目錄

17.1. Xen 安裝
17.2. 領域安裝
17.3. 使用 xm 啟動和控制 Xen 領域
17.4. 疑難排解
17.5. 更多資訊

摘要

Xen 可以在一部實體電腦上執行多個 Linux 系統。不同系統的硬體會以虛擬模式提供。本章將提供這項技術的可能性和限制性的說明。本文件會分幾節內容來簡介關於 Xen 的安裝、設定和執行。

虛擬機器通常需要模擬系統所需的硬體。執行上的缺點是模擬硬體會比實際硬體跑得慢。Xen 的實作方法不同。它會盡量限制模擬元件使用最少數量。為了達成這個目標,Xen 使用超虛擬技術。這項技術和虛擬機器很像,但是基本的硬體不同。這樣一來,主機和外來作業系統都會適應核心層級。而使用者空間保持不變。Xen 會使用 Hypervisor 和控制外來系統 (同時也稱作 Domain-0) 來控制硬體。這些技術可符合虛擬區塊和網路裝置的所有需要。外來系統會使用這些虛擬區塊和網路裝置執行系統,而且會連結到其他外來系統或本地網路。執行 Xen 的多個實體電腦會被設定成可用虛擬區塊和網路裝置,所以也可在執行時將外來系統從一個硬體轉移到另一個。Xen 原來的開發目的是在一台電腦上執行最多 100 個外來系統,但是這個數量會根據執行外來系統的系統需求 (尤其是記憶體消耗) 而有所差異。

為了限制 CPU 的使用,Xen Hypervisor 提供了三種不同的排程器。排程器也可在執行外來系統時變更,以變更執行中外來系統的優先順序。更高層級的做法就是轉移外來系統,使其同時用來調整可用 CPU 電力。

Xen 虛擬系統對於支援的硬體也有某些缺點。例如 Nvidia 或 ATI 等幾個閉鎖來源驅動程式,無法如預期般正常運作。在這種情況中,您必須使用開放原始碼驅動程式 (若可用的話),即使他們無法支援晶片的完整功能。某些 WLAN 晶片和 CardBus 橋接器在使用 Xen 時也無法提供支援。版本 2 的 Xen 不支援 PAE (實體位址延伸),這代表它不支援超過 4 GB 的記憶體。不支援 ACPI。因此仰賴 ACPI 的電源管理和其他模式就無法正常運作。Xen 的另外一項限制,就是它目前無法只為區塊設備進行開機。如果要進行開機,它必須在 Domain-0 中設置正確核心以及可用的 initrd。

圖形 17.1. Xen 概觀

Xen 概觀

17.1. Xen 安裝

安裝 Xen 的過程包含設定 Domain-0 領域和安裝 Xen 外來系統。首先,請確認已安裝需要的套件。這些套件分別是 pythonbridge-utilsxenxen-toolsxen-tools-ioemukernel-xen 套件。在安裝期間選擇 Xen,就可將 Xen 新增到 GRUB 組態。如果是其他情況下,就要在 boot/grub/menu.lst 建立項目。這個項目應該很類似下面所示:

title Xen3
    kernel (hd0,0)/boot/xen.gz
    module (hd0,0)/boot/vmlinuz-xen <parameters>
    module (hd0,0)/boot/initrd-xen

將 (hd0,0) 取代成包含 /boot 目錄的分割區。另請參閱章 9, 開機載入器。將 <parameters> 取代成一般用來啟動 Linux 核心的參數。然後重新以 Xen 模式開機。這時將會以 Xen Hypervisor 啟動,並小幅變更 Linux 核心為執行多數硬體的 Domain-0。除了已提過的例外,其他項目應該都可正常運作。