4.3. 当主机启动时自动启动虚拟机
当一个带有运行的虚拟机(VM)的主机重启时,虚拟机将关闭,默认必须手动启动。要确保虚拟机在其主机运行时处于活跃状态,您可以将虚拟机配置为自动启动。
先决条件
流程
使用
virsh autostart
工具将虚拟机配置为在主机启动时自动启动。例如,以下命令将 demo-guest1 虚拟机配置为自动启动:
# virsh autostart demo-guest1 Domain 'demo-guest1' marked as autostarted
如果您使用不是由
libvirt
管理的网络接口,则也必须对 systemd 配置进行额外的更改。否则,受影响的虚拟机可能无法启动。注意例如,这些接口包括:
-
NetworkManager
创建的网桥设备 -
网络配置为使用
<forward mode='bridge'/>
在 systemd 配置目录树中,如果
virtqemud.service.d
目录尚不存在,则创建该目录。# mkdir -p /etc/systemd/system/virtqemud.service.d/
在之前创建的目录中创建一个
10-network-online.conf
systemd 单元覆盖文件。此文件的内容覆盖virtqemud
服务的默认 systemd 配置。# touch /etc/systemd/system/virtqemud.service.d/10-network-online.conf
将以下行添加到
10-network-online.conf
文件中:这个配置更改可确保 systemd 仅在主机上的网络就绪后启动virtqemud
服务。[Unit] After=network-online.target
-
验证
查看虚拟机配置,并检查是否启用了 autostart 选项。
例如,以下命令显示有关 demo-guest1 虚拟机的基本信息,包括 autostart 选项:
# virsh dominfo demo-guest1 Id: 2 Name: demo-guest1 UUID: e46bc81c-74e2-406e-bd7a-67042bae80d1 OS Type: hvm State: running CPU(s): 2 CPU time: 385.9s Max memory: 4194304 KiB Used memory: 4194304 KiB Persistent: yes Autostart: enable Managed save: no Security model: selinux Security DOI: 0 Security label: system_u:system_r:svirt_t:s0:c873,c919 (enforcing)
如果您使用不由 libvirt 管理的网络接口,请检查
10-network-online.conf
文件的内容是否与以下输出匹配:$ cat /etc/systemd/system/virtqemud.service.d/10-network-online.conf [Unit] After=network-online.target
其它资源
-
virsh autostart --help
命令 - 使用 web 控制台启动虚拟机。