The vm system disk data was overided by glance image data when evacuating a vm on shared storage.
The nova/compute/manager.py file in icehouse version:
@object_compat @messaging.expected_exceptions(exception.PreserveEphemeralNotSupported) @wrap_exception() @reverts_task_state @wrap_instance_event @wrap_instance_fault def rebuild_instance(self, context, instance, orig_image_ref, image_ref, injected_files, new_pass, orig_sys_metadata, bdms, recreate, on_shared_storage, preserve_ephemeral=False): ********** kwargs = dict( context=context, instance=instance, image_meta=image_meta, injected_files=files, admin_password=new_pass, bdms=bdms, detach_block_devices=detach_block_devices, attach_block_devices=self._prep_block_device, block_device_info=block_device_info, network_info=network_info, preserve_ephemeral=preserve_ephemeral)
the kwargs lost parameter recreate=recreate, and it result in the data always destroyed when a vm evacuated.
The vm system disk data was overided by glance image data when evacuating a vm on shared storage.
The nova/compute/ manager. py file in icehouse version:
@object_compat expected_ exceptions( exception. PreserveEphemer alNotSupported) exception( ) task_state instance_ event instance_ fault instance( self, context, instance, orig_image_ref, image_ref,
injected_ files, new_pass, orig_sys_metadata,
bdms, recreate, on_shared_storage,
preserve_ ephemeral= False):
context= context,
instance= instance,
image_ meta=image_ meta,
injected_ files=files,
admin_ password= new_pass,
bdms= bdms,
detach_ block_devices= detach_ block_devices,
attach_ block_devices= self._prep_ block_device,
block_ device_ info=block_ device_ info,
network_ info=network_ info,
preserve_ ephemeral= preserve_ ephemeral)
@messaging.
@wrap_
@reverts_
@wrap_
@wrap_
def rebuild_
**********
kwargs = dict(
the kwargs lost parameter recreate=recreate, and it result in the data always destroyed when a vm evacuated.