从 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