The `migrate-all.sh` script is used to migrate one or more VMs (default: all) from one VM host to the other on demand. The `shutdown-vmhost.sh` script prepares a VM host to shut down by evicting Kubernetes Pods from the Nodes running on that host and then shutting them down, followed by migrating the rest of the running VMs to the other host.
29 lines
562 B
Bash
Executable File
29 lines
562 B
Bash
Executable File
#!/bin/sh
|
|
# vim: set sw=4 ts=4 sts=4 et :
|
|
|
|
list_vms() {
|
|
if [ $# -gt 0 ]; then
|
|
echo "$@" | xargs -n1
|
|
else
|
|
virsh list --name
|
|
fi
|
|
}
|
|
|
|
src=$1
|
|
shift 2>&-
|
|
dest=$1
|
|
shift 2>&-
|
|
|
|
if [ -z "${src}" ] || [ -z "${dest}" ]; then
|
|
printf 'usage: %s source_uri dest_uri [name [...]]\n' "${0##*/}"
|
|
exit 2
|
|
fi
|
|
|
|
export LIBVIRT_DEFAULT_URI="${src}"
|
|
|
|
list_vms "$@" | while read name; do
|
|
[ -n "${name}" ] || continue
|
|
printf 'Migrating %s ...\n' "${name}"
|
|
virsh migrate "${name}" "${dest}" --live --persistent --undefinesource --verbose
|
|
done
|