TLDR: qemu+ssh://desthost/system
mean run command (migrate
in your case) using qemu driver on system libvirt daemon which is running on remote host desthost
. For connection, use SSH with my current settings.
The "keyword" qemu+ssh://desthost/system
you are mentioning is in fact called Remote URI, which is variation of Connection URI which is libvirt using for connecting to remote hosts.
Its general form is described in Remote URI documentation as
driver[+transport]://[username@][hostname][:port]/[path][?extraparameters]
What does the keyword qemu+ssh://desthost/system
mean?
It means that you want to execute command
- using
qemu
driver
- on
desthost
host
- connecting through ordinary SSH connection
- connect to libvirt's
system
mode daemon
After SSH, does it execute some command at destHost? (If it needs to execute command, how does it do with qemu+tls?)
First of all you are using virsh to execute command migrate
on remote host's libvirt daemon. That daemon will handle your command.
Think of SSH usage in this case only as a tunnel.
I suppose it means SSH to desthost for authentication purpose? What user does it use? After SSH, does it execute some command at destHost? (If it needs to execute command, how does it do with qemu+tls?)
ssh
is only transport for actual communication. Its useful especially if you have working SSH connection to remote host (desthost
) as you avoid need to setup TLS certificates on your machine (client) and desthost
.
It uses same user as actual ssh
would use - usually current user. But you take advantage of all SSH possibilities and set different user i.e. in .ssh/config
for desthost
.
Also, does the system
keyword has any special meaning too?
Yes, it means that system mode of libvirt daemon will be used. With some simplification, it means it will connect to system libvirt daemon which is running under root user and usually launched at system startup. You can read more about difference between system
and session
in libvirt's FAQ