5.3. Starting virtual machines automatically when the host starts
When a host with a running virtual machine (VM) restarts, the VM is shut down, and must be started again manually by default. To ensure a VM is active whenever its host is running, you can configure the VM to be started automatically.
Prerequisites
Procedure
Use the
virsh autostartutility to configure the VM to start automatically when the host starts.For example, the following command configures the demo-guest1 VM to start automatically.
# virsh autostart demo-guest1 Domain 'demo-guest1' marked as autostartedIf you use network interfaces that are not managed by
libvirt, you must also make additional changes to the systemd configuration. Otherwise, the affected VMs might fail to start.注意These interfaces include for example:
-
Bridge devices created by
NetworkManager -
Networks configured to use
<forward mode='bridge'/>
In the systemd configuration directory tree, create a
virtqemud.service.ddirectory if it does not exist yet.# mkdir -p /etc/systemd/system/virtqemud.service.d/Create a
10-network-online.confsystemd unit override file in the previously created directory. The content of this file overrides the default systemd configuration for thevirtqemudservice.# touch /etc/systemd/system/virtqemud.service.d/10-network-online.confAdd the following lines to the
10-network-online.conffile. This configuration change ensures systemd starts thevirtqemudservice only after the network on the host is ready.[Unit] After=network-online.target
-
Bridge devices created by
Verification
View the VM configuration, and check that the autostart option is enabled.
For example, the following command displays basic information about the demo-guest1 VM, including the autostart option.
# 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)If you use network interfaces that are not managed by libvirt, check if the content of the
10-network-online.conffile matches the following output.$ cat /etc/systemd/system/virtqemud.service.d/10-network-online.conf [Unit] After=network-online.target