** Changed in: nova
Status: In Progress => Invalid
** Changed in: nova
Assignee: Fan Guo (faguo) => (unassigned)
--
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/1348495
Title:
VMware vCenter Driver failed to extend virtual disk while booting new
VM
Status in OpenStack Compute (Nova):
Invalid
Bug description:
How to produce this bug:
Compute driver: VMwareVCDriver
vSphere API 5.1,
VMware use: Administrator
Image: sparse type with ide controller.
Confiure in nova.conf: linked_clone =True.
Boot vm with “root_disk_size” (Example: 20GB)>
“image_size”(Example:10GB)
If it’s first time to do this kind of vm booting, then lead to a booting
failure.
Then, try to boot a second VM with the same image and flavor of first
booting, you will success this time.
I noticed that vm booting failed in the virtual disk extending phase.
… In this phase:
If there is no virtual disk cache(virtual disk with the targeted image and
root disk size) in this host,
and “root_disk_size” (defines in flavor, Example: 20GB)>
“image_size”(defined in image file, Example:10GB),
then go to the virtual disk extending phase.
Tasks of virtual disk extending phase:
1) Invoke virtual disk extending task (t_1) to do the disk extending
thing.
2) Make one additional task (t_2) to check the status(queued, running,
error, success) of task (t_1).
Task (t_2) failed with an error, and this error causes the vm booting process
to fail.
So, this causes the first VM booting failed.
But, there is no clean job to clear the (t_1) task, so the virtual disk will
still in extending, and at last(very fast without zero formatting) this
extending will success.
So, the second time we boot VM with the same image and flavor of the previous
booting, the extended virtual disk(cache) is already there.So, that’s why I
successed in the second booting.
I think the following code causes this issue:
def _poll_task(self, task_ref, done):
"""Poll the given task, and fires the given Deferred if we
get a result.
"""
try:
task_info = self._call_method(vim_util, "get_dynamic_property",
task_ref, "Task", "info")
task_name = task_info.name
If task_info is None, then checking status of the task will cause
exception, and we just log and reraise it in the upper caller. So lead
to VM booting process failed.
To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1348495/+subscriptions
--
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to : [email protected]
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help : https://help.launchpad.net/ListHelp