I found very useful link showing the difference between “nova migrate” and “nova live-migrate”
As stated in above article if you want to migrate the “instance” to specific node you can disable the nova-compute service on other hypervisors apart from source and desired destination because unfortunately there is no such option in “nova migrate” command to choose the specific host.
If your instance is small you may use the “–block-migrate” option with “nova live-migrate” to migrate the instance lively on specific compute nodes despite of not having shared storage, and without disabling the nova-compute service.
# nova live-migration –block-migrate 180733f9-4ef5-4722-9864-9b05b8b18e57 compute1
In the above command, I am migrating the instance whilst not using shared storage. Internally it’s using the scp to migrate the instance hence I mentioned earlier it’s useful only for small flavor-size instances.