yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #20792
[Bug 1367523] [NEW] Evacute does not preserve data on shared storage
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
Follow ups
References