Selecting a flavor different of m1.tiny for an instance, this operation isn't supported when XCP is used. The XCP is related of XenServer described on table below:
XenServer 5.5 == XCP 0.5
XenServer 5.6 == XCP 1.0
XenServer 5.6sp2 == XCP 1.1
XenServer 6.0 == XCP 1.5
Based on this, the operation to resize the VHD is not supported as is showed in the backtrace below:
from 5GB to 20GB from (pid=1358) _resize_instance /usr/lib/python2.6/site-packages/nova/virt/xenapi/vmops.py:899
2012-06-21 16:14:50 ERROR nova.utils [req-f499f181-efc0-4ed1-abed-f3a5c644b5a7 afae889ca8c84479b8195e8b0e462320 faa2e7d479914529bfceda68c8ca33df] Instance eba99f3d-cf50-4f07-b75b-969922daa7b3: Failed to spawn, r
olling back.
2012-06-21 16:14:50 TRACE nova.utils Traceback (most recent call last):
2012-06-21 16:14:50 TRACE nova.utils File "/usr/lib/python2.6/site-packages/nova/virt/xenapi/vmops.py", line 346, in spawn
2012-06-21 16:14:50 TRACE nova.utils vdis = create_disks_step(undo_mgr)
2012-06-21 16:14:50 TRACE nova.utils File "/usr/lib/python2.6/site-packages/nova/virt/xenapi/vmops.py", line 138, in inner
2012-06-21 16:14:50 TRACE nova.utils rv = f(*args, **kwargs)
2012-06-21 16:14:50 TRACE nova.utils File "/usr/lib/python2.6/site-packages/nova/virt/xenapi/vmops.py", line 265, in create_disks_step
2012-06-21 16:14:50 TRACE nova.utils vdis = self._create_disks(context, instance, image_meta)
2012-06-21 16:14:50 TRACE nova.utils File "/usr/lib/python2.6/site-packages/nova/virt/xenapi/vmops.py", line 246, in _create_disks
2012-06-21 16:14:50 TRACE nova.utils self._resize_instance(instance, vdi["vdi_uuid"])
2012-06-21 16:14:50 TRACE nova.utils File "/usr/lib/python2.6/site-packages/nova/virt/xenapi/vmops.py", line 905, in _resize_instance
2012-06-21 16:14:50 TRACE nova.utils str(new_disk_size))
2012-06-21 16:14:50 TRACE nova.utils File "/usr/lib/python2.6/site-packages/nova/virt/xenapi_conn.py", line 574, in call_xenapi
2012-06-21 16:14:50 TRACE nova.utils return tpool.execute(f, *args)
2012-06-21 16:14:50 TRACE nova.utils File "/usr/lib/python2.6/site-packages/eventlet/tpool.py", line 76, in tworker
2012-06-21 16:14:50 TRACE nova.utils rv = meth(*args,**kwargs)
2012-06-21 16:14:50 TRACE nova.utils File "/usr/lib/python2.6/site-packages/XenAPI.py", line 229, in __call__
2012-06-21 16:14:50 TRACE nova.utils return self.__send(self.__name, args)
2012-06-21 16:14:50 TRACE nova.utils File "/usr/lib/python2.6/site-packages/XenAPI.py", line 133, in xenapi_request
2012-06-21 16:14:50 TRACE nova.utils result = _parse_result(getattr(self, methodname)(*full_params))
2012-06-21 16:14:50 TRACE nova.utils File "/usr/lib/python2.6/site-packages/XenAPI.py", line 203, in _parse_result
2012-06-21 16:14:50 TRACE nova.utils raise Failure(result['ErrorDescription'])
2012-06-21 16:14:50 TRACE nova.utils Failure: ['SR_OPERATION_NOT_SUPPORTED', 'OpaqueRef:81ae5ebc-399b-afbb-e406-057cbcdb0388']
2012-06-21 16:14:50 TRACE nova.utils
2012-06-21 16:14:50 ERROR nova.compute.manager [req-f499f181-efc0-4ed1-abed-f3a5c644b5a7 afae889ca8c84479b8195e8b0e462320 faa2e7d479914529bfceda68c8ca33df] [instance: eba99f3d-cf50-4f07-b75b-969922daa7b3] Instan
ce failed to spawn
Below the part of code mentioned in the backtrace:
if virtual_size < new_disk_size:
# Resize up. Simple VDI resize will do the trick LOG.debug(_("Resizing up VDI %(vdi_uuid)s from %(old_gb)dGB to " "%(new_gb)dGB") % locals())
if self._product_version[0] > 5: resize_func_name = 'VDI.resize'
else: resize_func_name = 'VDI.resize_online' self._session.call_xenapi(resize_func_name, vdi_ref, str(new_disk_size)) LOG.debug(_("Resize instance %s complete") % (instance.uuid))
To fix this, is need to get the variable product_band and, since all XCP versions are larger than XenServer 5.x, add it to use only VDI.resize.
Selecting a flavor different of m1.tiny for an instance, this operation isn't supported when XCP is used. The XCP is related of XenServer described on table below:
XenServer 5.5 == XCP 0.5
XenServer 5.6 == XCP 1.0
XenServer 5.6sp2 == XCP 1.1
XenServer 6.0 == XCP 1.5
Based on this, the operation to resize the VHD is not supported as is showed in the backtrace below:
from 5GB to 20GB from (pid=1358) _resize_instance /usr/lib/ python2. 6/site- packages/ nova/virt/ xenapi/ vmops.py: 899 efc0-4ed1- abed-f3a5c644b5 a7 afae889ca8c8447 9b8195e8b0e4623 20 faa2e7d47991452 9bfceda68c8ca33 df] Instance eba99f3d- cf50-4f07- b75b-969922daa7 b3: Failed to spawn, r python2. 6/site- packages/ nova/virt/ xenapi/ vmops.py" , line 346, in spawn disks_step( undo_mgr) python2. 6/site- packages/ nova/virt/ xenapi/ vmops.py" , line 138, in inner python2. 6/site- packages/ nova/virt/ xenapi/ vmops.py" , line 265, in create_disks_step disks(context, instance, image_meta) python2. 6/site- packages/ nova/virt/ xenapi/ vmops.py" , line 246, in _create_disks instance( instance, vdi["vdi_uuid"]) python2. 6/site- packages/ nova/virt/ xenapi/ vmops.py" , line 905, in _resize_instance python2. 6/site- packages/ nova/virt/ xenapi_ conn.py" , line 574, in call_xenapi python2. 6/site- packages/ eventlet/ tpool.py" , line 76, in tworker **kwargs) python2. 6/site- packages/ XenAPI. py", line 229, in __call__ send(self. __name, args) python2. 6/site- packages/ XenAPI. py", line 133, in xenapi_request result( getattr( self, methodname) (*full_ params) ) python2. 6/site- packages/ XenAPI. py", line 203, in _parse_result result[ 'ErrorDescripti on']) NOT_SUPPORTED' , 'OpaqueRef: 81ae5ebc- 399b-afbb- e406-057cbcdb03 88'] manager [req-f499f181- efc0-4ed1- abed-f3a5c644b5 a7 afae889ca8c8447 9b8195e8b0e4623 20 faa2e7d47991452 9bfceda68c8ca33 df] [instance: eba99f3d- cf50-4f07- b75b-969922daa7 b3] Instan
2012-06-21 16:14:50 ERROR nova.utils [req-f499f181-
olling back.
2012-06-21 16:14:50 TRACE nova.utils Traceback (most recent call last):
2012-06-21 16:14:50 TRACE nova.utils File "/usr/lib/
2012-06-21 16:14:50 TRACE nova.utils vdis = create_
2012-06-21 16:14:50 TRACE nova.utils File "/usr/lib/
2012-06-21 16:14:50 TRACE nova.utils rv = f(*args, **kwargs)
2012-06-21 16:14:50 TRACE nova.utils File "/usr/lib/
2012-06-21 16:14:50 TRACE nova.utils vdis = self._create_
2012-06-21 16:14:50 TRACE nova.utils File "/usr/lib/
2012-06-21 16:14:50 TRACE nova.utils self._resize_
2012-06-21 16:14:50 TRACE nova.utils File "/usr/lib/
2012-06-21 16:14:50 TRACE nova.utils str(new_disk_size))
2012-06-21 16:14:50 TRACE nova.utils File "/usr/lib/
2012-06-21 16:14:50 TRACE nova.utils return tpool.execute(f, *args)
2012-06-21 16:14:50 TRACE nova.utils File "/usr/lib/
2012-06-21 16:14:50 TRACE nova.utils rv = meth(*args,
2012-06-21 16:14:50 TRACE nova.utils File "/usr/lib/
2012-06-21 16:14:50 TRACE nova.utils return self.__
2012-06-21 16:14:50 TRACE nova.utils File "/usr/lib/
2012-06-21 16:14:50 TRACE nova.utils result = _parse_
2012-06-21 16:14:50 TRACE nova.utils File "/usr/lib/
2012-06-21 16:14:50 TRACE nova.utils raise Failure(
2012-06-21 16:14:50 TRACE nova.utils Failure: ['SR_OPERATION_
2012-06-21 16:14:50 TRACE nova.utils
2012-06-21 16:14:50 ERROR nova.compute.
ce failed to spawn
Below the part of code mentioned in the backtrace:
if virtual_size < new_disk_size:
LOG. debug(_ ("Resizing up VDI %(vdi_uuid)s from %(old_gb)dGB to "
"%(new_ gb)dGB" ) % locals()) version[ 0] > 5:
resize_ func_name = 'VDI.resize'
resize_ func_name = 'VDI.resize_online'
self. _session. call_xenapi( resize_ func_name, vdi_ref,
str( new_disk_ size))
LOG. debug(_ ("Resize instance %s complete") % (instance.uuid))
# Resize up. Simple VDI resize will do the trick
if self._product_
else:
To fix this, is need to get the variable product_band and, since all XCP versions are larger than XenServer 5.x, add it to use only VDI.resize.
I attach a path for the Folsom.