Stuck with ‘Libvirt error: Unable to resolve address: name or service not known’? We can help you.
Often QEMU quest users end up with this error while migrating. This error message usually occurs when the source server cannot resolve to the destination IP causing the failure of migration.
Here at Bobcares, we handle QEMU guests of our customers as a part of our Server Management Service.
Today, let’s see how our Support Engineers fix this issue for our customers.
What causes ‘Libvirt error: Unable to resolve address: name or service not known’
This error message appears when QEMU guest migration fails:
# virsh migrate qemu qemu+tcp://192.168.122.12/system
error: Unable to resolve address name_of_host service '49155': Name or service not known
For example, if the destination hostname is Arizona, the error message appears as:
# virsh migrate qemu qemu+tcp://192.168.122.12/system
error: Unable to resolve address 'arizona' service '49155': Name or service not known
However, this error looks strange as we did not use the Arizona host name anywhere.
Cause for this error:
This can happen if DNS is not properly configured or /etc/hosts has the hostname associated with the local loopback address (127.0.0.1).
How to fix ‘Libvirt error: Unable to resolve address: name or service not known’
1. To fix this error we need to configure DNS correctly so that all hosts involved in migration are able to resolve all hostnames.
2. If we cannot configure DNS, we will have to add the list of every host used for migration manually to the /etc/hosts file on each of the hosts. However, it is difficult to keep such lists consistent in a dynamic environment.
3. Even after doing the above, If the hostnames cannot be made resolvable we can use virsh commands that support migration specifying the migration host:
# virsh migrate qemu qemu+tcp://192.168.122.12/system tcp://192.168.122.12
Destination libvirtd will take the tcp://192.168.122.12 URI and append an automatically generated port number. If this is not desirable, the port number can be specified in this command:
# virsh migrate qemu qemu+tcp://192.168.122.12/system tcp://192.168.122.12:12345
4. Another option is to use tunneled migration.
Tunneled migration does not create a separate connection for migration data, but instead tunnels the data through the connection used for communication with destination libvirtd:
# virsh migrate qemu qemu+tcp://192.168.122.12/system --p2p --tunnelled
[Need assistance? We can help you!]
Conclusion
In short, we saw how our Support Engineers fix ‘Libvirt error: Unable to resolve address: name or service not known’.
0 Comments