Commit Graph

44929 Commits

Author SHA1 Message Date
Jenkins b3f54cbda8 Merge "Document testing process for zero downtime upgrade" 2017-01-28 02:18:09 +00:00
Jenkins 0e0176bf8d Merge "Raise InvalidInput exception" 2017-01-28 02:17:23 +00:00
Jenkins c90e64fed9 Merge "Prevent compute crash on discovery failure" 2017-01-28 02:16:36 +00:00
Jenkins fdb4e5e54a Merge "Add new configuration option live_migration_scheme" 2017-01-28 02:15:50 +00:00
Jenkins 74f330b3bf Merge "api-ref: Fix path parameters in os-hypervisors.inc" 2017-01-28 00:55:39 +00:00
Jenkins 181f744aad Merge "nova-manage docs: cell_v2 map_instances" 2017-01-28 00:54:59 +00:00
Jenkins 0b93747bb4 Merge "nova-manage docs: cell_v2 map_cell0" 2017-01-28 00:54:12 +00:00
Jenkins ed55f6b2c9 Merge "remove NetworkDuplicated exception" 2017-01-28 00:53:32 +00:00
Jenkins 79d719d7ff Merge "Remove mox from unit/virt/libvirt/test_imagebackend.py (5)" 2017-01-28 00:24:10 +00:00
Jenkins 225211b19a Merge "Remove mox from unit/virt/libvirt/test_imagebackend.py (4)" 2017-01-28 00:23:27 +00:00
Jenkins 1b1b2f9440 Merge "Remove mox from unit/virt/libvirt/test_imagebackend.py (3)" 2017-01-28 00:22:44 +00:00
Jenkins d301a4f269 Merge "Remove mox from unit/virt/libvirt/test_imagebackend.py (2)" 2017-01-28 00:22:04 +00:00
Jenkins e57714f9f1 Merge "libvirt: ephemeral disk support for virtuozzo containers" 2017-01-27 20:16:32 +00:00
Jenkins b69e68a7be Merge "Adding vlans field to Device tagging metadata" 2017-01-27 15:12:00 +00:00
Jenkins d7b5be1e3c Merge "libvirt: fix vCPU usage reporing for LXC/QEMU guests" 2017-01-27 11:38:25 +00:00
Jenkins cba26a6e56 Merge "libvirt: expose virtual interfaces with vlans to metadata" 2017-01-27 10:24:47 +00:00
Jenkins 1d06ac7d58 Merge "objects: vlan field to NetworkInterfaceMetadata object" 2017-01-27 09:15:08 +00:00
Jenkins e8340747ac Merge "Move instance creation to conductor" 2017-01-27 08:47:06 +00:00
Jenkins c1cd098fcb Merge "Fix server group functional test by using all filters" 2017-01-27 08:46:21 +00:00
Jenkins f1174cc352 Merge "Updated from global requirements" 2017-01-27 08:45:31 +00:00
Jenkins de2e41841a Merge "Change exponential function to linear" 2017-01-27 06:51:54 +00:00
Jenkins 796ea1664a Merge "placement: minor refactor _allocate_for_instance()" 2017-01-27 03:55:37 +00:00
Jenkins 2be2ccf1ea Merge "placement: report client handle InventoryInUse" 2017-01-27 03:54:56 +00:00
Takashi NATSUME 070656a478 api-ref: Fix path parameters in os-hypervisors.inc
The hypervisor ID in path parameters have been fixed to 'integer'.
In "Search Hypervisor" and "List Hypervisor Servers",
the hypervisor IDs have been fixed to a string for searching
hypervisor host names.

Change-Id: I2260f0c4ca82d5a2ae5a46bcf8f48f9eaaf09f2f
Closes-Bug: #1654197
2017-01-26 23:40:12 +00:00
Daniel P. Berrange 2fdab3b922 libvirt: fix vCPU usage reporing for LXC/QEMU guests
Currently if Nova is using the libvirt LXC driver, it is
hardcoded to report 1 vCPU used on the host, regardless
of how many containers are running.

Meanwhile for QEMU (aka TCG) guests, the guest.get_vcpu_info
method is throwing an exception, since QEMU does not use
a dedicated thread per vCPU currently. The effect is that
on QEMU hosts, we're reporting 0 vCPUs used on the host
regardless of how many guests are running

This causes the 'get_available_resources' method to report
incorrect 'vcpus_used' values for the compute node. By a
stroke of luck, the resource tracker merely logs this
value and then throws it away, instead counting vcpu
usage based on vcpus declared against the flavour.  Now
ignoring the hypervisor reported data is arguably a bug
in the resource tracker, because it means it is overcounting
resource consumption for plain QEMU guests (they can only
ever consume 1 pCPU of time, regardless of vCPU count).
Fixing the resource tracker is out of scope for now, but
we should at least ensure we're reporting accurate data
to it, even if it is only used for logging at this time.

