Xen 作為經典 Type-1 虛擬化管理程式,雖然在企業級生產環境逐漸被 KVM/VMware 取代,但在嵌入式、邊緣計算、舊版 Linux 維護、教學實驗等場景仍有應用。本文基於 CentOS 5/6 時代經驗,梳理 Xen 內核與工具安裝 → 虛擬磁碟準備 → virt-install 無人值守安裝 → 網路模式 (橋接/路由/NAT) 配置 → VNC 圖形化管理 → 常用 xm/xl 命令 全流程,供歷史環境維護與學習參考。
# CentOS 5/6 (yum 來源需配置 vault.centos.org 或 EPEL)
yum -y install kernel-xen kernel-xen-devel xen
# 啟動 xend 守護進程 (舊版 Xen 3/4 使用 xend,新版 4.1+ 使用 xl + xenstored/xenconsoled)
/etc/init.d/xend start
# 可選:圖形化管理工具
yum -y install virt-manager
注意:現代發行版 (CentOS 7+/RHEL 7+) 已移除 Xen 內核套件,改用 KVM。若需 Xen,請使用 XCP-ng、Citrix Hypervisor 或 Debian/Ubuntu (支援 Xen 至今)。
# 建立 10GB 稀疏映像 (實際佔用空間按需增長)
dd if=/dev/zero of=/var/lib/xen/images/centos5.img bs=1M count=10000
# 建立 1GB swap 映像
dd if=/dev/zero of=/var/lib/xen/images/swap.img bs=2k seek=512k count=1
virt-install \
-n centosvm \
-r 512 \
-f /var/lib/xen/images/centos5.img \
-l https://mirrors.163.com/centos/5.7/os/i386/ \
--network=network:default \
-p \
-s 10 \
--nographics \
--vcpus=2
-n:虛擬機名稱。-r:記憶體 (MB)。-f:磁碟映像路徑。-l:安裝源 (HTTP/FTP/NFS)。--network:網路模式 (default=NAT)。-p:半虛擬化 (PV) 模式。-s:磁碟大小 (GB),此處為稀疏映像預留。--nographics:文本模式安裝 (串列主控台)。--vcpus:虛擬 CPU 數。# 安裝 VNC 服務端
yum -y install vnc-server
# 設定 VNC 密碼
vncpasswd
# 啟動 VNC (顯示器 :1)
vncserver :1
# 客戶端連線: <宿主機IP>:1 (5901 埠)
若使用 virt-manager,可直接在圖形界面創建/管理 VM,無需命令行。
編輯 /etc/xen/xend-config.sxp:
(network-script network-bridge)
(vif-script vif-bridge)
# (network-script network-route)
# (vif-script vif-route)
# 註釋橋接
# (network-script network-bridge)
# (vif-script vif-bridge)
# 啟用路由
(network-script network-route)
(vif-script vif-route)
ip_forward + iptables MASQUERADE。/etc/init.d/xend restart
/etc/init.d/libvirtd start # virt-manager 需此服務
| 操作 | xm (舊版) | xl (新版 4.1+) | 說明 |
|---|---|---|---|
| 列出 VM | xm list | xl list | 顯示名稱、ID、記憶體、狀態 |
| 進入主控台 | xm console <Name> | xl console <Name> | 串列主控台,Ctrl+] 退出 |
| 啟動 VM | xm create <Config> | xl create <Config> | 依配置檔創建/啟動 |
| 關機 | xm shutdown <Name> | xl shutdown <Name> | 優雅關機 (ACPI 信號) |
| 重啟 | xm reboot <Name> | xl reboot <Name> | |
| 強制銷毀 | xm destroy <Name> | xl destroy <Name> | 相當於拔電,慎用 |
| 資源監控 | xentop | xl top | 類似 top,顯示各 VM CPU/記憶體佔用 |
| 遷移 | xm migrate <Name> <Host> | xl migrate <Name> <Host> | 實時遷移 (需共享存儲) |
| 問題 | 原因 | 解決 |
|---|---|---|
| VM 無法上網 | 橋接模式下物理 NIC 未加入橋面 / 防火牆阻斷 | brctl show 檢查橋面成員;iptables -F 測試 |
| 安裝卡在 "Probing storage devices" | 半虛擬化驅動缺失 / ISO 來源不可達 | 確認安裝源 URL 可訪問;嘗試全虛擬化 (HVM) 模式 -v |
| VNC 連線黑屏 | 顯示器編號錯誤 / 防火牆阻斷 5900+ 埠 | vncserver -list 確認顯示器;開放埠 |
| xend 啟動失敗 | Python 版本不匹配 / 配置檔語法錯誤 | 檢查 /var/log/xen/xend.log;Xen 4.1+ 建議直接用 xl + systemd |
Xen 承載了虛雲計算早期的輝煌,雖不再是主流選擇,但其「微內核、驅動域隔離、半虛擬化」設計思想深刻影響了後續虛擬化技術演進。維護舊環境時,掌握 xm/xl、xend-config.sxp、橋接/路由切換、virt-install 無人值守安裝等核心技能,仍能游刃有餘。