
[Please keed the list CCed] On 01/10/2018 04:43 PM, Raman Gupta wrote:
Does this command alone succeed? Yes. I have used this command to migrate VMs successfully, without even knowing that spelling has changed.
I don't know enough about systemd but maybe it's not waiting for virsh to finish? Yes I also think virsh or libvirtd or related service does not wait before /root/vm_migrate.sh is called and hence live migration fails. If I replace Live Migration with a simple ping to peer node in the vPreShutdownHook.service, then ping goes thru successfully thus indicating network service was UP at that time.
Can you try to get any logs to see what is going on actually? Jan 8 15:30:58 desktop4 systemd: Stopping Session c1 of user gdm. Jan 8 15:30:58 desktop4 gdm: Freeing conversation 'gdm-launch-environment' with active job Jan 8 15:30:58 desktop4 systemd: Stopped target Sound Card. Jan 8 15:30:58 desktop4 systemd: Stopping Sound Card. Jan 8 15:30:58 desktop4 systemd: Stopping LVM2 PV scan on device 8:3... Jan 8 15:30:58 desktop4 systemd: Removed slice system-getty.slice. Jan 8 15:30:58 desktop4 systemd: Stopping system-getty.slice. Jan 8 15:30:58 desktop4 systemd: Stopping Authorization Manager... Jan 8 15:30:58 desktop4 systemd: Stopping Virtual Machine and Container Registration Service... Jan 8 15:30:58 desktop4 systemd: Stopping GlusterFS brick processes (stopping only)... Jan 8 15:30:58 desktop4 systemd: Removed slice system-selinux\x2dpolicy\x2dmigrate\x2dlocal\x2dchanges.slice. Jan 8 15:30:58 desktop4 systemd: Stopping system-selinux\x2dpolicy\x2dmigrate\x2dlocal\x2dchanges.slice. Jan 8 15:30:58 desktop4 systemd: Stopping Availability of block devices... Jan 8 15:30:58 desktop4 systemd: Stopping Virtual Machine qemu-1-GsmController. Jan 8 15:30:58 desktop4 alsactl[837]: alsactl daemon stopped Jan 8 15:30:58 desktop4 systemd: Stopping Session 1 of user root. Jan 8 15:30:58 desktop4 systemd: Stopping Manage Sound Card State (restore and store)...
I don't see your service being called. Anyway, look at libvirt-guests.service file. Looks like the following lines cause systemd to wait for a command to finish: [Service] EnvironmentFile=-/etc/sysconfig/libvirt-guests # Hack just call traditional service until we factor # out the code ExecStart=@libexecdir@/libvirt-guests.sh start ExecStop=@libexecdir@/libvirt-guests.sh stop Type=oneshot RemainAfterExit=yes StandardOutput=journal+console TimeoutStopSec=0
On Wed, Jan 10, 2018 at 8:46 PM, Michal Privoznik <mprivozn@redhat.com> wrote:
On 01/05/2018 12:00 PM, Raman Gupta wrote:
Hi,
I have CentOS 7, two node system which allows live VM migration between them. Live migration triggered from virsh is happily happening. I am using GlusterFS for replicating VM disk files.
Now I want to automatically do the live migration at the time of reboot/shutdown/halt of the host node and for this I have written a systemd service unit [vPreShutdownHook.service] and placed the live migration command in a migrate script which is invoked from this service unit. The migrate script is invoked but migration does not happen. If someone has some idea please help me to migrate VM upon shutdown.
######## vPreShutdownHook.service ###############
[Unit] Description=vPreShutdownHook Requires=network.target Requires=libvirtd.service Requires=dbus.service Requires=glusterd.service Requires=glusterfsd.service DefaultDependencies=no Before=shutdown.target reboot.target
[Service] Type=oneshot RemainAfterExit=true ExecStart=/bin/true ExecStop=/root/vm_migrate.sh
[Install] WantedBy=multi-user.target
########## Command to migrate ############ /usr/bin/virsh migrate --verbose --p2p --tunneled --live --compressed --comp-methods "mt" --comp-mt-level 5 --comp-mt-threads 5 --comp-mt-dthreads 5 MY_VM qemu+ssh://root@$node2/system
Does this command alone succeed? BTW: unless really needed --live will only make the migration take longer.
I don't know enough about systemd but maybe it's not waiting for virsh to finish? Can you try to get any logs to see what is going on actually?
Michal
Michal