Hyper-V support for Hyper-V 2012 R2

Registered by Alessandro Pilotti on 2013-05-15

The Nova Hyper-V driver uses the WMI API to execute most OS actions.

Starting from Windows Server 2008 and up to Windows Server 2008 R2 the namespace used for hypervisor management was "root\virtualization" (aka V1). Windows Server 2012 introduced a refactored namespace "root\virtualization\v2", offering also the V1 version for backwards compatibility with existing tools.

Features introduced with Windows Server 2012 (e.g. live migration, VHDX, replica) are supported on the V2 namespace only.

The Hyper-V Nova compute driver has been refactored in the Grizzly timeframe in order to avoid any coupling between the operations "ops" classes and the "utils" classes, the latter providing the interaction with the OS.

The object of this blueprint is to add utils classes implementing the V2 namespace without impacting on the ops classes. This will be accomplished by adding an abstract base class for each utils class, providing the current V1 implementations along with a V2 versions. Factory methods will instantiate the proper class at run time based on the OS version (OS <= 2008 R2: V1, OS >= 2012: V2).

Note: "livemigrationutils" provides already a V2 implementation only.

Blueprint information

Status:
Complete
Approver:
Russell Bryant
Priority:
Low
Drafter:
Alessandro Pilotti
Direction:
Approved
Assignee:
Alessandro Pilotti
Definition:
Approved
Series goal:
Accepted for havana
Implementation:
Implemented
Milestone target:
milestone icon 2013.2
Started by
Alessandro Pilotti on 2013-05-21
Completed by
Alessandro Pilotti on 2013-09-03

Related branches

Sprints

Whiteboard

Am I correct in saying that this blueprint does not cover adding additional functionality provided by the v2 API? Just adding support for using the v2 API for what's there now? --russellb

It provides an alternative V2 implementation for the utils classes and factories to instantiate the correct one based on the platform. Dependent blueprints (e.g. VHDX) cannot be based on the V1 APIs. Furthermore V1 "might" not be supported at all in future Hyper-V releases.

Gerrit topic: https://review.openstack.org/#q,topic:bp/hyper-v-wmi-v2,n,z

Addressed by: https://review.openstack.org/38160
    Adds support for Hyper-V WMI V2 namespace

Addressed by: https://review.openstack.org/37948
    Fixes Hyper-V issues on versions prior to 2012

Addressed by: https://review.openstack.org/39194
    Adds factory methods to load Hyper-V utils classes

Addressed by: https://review.openstack.org/39195
    Hyper-V vmutils refactoring

Gerrit topic: https://review.openstack.org/#q,topic:bp/hyper-v-rdp-console,n,z

Addressed by: https://review.openstack.org/48940
    Adds additional Hyper-V driver unit tests

Addressed by: https://review.openstack.org/49953
    dds additional Hyper-V driver unit tests

Addressed by: https://review.openstack.org/49954
    Adds additional Hyper-V driver unit tests

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.