從 xend 轉移至 libxl
xend 與 libxl
xend 是一個長駐程式,以 python 寫成,用來管理 Xen 區域。由 Xen 4.1 起,一個名為 libxl 的代替品的工作展開了。libxl 較 xend 有下列優勢:
- 它是一個擁有明確 IDL 連結的程式庫,方便其他高階程式進行連結
- 它擁有一套穩定的 API,確保能反向兼容現有程式
- 它擁有明確的事件模型,令並行操作成為可行。
管理員可透過 xm 這個指令行工具向 xend 發出命令。它已被 xl,一個連結到 libxl 的工具所取代。
由 Xen 4.2 起 libxl/xl 已成為首選的工具堆疊。時至 4.5,xend 已被移離源碼樹。因此 Xen 4.4(Xen4CentOS 的現有版本)是最後一個包含 xend 的發行版本。用戶應該儘快過渡至 libxl/xl。
從 xm 轉移至 xl
xl 被設計成與 xm 在指令行上兼容。大多數情況下,你應該能套用 xl 在現有的 xm 設定檔及指令,例如:
xl create vm.cfg xl list xl shutdown vm
xen 計劃的 xl wiki 頁記載了少數的例外。值得注意的例外有:
有別於 xm,xl 不能剖析設定檔內的 python 程式碼。
xl 不支援「受管理區域」。如果你需要這類功能,請採用 libvirt 等較高階的工具。
任何 xm 功能,只要沒有被上述網頁列為「非功能」便應該獲 xl 支援。要是你發現某個 xm 功能無法運作,但不在該清單上,請匯報到 centos-virt 或 xen-user 郵件列表,好讓能作出修正。
若要採用 xl/libxl,你只需停用 xend:
chkconfig xend off service xend stop
從 libvirt 和 xend 轉移至 libvirt 和 libxl
當 libvirt 的長駐程式 libvirtd 啟動時,它會自動判斷採用 xend 抑或 libxl。
可惜由於驅動程式在實施上的差異,你不能純綷透過停用 xend 及啟用 libvirtd 來進行轉移。你必須以手動方式把虛擬電腦的設定檔從 xend 轉移至 libxl
幸好這樣做並不難。首先,請匯出每台虛擬電腦的 libvirt xml 設定檔:
virsh shutdown ${vmname} virsh dumpxml ${vmname} > ${vmname}.xml
然後停止 xend 並重新啟用 libvirtd(好讓它轉用 libxl):
chkconfig xend off service xend stop service libvirtd restart
最後,為每個區域匯入 libvirt xml 設定檔:
virsh define ${vmname}.xml
libvirt/xend 支援的多數功能在 libvirt/libxl 下都應該能正常運作。如果你發現無法運作的功能,請匯報到 centos-virt 或 xen-user 郵件列表。
Translation of revision 3