Skip to main content

Primary links

  • Home
  • AI
  • Kubernetes
  • Incus
  • Ansible
  • Terraform
  • OpenStack
  • Virtualization
  • Linux
  • SmartHome
  • HowTo

Misc

  • Linux
  • Hardware
  • Programming
  • Databases
  • Multimedia
  • Windows

Cloud

  • OpenStack
    • Application credentials
    • Authentificaton
    • Barbican (Secret)
    • CLI client (OSC)
    • Cleanup OpenStack
    • Cloud images
    • Designate (DNSaaS)
    • DevStack
    • Gerrit / OpenDev
    • Glance (image)
    • Heat
    • Horizon
    • Ironic / Bifrost
    • Magnum
    • MicroStack
    • Mistral
    • Neutron (network)
    • Object storage
    • Octavia (loadbalancer)
    • OpenStack GPU passthrough
    • OpenvSwitch (OVS)
    • Quota
    • RabbitMQ
    • VPN
    • block storage volume (cinder)
    • compute (nova)
      • Create VM from ISO
      • FIX: found XX instances in the database and XX instances on the hypervisor
      • Get noisy neighbor VMs
      • Migrate OpenStack VM with encrypted volume
      • Output VM list as JSON
      • migrate
    • control
    • diskimage-builder
    • flavor
    • gnocchi
    • kolla-ansible
    • project
    • resource provider
    • server (VM)
    • user
  • cloud-config
  • nextcloud

Virtualization

  • Virtualization
  • Incus
  • Docker
  • KVM
  • Kubernetes
  • LXC
  • LXD
  • QEMU
  • VMware
  • VirtualBox
  • multipass
  • podman
  • vagrant
  • XEN

Network

  • DNS
  • Firewall
  • Linux
  • OpenvSwitch
  • SSL
  • VLAN
  • VPN
  • iPXE
  • namespaces
  • nmcli
  • tcpdump

Storage

  • CEPH
  • DRBD
  • LVM
  • S3
  • ZFS
  • btrfs

Automation / CI/CD

  • Install
  • Ansible
  • GitLab
  • LLM
  • Preseed
  • Puppet
  • Terraform
  • Ubuntu autoinstall

Monitoring / Visualisation

  • Grafana
  • Icinga
  • Prometheus
  • Monitoring
  • ELK
  • mermaid
  • openstack

show migrate state / log

nova migration-list --instance-uuid  ${SERVER_ID}

# show multiple migrations by date
nova migration-list | grep 2020-02-20 | awk -F"|" '{ print $8}' | sort | uniq -dc

CLI

VM=foo-u1804

# list all vms on a hypervisor
openstack server list --all --status ACTIVE --host com1.example.com

# get current hypervisor
openstack server show ${VM} -c OS-EXT-SRV-ATTR:host -f value

# list avaiable hypervisors
openstack host list -c "Host Name" -c Service -f value | grep compute | cut -d" " -f1

# live migrate VM to specific compute node
# deprected: openstack server migrate ${VM} --live ${TARGET_COMPUTE_NODE} --wait
openstack server migrate --live-migration --wait ${SERVER_ID}

# live migrate vm to specific host
openstack server migrate --os-compute-api-version 2.30 --live-migration --wait --host ${COMPUTE_NODE_ID} ${SERVER_ID}

# get state
openstack server show ${VM} -c name -c OS-EXT-SRV-ATTR:host -c status -f value | paste - - -

# migrate all VMs
openstack server list --all --host ${COMPUTE_NODE}

# migrae VMs
nova host-evacuate-live ${COMPUTE_NODE} [--max-servers 10]

# show remaining VMs
VMS=999
while [ ${VMS} -gt 0 ]; do
    echo ${VMS} VMs remaining on ${OS_NODE}
    VMS=$(openstack server list --all --status MIGRATING --host ${OS_NODE} -f value | wc -l)
    sleep 15
done

# migrae VMs
for VMID in $(openstack server list --all --status ACTIVE --host ${OS_NODE} -c ID -f value); do
    # start live migration
    date
    openstack server show ${VMID} -c id -c name -c OS-EXT-SRV-ATTR:host -c status -f value | paste - - - -
    nova live-migration ${VMID}

    # show migration status
    openstack server show ${VMID} -c id -c name -c OS-EXT-SRV-ATTR:host -c status -f value | paste - - - -

    # wait until migration has been completed
    while [ "$(openstack server show ${VMID} -c status -f value)" == "MIGRATING" ]; do sleep 1; done

    # show migration status
    openstack server show ${VMID} -c id -c name -c OS-EXT-SRV-ATTR:host -c status -f value | paste - - - -
    date

    echo
    sleep 10
done


# define VMs
VMIDS="
3fa95ff3-49b4-0000-1111-a0633720000
3fa95ff3-49b4-0000-1111-a0633720111
"

# all active VMs on specific host
VMIDS=$(openstack server list --all --status=ACTIVE -c ID -f value --host compute1-dev)

# live migrate VMs
for VMID in ${VMIDS}; do
    echo ${VMID}
    openstack server migrate ${VMID} --live compute2-prod --wait
    echo
done

# test
nova live-migration VM_ID
# nova host-evacuate-live
# --live-migration --wait
# nova server-migration-list

Cold migrate
https://docs.openstack.org/nova/rocky/admin/migration.html

openstack server list --all --status SHUTOFF --host ${COMPUTE_NODE}

# cold migrage VM to specific hypervisor
openstack server migrate --os-compute-api-version 2.56 --host com2-prod ${SERVER_ID}

# single VM
openstack server migrate ${SERVER_ID} 
openstack server resize confirm ${SERVER_ID}

# multiple VMs
VMIDS="
111111-22222-3333-0000-111111111111
111111-22222-3333-0000-222222222222
"

SERVER_IDS=$(openstack server list --all --status=SHUTOFF -c ID -f value --host compute1-dev)
for SERVER_ID in ${SERVER_IDS}; do
    openstack server migrate --wait ${SERVER_ID}
    openstack server resize confirm ${SERVER_ID}
done

openstack server list --all --status=VERIFY_RESIZE

qemu / libvirt

# fix DestinationDiskExists_Remote issue
docker exec -t -u root nova_libvirt ls -l  /var/lib/nova/instances/${SERVER_ID}

Show migrations

SERVER_IDS=$(openstack server list --all-projects -c ID -f value --name )
for SERVER_ID in ${SERVER_IDS}; do
    nova migration-list --instance-uuid ${SERVER_ID}
done

Migration loop

while :
do
	openstack server migrate ${SERVER_ID} --live-migration --wait
	sleep $(( ( RANDOM % 1000 )  + 1 ))
done

Links
https://docs.openstack.org/nova/latest/admin/live-migration-usage.html
http://www.danplanet.com/blog/2016/03/03/evacuate-in-nova-one-command-to-confuse-us-all/

Profiles GitHub StackOverflow LinkedIn Xing
Contact Imprint
© panticz 2026

Cookie-Einstellungen

Diese Website nutzt eingebettete Inhalte von Drittanbietern (z.B. YouTube, SoundCloud). Beim Laden dieser Inhalte werden Daten an die jeweiligen Anbieter übermittelt. Datenverarbeitungserklärung