VMware: Extending virtual disk failed with error: capacity

Bug #1555644 reported by Dongcan Ye
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenStack Compute (nova)
Fix Released
Undecided
Dongcan Ye

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.

Tags: vmware
Dongcan Ye (hellochosen)
Changed in nova:
assignee: nobody → Dongcan Ye (hellochosen)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to nova (master)

Fix proposed to branch: master
Review: https://review.openstack.org/291203

Changed in nova:
status: New → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to nova (master)

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 <email address hidden>
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
Revision history for this message
Davanum Srinivas (DIMS) (dims-v) wrote : Fix included in openstack/nova 14.0.0.0b1

This issue was fixed in the openstack/nova 14.0.0.0b1 development milestone.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.