[openstack-dev] [nova] why is evacuate marked as missing for libvirt?
mzoeller at de.ibm.com
Fri Apr 17 09:09:01 UTC 2015
"Daniel P. Berrange" <berrange at redhat.com> wrote on 04/15/2015 11:35:39
> From: "Daniel P. Berrange" <berrange at redhat.com>
> To: "OpenStack Development Mailing List (not for usage questions)"
> <openstack-dev at lists.openstack.org>
> Date: 04/15/2015 11:42 AM
> Subject: Re: [openstack-dev] [nova] why is evacuate marked as missing
> for libvirt?
> On Tue, Apr 14, 2015 at 01:44:45PM -0400, Russell Bryant wrote:
> > On 04/14/2015 12:22 PM, Matt Riedemann wrote:
> > > This came up in IRC this morning, but the hypervisor support matrix
> > > listing evacuate as 'missing' for the libvirt driver:
> > >
> > > http://docs.openstack.org/developer/nova/support-
> > >
> > >
> > > Does anyone know why that is? The rebuild method in the compute
> > > just re-uses other virt driver operations so by default it's
> > > by all drivers. The only one that overrides rebuild for evacuate is
> > > ironic driver.
> > I think it's a case where there are a couple of different things
> > referred to with 'evacuate'. I believe this was originally added to
> > track something that was effectively XenServer specific and the
> > description of the feature seems to reflect that. We've since added
> > more generic 'evacuate' API, so it's pretty confusing. It should
> > probably be reworked to track which drivers work with the 'evacuate'
> > call, and perhaps have a different entry for whatever this different
> > XenServer thing is (or was).
> Yep, if there's any mistakes or bizarre things in the support matrix
> just remember that the original wiki page had essentially zero
> about what each feature item was referring to - just the two/three word
> feature name. When I turned it into formal docs I tried to add better
> explanations, but it is entirely possible my interpretations were wrong
> in places. So if in doubt assume the support matrix is wrong, and just
> send a review to update it to some saner state with better description
> of the feature. Pretty much all the features in the matrix could do
> with better explanations and/or being broken up into finer grained
> features - there's plenty of scope for people to submit patches to
> improve the granularity of items.
I think that the confusion is caused by something called the "host
maintenance mode" . When this is enabled, an evacuate is triggered
by the underlying hypervisor. This can mode can be set by the CLI 
and is not implemented by the libvirt driver.
The probably intented API for the feature "evacuate" is  which can
be triggered via CLI with:
* nova evacuate <server>
* nova host-evacuate <host>
* nova host-evacuate-live <host>
The feature "evacuate" has hereby a dependency to "live-migration". As
the system z platform doesn't yet has  merged, "evacuate" is there
"partial"  (TODO for me) whereas for x86 there should be "complete".
Please correct me if I'm wrong here.
Unfortunately I couldn't find any tempest tests for the "evacuate"
feature, so I tested in manually.
 virt.driver.ComputeDriver.host_maintenance_mode(self, host, mode)
 Nova CLI; command "nova host-update"
 libvirt: handle NotSupportedError in compareCPU
 "Update hypervisor support matrix with column for kvm on system z"
Markus Zoeller (markus_z)
More information about the OpenStack-dev