← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1555644] Re: VMware: Extending virtual disk failed with error: capacity

 

Reviewed:  https://review.openstack.org/291203
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=589660af7c4ac3903f209c912e89795b8d62a122
Submitter: Jenkins
Branch:    master

commit 589660af7c4ac3903f209c912e89795b8d62a122
Author: Dongcan Ye <hellochosen@xxxxxxxxx>
Date:   Thu Mar 10 22:09:24 2016 +0800

    VMware: Always update image size for sparse image
    
    In some situation, if image cache folder already exists, we may not
    update image size. This will cause extend root disk failed in situation
    using sparse image and use_linked_clone.
    
    This patch update image size for sparse image whether the image cache
    folder exists or not.
    
    Change-Id: I017194e7314458a493ccc942bef34209a902809e
    Closes-Bug: #1555644


** Changed in: nova
       Status: In Progress => Fix Released

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/1555644

Title:
  VMware: Extending virtual disk failed with error: capacity

Status in OpenStack Compute (nova):
  Fix Released

Bug description:
  Scenario A:
  1. image disk type: sparse
  2. image size(2.3G)
  3. flavor1(root_disk: 5G)
  4. use_linked_clone

  Scenario B:
  1. image disk type: sparse
  2. image size(2.3G)
  3. flavor2(root_disk: 6G)
  4. use_linked_clone

  I boot an instance with sparse image disk, image size is 2.3G, Nova
  flavor root disk is 5G, everything got well(Scenario A).

  Then I boot another instance  with new flavor root disk 6G(Scenario B),  it raises error:
  2016-03-10 17:31:56.350 3211 ERROR nova.compute.manager [req-a3e93241-5f54-485a-a7f0-2e1e0ebad92d 4412e38ec9814b96a03e63097ec51f1a 8f75187cd29f4715881f450646fc6e08 - - -] [instance: 22ea4a58-2296-40fc-b69b-a511a3b6d925] Instance failed to spawn
  2016-03-10 17:31:56.350 3211 TRACE nova.compute.manager [instance: 22ea4a58-2296-40fc-b69b-a511a3b6d925] Traceback (most recent call last):
  2016-03-10 17:31:56.350 3211 TRACE nova.compute.manager [instance: 22ea4a58-2296-40fc-b69b-a511a3b6d925]   File "/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 2461, in _build_resources
  2016-03-10 17:31:56.350 3211 TRACE nova.compute.manager [instance: 22ea4a58-2296-40fc-b69b-a511a3b6d925]     yield resources
  2016-03-10 17:31:56.350 3211 TRACE nova.compute.manager [instance: 22ea4a58-2296-40fc-b69b-a511a3b6d925]   File "/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 2333, in _build_and_run_instance
  2016-03-10 17:31:56.350 3211 TRACE nova.compute.manager [instance: 22ea4a58-2296-40fc-b69b-a511a3b6d925]     block_device_info=block_device_info)
  2016-03-10 17:31:56.350 3211 TRACE nova.compute.manager [instance: 22ea4a58-2296-40fc-b69b-a511a3b6d925]   File "/usr/lib/python2.7/site-packages/nova/virt/vmwareapi/driver.py", line 480, in spawn
  2016-03-10 17:31:56.350 3211 TRACE nova.compute.manager [instance: 22ea4a58-2296-40fc-b69b-a511a3b6d925]     admin_password, network_info, block_device_info)
  2016-03-10 17:31:56.350 3211 TRACE nova.compute.manager [instance: 22ea4a58-2296-40fc-b69b-a511a3b6d925]   File "/usr/lib/python2.7/site-packages/nova/virt/vmwareapi/vmops.py", line 636, in spawn
  2016-03-10 17:31:56.350 3211 TRACE nova.compute.manager [instance: 22ea4a58-2296-40fc-b69b-a511a3b6d925]     self._use_disk_image_as_linked_clone(vm_ref, vi)
  2016-03-10 17:31:56.350 3211 TRACE nova.compute.manager [instance: 22ea4a58-2296-40fc-b69b-a511a3b6d925]   File "/usr/lib/python2.7/site-packages/nova/virt/vmwareapi/vmops.py", line 1747, in _use_disk_image_as_linked_clone
  2016-03-10 17:31:56.350 3211 TRACE nova.compute.manager [instance: 22ea4a58-2296-40fc-b69b-a511a3b6d925]     vi.dc_info, vi.ii, vi.instance, str(sized_disk_ds_loc))
  2016-03-10 17:31:56.350 3211 TRACE nova.compute.manager [instance: 22ea4a58-2296-40fc-b69b-a511a3b6d925]   File "/usr/lib/python2.7/site-packages/nova/virt/vmwareapi/vmops.py", line 224, in _extend_if_required
  2016-03-10 17:31:56.350 3211 TRACE nova.compute.manager [instance: 22ea4a58-2296-40fc-b69b-a511a3b6d925]     root_vmdk_path, dc_info.ref)
  2016-03-10 17:31:56.350 3211 TRACE nova.compute.manager [instance: 22ea4a58-2296-40fc-b69b-a511a3b6d925]   File "/usr/lib/python2.7/site-packages/nova/virt/vmwareapi/vmops.py", line 202, in _extend_virtual_disk
  2016-03-10 17:31:56.350 3211 TRACE nova.compute.manager [instance: 22ea4a58-2296-40fc-b69b-a511a3b6d925]     self._delete_datastore_file(ds_path, dc_ref)
  2016-03-10 17:31:56.350 3211 TRACE nova.compute.manager [instance: 22ea4a58-2296-40fc-b69b-a511a3b6d925]   File "/usr/lib/python2.7/site-packages/oslo_utils/excutils.py", line 85, in __exit__
  2016-03-10 17:31:56.350 3211 TRACE nova.compute.manager [instance: 22ea4a58-2296-40fc-b69b-a511a3b6d925]     six.reraise(self.type_, self.value, self.tb)
  2016-03-10 17:31:56.350 3211 TRACE nova.compute.manager [instance: 22ea4a58-2296-40fc-b69b-a511a3b6d925]   File "/usr/lib/python2.7/site-packages/nova/virt/vmwareapi/vmops.py", line 193, in _extend_virtual_disk
  2016-03-10 17:31:56.350 3211 TRACE nova.compute.manager [instance: 22ea4a58-2296-40fc-b69b-a511a3b6d925]     self._session._wait_for_task(vmdk_extend_task)
  2016-03-10 17:31:56.350 3211 TRACE nova.compute.manager [instance: 22ea4a58-2296-40fc-b69b-a511a3b6d925]   File "/usr/lib/python2.7/site-packages/nova/virt/vmwareapi/driver.py", line 680, in _wait_for_task
  2016-03-10 17:31:56.350 3211 TRACE nova.compute.manager [instance: 22ea4a58-2296-40fc-b69b-a511a3b6d925]     return self.wait_for_task(task_ref)
  2016-03-10 17:31:56.350 3211 TRACE nova.compute.manager [instance: 22ea4a58-2296-40fc-b69b-a511a3b6d925]   File "/usr/lib/python2.7/site-packages/oslo_vmware/api.py", line 380, in wait_for_task
  2016-03-10 17:31:56.350 3211 TRACE nova.compute.manager [instance: 22ea4a58-2296-40fc-b69b-a511a3b6d925]     return evt.wait()
  2016-03-10 17:31:56.350 3211 TRACE nova.compute.manager [instance: 22ea4a58-2296-40fc-b69b-a511a3b6d925]   File "/usr/lib/python2.7/site-packages/eventlet/event.py", line 121, in wait
  2016-03-10 17:31:56.350 3211 TRACE nova.compute.manager [instance: 22ea4a58-2296-40fc-b69b-a511a3b6d925]     return hubs.get_hub().switch()
  2016-03-10 17:31:56.350 3211 TRACE nova.compute.manager [instance: 22ea4a58-2296-40fc-b69b-a511a3b6d925]   File "/usr/lib/python2.7/site-packages/eventlet/hubs/hub.py", line 294, in switch
  2016-03-10 17:31:56.350 3211 TRACE nova.compute.manager [instance: 22ea4a58-2296-40fc-b69b-a511a3b6d925]     return self.greenlet.switch()
  2016-03-10 17:31:56.350 3211 TRACE nova.compute.manager [instance: 22ea4a58-2296-40fc-b69b-a511a3b6d925]   File "/usr/lib/python2.7/site-packages/oslo_vmware/common/loopingcall.py", line 76, in _inner
  2016-03-10 17:31:56.350 3211 TRACE nova.compute.manager [instance: 22ea4a58-2296-40fc-b69b-a511a3b6d925]     self.f(*self.args, **self.kw)
  2016-03-10 17:31:56.350 3211 TRACE nova.compute.manager [instance: 22ea4a58-2296-40fc-b69b-a511a3b6d925]   File "/usr/lib/python2.7/site-packages/oslo_vmware/api.py", line 417, in _poll_task
  2016-03-10 17:31:56.350 3211 TRACE nova.compute.manager [instance: 22ea4a58-2296-40fc-b69b-a511a3b6d925]     raise task_ex
  2016-03-10 17:31:56.350 3211 TRACE nova.compute.manager [instance: 22ea4a58-2296-40fc-b69b-a511a3b6d925] VMwareDriverException: \u6307\u5b9a\u7684\u53c2\u6570\u9519\u8bef\u3002
  2016-03-10 17:31:56.350 3211 TRACE nova.compute.manager [instance: 22ea4a58-2296-40fc-b69b-a511a3b6d925] capacity
  2016-03-10 17:31:56.350 3211 TRACE nova.compute.manager [instance: 22ea4a58-2296-40fc-b69b-a511a3b6d925]
  2016-03-10 17:31:56.352 3211 INFO nova.compute.manager [req-a3e93241-5f54-485a-a7f0-2e1e0ebad92d 4412e38ec9814b96a03e63097ec51f1a 8f75187cd29f4715881f450646fc6e08 - - -] [instance: 22ea4a58-2296-40fc-b69b-a511a3b6d925] Terminating instance

  
  Because the cache_image_folder already exists, it not update image size.  In _use_disk_image_as_linked_clone function, root_gb greater than image file size, so it excutes  _extend_virtual_disk error.

To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1555644/+subscriptions


References