If a host does not report detailed vCPU usage from libvirt
then we should default to reporting 1 vCPU per guest, so
that the 'vcpus_used' field reports some reasonably
meaningful data on host CPU usage.

Closes-bug: #1638889
Change-Id: I627d30d61f8ead6211f78a1c79ffd79b81333f86
2017-01-26 23:31:36 +00:00
Vladik Romanovsky 1a0778d280 Adding vlans field to Device tagging metadata
Handle the network interface new vlans field and expose it in the devices
metadata
The vlan tag will be exposed to the instance through the metadata API and
on the config drive.

Implements: blueprint sriov-pf-passthrough-neutron-port-vlan
Change-Id: Id7b9f3f1c2107ec604e7f0ef4fbfd31a9e05d0b0
2017-01-26 23:05:07 +00:00
Vladik Romanovsky 18a23b747b libvirt: expose virtual interfaces with vlans to metadata
Enhance the _build_device_metadata method to expose virtual interface with vlan
to the devices metadata. Previously, only interfaces with tags could be
exposed.

Implements: blueprint sriov-pf-passthrough-neutron-port-vlan
Change-Id: I7abf16b996bd68aa7fa1e3a121eae3147a244284
2017-01-26 17:06:56 -05:00
Vladik Romanovsky 2ace67115b objects: vlan field to NetworkInterfaceMetadata object
Adding a new 'vlan' field to the NetworkInterfaceMetadata object
to expose the vlan assigned to a virtual interface, to devices metadata.

Implements: blueprint sriov-pf-passthrough-neutron-port-vlan
Change-Id: I0071474191b6304a87661f73c63e6eeef9a01ac7
2017-01-26 15:10:56 -05:00
Andrey Volkov 3c2ce9450b Move instance creation to conductor
This reworks a big chunk of the instance boot flow. A new method has
been added to the conductor which will handle the initial scheduling and
creation of an instance in the cell db. At that point the request moves
to the compute as normal. A reschedule will call back to the cell
conductor as normal and can not result in a host from another cell being
selected.

Co-Authored-By: Dan Smith <dansmith@redhat.com>
Implements: bp cells-scheduling-interaction
Change-Id: I8742071b55f018f864f5a382de20075a5b444a79
Depends-On: I8938fd37f71498e87aa348a81c357eef5c1a8093
2017-01-26 12:02:54 -08:00
OpenStack Proposal Bot a43a463859 Updated from global requirements
Change-Id: I07267ab144ef3851dfd716ecb3809d3bfa133e06
2017-01-26 18:48:41 +00:00
Sylvain Bauza 6a914e87ce Fix server group functional test by using all filters
Given we will use the placement API for the next change, we need to verify
all the filters like we already do for other functional tests, and just
use large allocation ratios for cpu and disk instead of disabling the
corresponding filters.

Given we wanted to keep the same test coverage which asserts that instances
are only RAM-bound (because it was only verifying RAMFilter previously),
we are providing a new FakeDriver for having large resources for CPU and disk
so we are sure we are not limited by that.

Change-Id: I92afc017146792968130cf4ad238d67ed1dfa308
2017-01-26 17:40:53 +01:00
Pawel Koniszewski bcd584f293 Change exponential function to linear
Current algorithm to calculate maximum tolerable downtime uses
exponential function. It means that initially max downtime is
increased by small amounts and as time goes by it is increased
by larger amounts.

Let's assume we have an instance with 8GBs of memory and 10Gb
private dedicated network just for live migration purposes and
that there will be 10 steps, 30 second step delay and 400ms
target maximum downtime. A single iteration of live migration
will take about 6.5 seconds (8GBs / (10Gb / 8)). According to
LM configuration nova will increase downtime for the first time
after 240 seconds. It means that hypervisor will be able to do
about 37 memory iterations. After that many iterations nova will
increase maximum tolerable downtime by just 1ms, which means
that during the downtime of an instance hypervisor will be able
to transfer only 1.25MB more. After that many iterations, if
live migration is still in progress, 1ms probably will not help
at all. The conclusion here is that live migration needs to run
for at least 20 minutes, and after that time nova will increase
maximum tolerable downtime by a reasonable amount.

The same applies for live migrations running on 1Gb interface.
In such case it is even more critical to increase maximum
tolerable downtime by a reasonable amount, as the network is
way slower and, therefore, hypervisor will have less chances to
finish live migration at all.

This change slightly affects liveness of instances but it
increases chances of finishing any live migration.

