Unable to Deauthorize Hypervisor (Instances Still Exist)

Problem

  • When attempting to disable a host, you receive an error similar to the following.

    An unexpected error occurred trying to deauthorize host.

  • Instances in the Clarity UI which reside on the hypervisor in question at Infrastructure > Instances are not in a standard state such as “Error,” “Deleting” or “Active - Rebooting”.

  • The same instances do not respond to delete commands from the Clarity UI, OpenStack CLI, nor OpenStack API.
    

Environment

Platform9 Managed OpenStack - All Versions
Nova

Cause

A host with the hypervisor role cannot be removed from the OpenStack cluster when it is still hosting instances, in any state.

Resolution

  • Identify any remaining instances hosted on the hypervisor in question.

$ openstack server list --all-projects --host <host_uuid>

  • Issue the following commands to delete the remaining instances.

      #nova reset-state <instance_uuid> --active
      #openstack server delete <instance_uuid>
    

    Bring down the nova-compute service.

      #nova service-force-down <host_uuid> nova-compute
    +--------------------------------------+--------------+-------------+
    | Host                                | Binary      | Forced down |
    +--------------------------------------+--------------+-------------+
    | <host_uuid>                         | nova-compute | True        |
    +--------------------------------------+--------------+-------------+
    

    Verify the compute service has been brought down successfully.

      $ nova service-list | grep <host_uuid>
      | 123 | nova-compute    | <host_uuid>        | nova    | enabled  | down  | 2018-10-02T19:05:47.000000 | -                                  |
    

You use the standard procedure for deauthorizing a host as described in How To Deauthorize A Host.