我有一台运行 xen(仅使用 xen-tools)的 Ubuntu 服务器,当服务器遇到电源故障时,我必须手动运行xl create /etc/xen/MY_DOMU_GUEST.cfg
以重新启动虚拟机。
我的重新启动配置设置如下:
/etc/xen/MY_DOMU_GUEST.cfg
:
on_poweroff = 'restart'
on_reboot = 'restart'
on_crash = 'restart'
但它无法在 dom0 启动时启动。我是不是漏掉了什么?
答案1
我在这里找到了答案:https://askubuntu.com/questions/196444/how-do-i-auto-start-xen-guests-on-boot/906499#906499
简短答案
要在启动时加载所有配置文件,请将auto
文件夹直接链接到/etc/xen
:
ln -s /etc/xen/ /etc/xen/auto
要仅加载特定的配置文件,请单独链接每个文件:
mkdir -p /etc/xen/auto
ln -s /etc/xen/MY_DOMU_GUEST_1.cfg /etc/xen/auto/
ln -s /etc/xen/MY_DOMU_GUEST_2.cfg /etc/xen/auto/
解释
有一个鲜为人知的xen
配置文件/etc/default/xendomains
。
您可以在注释文档中找到三个默认设置:
XENDOMAINS_SAVE=/var/lib/xen/save
XENDOMAINS_RESTORE=true
XENDOMAINS_AUTO=/etc/xen/auto
总结一下文档:
XENDOMAINS_SAVE
导致虚拟机被保存在适当的位置reboot
。XENDOMAINS_RESTORE
导致虚拟机在保存时从保存状态恢复(无论是手动保存xl save
还是由于主机重启而保存)。XENDOMAINS_AUTO
XENDOMAINS_SAVE
指定当不存在保存状态(即已禁用或发生电源故障或明确shutdown
而不是reboot
)时从中加载虚拟机配置的文件夹
如果您auto
在其下创建文件夹/etc/xen
并为其提供指向您想要在物理机(Dom0 主机)上启动的虚拟机(DomU 客户机)的配置文件的符号链接,那么一般来说,它们将从物理(主机)服务器重启时保存的状态恢复,但是当该状态不可用时(例如在关机或断电或崩溃后),它们仍然会加载。
如果您希望虚拟机在重启时始终关闭而不是保存状态,您可以设置XENDOMAINS_SAVE=
和XENDOMAINS_RESTORE=false
。
旧方法
过去,现在有on_shutdown
,,on_reboot
并且on_crash
您还可以配置on_xend_start = 'start'
和
on_xend_stop = 'shutdown'
...但这些不是当前的做法。
当前(适用于虚拟机状态本身):
on_shutdown = 'destroy'
on_reboot = 'restart'
on_crash = 'restart'
忽略/弃用(适用于主机状态):
on_xend_start = 'start'
on_xend_stop = 'shutdown'
答案2
我知道这是旧帖子,但有一种更简单的方法。
创建脚本MyScripNameHere.sh,在此脚本中添加如下语法,并添加适当的权限以root身份执行。
/bin/bash #!/bin/bash
导出 PATH=/opt/xensource/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr
睡眠 60
xe vm-start vm="VMNAMEHERE1"
睡 5
xe vm-start vm="VMNAMEHERE2"
然后在 rc.local 中添加脚本路径,但在执行之前添加 sleep 60 这将自动启动脚本列表中的所有 VM。如果您不想处理 UUID 或池,则可以使用此选项。