Change-Id: I178aa90ecf9530913b5c82b9726722040445da4b
2017-01-26 15:24:20 +00:00
Michael Still 6d8b58dc6f Cache boot time roles for vendordata.
Some external vendordata services want to provide metadata
based on the role of the user who started the instance. It
would be confusing if the metadata returned changed later
if the role of the user changed, so we cache the boot time
roles and then pass those to the external vendordata
service.

Change-Id: Ieb84c945f4f9a21c2b7b892f9b1ead84dca441e9
2017-01-26 13:39:53 +00:00
Michael Still 5ca61e4534 Optionally make dynamic vendordata failures fatal.
Some operators would like instance starts to fail if we cannot
fetch dynamic vendordata. Add an option to do that.

Change-Id: I0c31465c5c52cd4c7e4bb229a4452bc4c8df0e88
2017-01-26 13:39:53 +00:00
Michael Still 1f53bfcc79 Use a service account to make vendordata requests.
We should use a service account to make requests to external
vendordata services. This something which we got wrong in the
newton cycle, and discussed how to resolve at the ocata summit.

It is intended that this fix be backported to newton as well.

There is a sample external vendordata server which has been
tested with this implementat at:

   https://github.com/mikalstill/vendordata

Change-Id: I7d29ecc00f99724731d120ff94b4bf3210f3a64e
Co-Authored-By: Stephen Finucane <sfinucan@redhat.com>
2017-01-26 13:39:46 +00:00
Mikhail Feoktistov b1d575f2ad libvirt: ephemeral disk support for virtuozzo containers
For virtuozzo containers we create ephemeral disk based on ploop format.
After we create ploop disk, we should add 'read 'permission for all users.
It's necessary because openstack user query info of this disk by qemu-img.

Change-Id: I2d6dd043340322d4c4ac1efd38f993f08932a483
Implements: blueprint ephemeral-disk-ploop
2017-01-26 14:19:08 +03:00
Jenkins f9d7b383a7 Merge "PCI: Check pci_requests object is empty before passing to support_requests" 2017-01-26 09:21:18 +00:00
Jenkins efb2dda346 Merge "Only warn about hostmappings during ocata upgrade" 2017-01-26 09:10:50 +00:00
Jenkins b200865680 Merge "Add --verbose option to discover_hosts command" 2017-01-26 07:39:51 +00:00
Jenkins 3ffe4dd686 Merge "Add sort_key white list for server list/detail" 2017-01-26 07:08:22 +00:00
Jenkins 6e4d2bb637 Merge "nova-manage docs: cell_v2 simple_cell_setup" 2017-01-26 06:40:44 +00:00
Jenkins 5f59c0e3c6 Merge "Ironic: Add soft power off support to Ironic driver." 2017-01-26 02:18:47 +00:00
Jenkins 9a4e7e2b9e Merge "Handle unicode when dealing with duplicate aggregate errors during migration" 2017-01-26 02:15:47 +00:00
Jenkins 2affde40b5 Merge "Handle unicode when dealing with duplicate flavors during online migrations" 2017-01-26 02:15:14 +00:00
Dan Smith f781409f36 Only warn about hostmappings during ocata upgrade
The check and subsequent hard failure for HostMapping records in
API migration 30 is inconvenient at times during a new setup where
we have flavors in place but no hosts yet. Since we can now check
for and warn about missing HostMapping records in our upgrade
status command, this patch lowers the lack of host mappings check
from a failure to a warning. This migration was really just to make
sure you ran the simple setup command, and the cell mapping check
does that for us.

Change-Id: I8b757fa7c805ec6f4d578ecb6f33d3f1ceff29fc
2017-01-25 17:33:48 -08:00
Jenkins 3ef7e7f0dd Merge "nova-manage docs: add cells commands prep" 2017-01-25 23:56:06 +00:00
Jenkins 14daabd308 Merge "libvirt: avoid generating script with empty path" 2017-01-25 23:14:20 +00:00
Diana Clarke e5c41e5c4a nova-manage docs: cell_v2 map_instances
Document the `nova-manage cell_v2 map_instances` command.

This is part of a series to document the nova-manage cells
commands.

Change-Id: Ie7b8a3b54ca851485393e279d2355f57a097b4d2
2017-01-25 12:50:33 -05:00
Diana Clarke 30ea0f8651 nova-manage docs: cell_v2 map_cell0
Document the `nova-manage cell_v2 map_cell0` command.

This is part of a series to document the nova-manage cells
commands.

Change-Id: I088c959ee5e20e754c2bcfc4a3698db83abc570c
2017-01-25 12:23:18 -05:00
Diana Clarke 919bee6af5 nova-manage docs: cell_v2 simple_cell_setup
Document the `nova-manage cell_v2 simple_cell_setup` command.

This is part of a series to document the nova-manage cells
commands.

Change-Id: I236d47595b29dbfa18c2c26902301e764d086556
2017-01-25 12:23:09 -05:00