← Back to team overview

openstack team mailing list archive

VM provisioning error on Hyper-V

 

 I have issues trying to deploy instance in OpenStack using Hyper-V driver.
Here is my environment information:
Openstack controller node: installed on Compute Host A, using OpenStack Folsom RC1 code.
Openstack compute node: Windows server 2012 with Hyper-V Role enabled installed on Compute Host B, with Nova-Compute Service installed using the installer here http://www.cloudbase.it/openstack/openstack-compute-installer/ for Folsom release.

When I tried to launch an instance to the compute node, it failed in spawning, here is the error log found in nova-compute.log(detailed log information is attached):
2012-10-19 18:57:06 DEBUG nova.virt.hyperv.vmops [req-2da7f0d5-7ba5-47cc-85ea-02a00ed6aa66 990dae0e5620447ea684809063ee27a4 d3e88c95b9d54ba4b8ec6c3c358559bc] Creating difference disk: JobID=\\WIN
-KSKERE5KU31\root\virtualization:Msvm_StorageJob.InstanceID="A34DF87A-EF9D-4007-B04F-C932D4E76399", Source=c:\Hyper-V\instances\_base\64d0ffeb-cc13-4c03-9c3b-56cbc132e482.vhd, Target=c:\Hyper-
V\instances\instance-00000001\instance-00000001.vhd from (pid=7840) _cache_image C:\openstack-nova\nova\virt\hyperv\vmops.py:616
2012-10-19 18:57:09 ERROR nova.virt.hyperv.vmops [req-2da7f0d5-7ba5-47cc-85ea-02a00ed6aa66 990dae0e5620447ea684809063ee27a4 d3e88c95b9d54ba4b8ec6c3c358559bc] cache image failed: This object does
not support enumeration
2012-10-19 18:57:09 TRACE nova.virt.hyperv.vmops Traceback (most recent call last):
2012-10-19 18:57:09 TRACE nova.virt.hyperv.vmops File "C:\openstack-nova\nova\virt\hyperv\vmops.py", line 133, in spawn
2012-10-19 18:57:09 TRACE nova.virt.hyperv.vmops cow=FLAGS.use_cow_images)
2012-10-19 18:57:09 TRACE nova.virt.hyperv.vmops File "C:\openstack-nova\nova\virt\hyperv\vmops.py", line 618, in _cache_image
2012-10-19 18:57:09 TRACE nova.virt.hyperv.vmops success = self._vmutils.check_job_status(job)
2012-10-19 18:57:09 TRACE nova.virt.hyperv.vmops File "C:\openstack-nova\nova\virt\hyperv\vmutils.py", line 69, in check_job_status
2012-10-19 18:57:09 TRACE nova.virt.hyperv.vmops "%(ErrorDescription)s - %(ErrorCode)s") % job)
2012-10-19 18:57:09 TRACE nova.virt.hyperv.vmops File "C:\Python27\lib\site-packages\win32com\client\dynamic.py", line 246, in __getitem__
2012-10-19 18:57:09 TRACE nova.virt.hyperv.vmops raise TypeError("This object does not support enumeration")
2012-10-19 18:57:09 TRACE nova.virt.hyperv.vmops TypeError: This object does not support enumeration
2012-10-19 18:57:09 TRACE nova.virt.hyperv.vmops
2012-10-19 18:57:09 DEBUG nova.virt.hyperv.vmops [req-2da7f0d5-7ba5-47cc-85ea-02a00ed6aa66 990dae0e5620447ea684809063ee27a4 d3e88c95b9d54ba4b8ec6c3c358559bc] Got request to destroy vm instance-
00000001 from (pid=7840) destroy C:\openstack-nova\nova\virt\hyperv\vmops.py:374
2012-10-19 18:57:09 DEBUG nova.virt.hyperv.vmops [req-2da7f0d5-7ba5-47cc-85ea-02a00ed6aa66 990dae0e5620447ea684809063ee27a4 d3e88c95b9d54ba4b8ec6c3c358559bc] Created VM instance-00000001... from
(pid=7840) _create_vm C:\openstack-nova\nova\virt\hyperv\vmops.py:180
2012-10-19 18:57:09 DEBUG nova.virt.hyperv.vmops [req-2da7f0d5-7ba5-47cc-85ea-02a00ed6aa66 990dae0e5620447ea684809063ee27a4 d3e88c95b9d54ba4b8ec6c3c358559bc] Set memory for vm instance-00000001...
from (pid=7840) _create_vm C:\openstack-nova\nova\virt\hyperv\vmops.py:197
2012-10-19 18:57:09 DEBUG nova.virt.hyperv.vmops [req-2da7f0d5-7ba5-47cc-85ea-02a00ed6aa66 990dae0e5620447ea684809063ee27a4 d3e88c95b9d54ba4b8ec6c3c358559bc] Set vcpus for vm instance-00000001...
from (pid=7840) _create_vm C:\openstack-nova\nova\virt\hyperv\vmops.py:210
2012-10-19 18:57:09 DEBUG nova.virt.hyperv.vmops [req-2da7f0d5-7ba5-47cc-85ea-02a00ed6aa66 990dae0e5620447ea684809063ee27a4 d3e88c95b9d54ba4b8ec6c3c358559bc] Creating disk for instance-00000001 by
attaching disk file c:\Hyper-V\instances\instance-00000001\instance-00000001.vhd from (pid=7840) _create_disk C:\openstack-nova\nova\virt\hyperv\vmops.py:237
2012-10-19 18:57:10 DEBUG nova.virt.hyperv.vmops [req-2da7f0d5-7ba5-47cc-85ea-02a00ed6aa66 990dae0e5620447ea684809063ee27a4 d3e88c95b9d54ba4b8ec6c3c358559bc] New disk drive path is \\WIN-
KSKERE5KU31\root\virtualization:Msvm_ResourceAllocationSettingData.InstanceID="Microsoft:CC6BAD8D-EC33-4F14-87FE-203C4547522C\\83F8638B-8DCA-4152-9EDA-2CA8B33039B4\\0\\0\\D" from (pid=7840)
_create_disk C:\openstack-nova\nova\virt\hyperv\vmops.py:266
2012-10-19 18:57:11 ERROR nova.virt.hyperv.vmops [req-2da7f0d5-7ba5-47cc-85ea-02a00ed6aa66 990dae0e5620447ea684809063ee27a4 d3e88c95b9d54ba4b8ec6c3c358559bc] spawn vm failed: This object does not
support enumeration
2012-10-19 18:57:11 TRACE nova.virt.hyperv.vmops Traceback (most recent call last):
2012-10-19 18:57:11 TRACE nova.virt.hyperv.vmops File "C:\openstack-nova\nova\virt\hyperv\vmops.py", line 142, in spawn
2012-10-19 18:57:11 TRACE nova.virt.hyperv.vmops self._create_disk(instance['name'], vhdfile)
2012-10-19 18:57:11 TRACE nova.virt.hyperv.vmops File "C:\openstack-nova\nova\virt\hyperv\vmops.py", line 282, in _create_disk
2012-10-19 18:57:11 TRACE nova.virt.hyperv.vmops vhddisk, vm)
2012-10-19 18:57:11 TRACE nova.virt.hyperv.vmops File "C:\openstack-nova\nova\virt\hyperv\vmutils.py", line 123, in add_virt_resource
2012-10-19 18:57:11 TRACE nova.virt.hyperv.vmops success = self.check_job_status(job)
2012-10-19 18:57:11 TRACE nova.virt.hyperv.vmops File "C:\openstack-nova\nova\virt\hyperv\vmutils.py", line 69, in check_job_status
2012-10-19 18:57:11 TRACE nova.virt.hyperv.vmops "%(ErrorDescription)s - %(ErrorCode)s") % job)
2012-10-19 18:57:11 TRACE nova.virt.hyperv.vmops File "C:\Python27\lib\site-packages\win32com\client\dynamic.py", line 246, in __getitem__
2012-10-19 18:57:11 TRACE nova.virt.hyperv.vmops raise TypeError("This object does not support enumeration")
2012-10-19 18:57:11 TRACE nova.virt.hyperv.vmops TypeError: This object does not support enumeration
I debug the code and found that it failed at line 609-613 in virt\hyper-v\vmops.py.
                 image_service = self._conn.query(
                    "Select * from Msvm_ImageManagementService")[0]
                (job, ret_val) = \
                    image_service.CreateDifferencingVirtualHardDisk(
                        Path=target, ParentPath=base)
The WMI job state for this WMI operation is 10 (Exception). Then I tried to create Differencing VHD using WMI in Powershell on Windows Server 2012. Here is the script I used:
$parentVhdFn = "c:\Hyper-V\instances\_base\64d0ffeb-cc13-4c03-9c3b-56cbc132e482.vhd"
$newVhdFn = "c:\Hyper-V\instances\\instance-test.vhd"
$ims = Get-WmiObject -computername "." -namespace "root\virtualization" -class "Msvm_ImageManagementService"
$result=[WMI]$ims.CreateDifferencingVirtualHardDisk($newVhdFn, $parentVhdFn).Job
The job also failed.
Have anyone tried this? Could you help? Thank you very much.



Follow ups