Public bug reported: Environment: Centos6.5/KVM/IceHouse latest
Have two compute nodes with shared NFS storage. Live migration and migration work with current configuration of NFS/Nova/etc. One one node a Cirros image is running with local root (no cinder volumes). Write files to the local filesytem. Live migration and migration preserve the data on the local root drive. Shutdown the node with the running instance. nova evacuate --on-shared-storage UUID target The disk file in the instances directory is deleted and rebuilt, losing customer data. Looking into the nova/compute/manager.py file it looks like there is an issue with the recreate flag. It is not passed into the rebuild driver function. If I add the recreate flag to the dictionary args, the evacuate works flawlessly. kwargs = dict( recreate=recreate, <-- added 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) try: self.driver.rebuild(**kwargs) except NotImplementedError: # NOTE(rpodolyaka): driver doesn't provide specialized version # of rebuild, fall back to the default implementation self._rebuild_default_impl(**kwargs) instance.power_state = self._get_power_state(context, instance) This looks like a major oversight so perhaps the initial feature was not meant to work this way? ** Affects: nova Importance: Undecided Status: New ** Tags: evacuation ha -- 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/1367523 Title: Evacute does not preserve data on shared storage Status in OpenStack Compute (Nova): New Bug description: Environment: Centos6.5/KVM/IceHouse latest Have two compute nodes with shared NFS storage. Live migration and migration work with current configuration of NFS/Nova/etc. One one node a Cirros image is running with local root (no cinder volumes). Write files to the local filesytem. Live migration and migration preserve the data on the local root drive. Shutdown the node with the running instance. nova evacuate --on-shared-storage UUID target The disk file in the instances directory is deleted and rebuilt, losing customer data. Looking into the nova/compute/manager.py file it looks like there is an issue with the recreate flag. It is not passed into the rebuild driver function. If I add the recreate flag to the dictionary args, the evacuate works flawlessly. kwargs = dict( recreate=recreate, <-- added 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) try: self.driver.rebuild(**kwargs) except NotImplementedError: # NOTE(rpodolyaka): driver doesn't provide specialized version # of rebuild, fall back to the default implementation self._rebuild_default_impl(**kwargs) instance.power_state = self._get_power_state(context, instance) This looks like a major oversight so perhaps the initial feature was not meant to work this way? To manage notifications about this bug go to: https://bugs.launchpad.net/nova/+bug/1367523/+subscriptions -- Mailing list: https://launchpad.net/~yahoo-eng-team Post to : yahoo-eng-team@lists.launchpad.net Unsubscribe : https://launchpad.net/~yahoo-eng-team More help : https://help.launchpad.net/ListHelp