Live migration fails when the instance has a config_drive_format=iso9660
| Affects | Status | Importance | Assigned to | Milestone | |
|---|---|---|---|---|---|
| | OpenStack Compute (nova) |
High
|
Pawel Koniszewski | ||
| | Icehouse |
High
|
Matt Symonds | ||
| | Juno |
High
|
Matt Riedemann | ||
Bug Description
This error has occurred under the following situations.
・ Live migration of volume backed instance which has a config-drive
・ Block migration of instance which has a config-drive
we have to create a config-drive on destination host in pre-live-migration.
| description: | updated |
| Matt Riedemann (mriedem) wrote : | #1 |
this is real
on the source node:
2013-11-27 17:05:13.337 6143 ERROR nova.virt.
on the destination node:
2013-11-27 17:05:13.632 WARNING nova.compute.
2013-11-27 17:05:13.639 ERROR nova.compute.
2013-11-27 17:05:13.639 15756 TRACE nova.compute.
2013-11-27 17:05:13.639 15756 TRACE nova.compute.
2013-11-27 17:05:13.639 15756 TRACE nova.compute.
2013-11-27 17:05:13.639 15756 TRACE nova.compute.
2013-11-27 17:05:13.639 15756 TRACE nova.compute.
2013-11-27 17:05:13.639 15756 TRACE nova.compute.
2013-11-27 17:05:13.639 15756 TRACE nova.compute.
2013-11-27 17:05:13.639 15756 TRACE nova.compute.
2013-11-27 17:05:13.639 15756 TRACE nova.compute.
| Changed in nova: | |
| status: | New → Confirmed |
| Changed in nova: | |
| status: | Confirmed → Triaged |
| importance: | Undecided → High |
| assignee: | nobody → Michael Still (mikalstill) |
| Michael Still (mikal) wrote : | #3 |
We see users with this problem with grizzly and libvirt.
| Michael Still (mikal) wrote : | #4 |
Ok. I have re-created this problem in devstack on trunk. What I am seeing is:
- I can boot an instance with config drive. The config drive has configuration information in it.
- I block migrate that instance to another hypervisor node. The config drive is now an invalid filesystem.
Can I confirm this is the error that you are seeing?
| Michael Still (mikal) wrote : | #5 |
Ok, it looks to me that the problem is that libvirt doesn't migrate cdrom devices, even if they're virtual. If I change the disk type of the disk.config to "disk", then everything works fine.
Fix proposed to branch: master
Review: https:/
| Changed in nova: | |
| status: | Triaged → In Progress |
| Changed in nova: | |
| milestone: | none → icehouse-rc1 |
this bug could be pushed to icehouse-
Reviewed: https:/
Committed: https:/
Submitter: Jenkins
Branch: master
commit ee4a26bb57b08c0
Author: Michael Still <email address hidden>
Date: Thu Mar 20 08:36:38 2014 +1100
Refuse to block migrate instances with config drive
libvirt does not block migrate read only devices such as config
drives. It decides that the config drive is read only because it
is attached as a cdrom. So, we just throw our hands up in the
air and bravely refuse to block migrate those instances.
Partial-Bug: 1246201
Change-Id: I24f4f83c1ddf1c
DocImpact: you should read all that stuff above.
This made it in
| Changed in nova: | |
| status: | In Progress → Fix Committed |
| Michael Still (mikal) wrote : | #10 |
We should note that what got committed is a partial fix, and will need to be revisited.
| Changed in nova: | |
| status: | Fix Committed → Fix Released |
| Changed in nova: | |
| milestone: | icehouse-rc1 → 2014.1 |
| Dmitry Borodaenko (angdraug) wrote : | #11 |
Given that this is a partial fix, should this bug now be reopened?
| Michael Still (mikal) wrote : | #12 |
Reopening because previous fix was partial.
| Changed in nova: | |
| milestone: | 2014.1 → none |
| status: | Fix Released → Triaged |
| Loganathan Parthipan (parthipan) wrote : | #13 |
Would it be OK to make this configurable? In installations where config drives are vfat, the administrator can make the decision to migrate if they wish.
I've sent in a review for this:
| Antony Messerli (antonym) wrote : | #14 |
I've been testing block migrations with vfat and config drives and they seem to work without any issues. Any progress on getting this made configurable?
| Mehdi Abaakouk (sileht) wrote : | #15 |
I have proposed a change related to this issue: https:/
| Matt Symonds (msymonds) wrote : | #16 |
Any updates on being able to migrate vfat config_drives being merged in?
| Sean Severson (sseverson) wrote : | #17 |
This had been working been working fine after Mehdi's fix, but that fix has just been reverted, breaking the block migration once again in Juno.
| Oleksii Aleksieiev (alexzzman) wrote : | #18 |
Mehdi's fix is missing code for virt/configdrive.py to actually creates and put data into configdrive.
Looks like its assumes configdrive.
Fix proposed to branch: master
Review: https:/
| Changed in nova: | |
| assignee: | Michael Still (mikalstill) → Artem Yasakov (ayasakov) |
| status: | Triaged → In Progress |
Oops, after a whole year, the problem still exists...
Can we just detach the config drive-->live migrate-->attach config drive again ?
Fix proposed to branch: master
Review: https:/
| Changed in nova: | |
| assignee: | Artem Yasakov (ayasakov) → Luo Gangyi (luogangyi) |
Change abandoned by Sean Dague (<email address hidden>) on branch: master
Review: https:/
Reason: This review is > 4 weeks without comment, and failed Jenkins the last time it was checked. We are abandoning this for now. Feel free to reactivate the review by pressing the restore button and leaving a 'recheck' comment to get fresh test results.
Change abandoned by Sean Dague (<email address hidden>) on branch: master
Review: https:/
Reason: This review is > 4 weeks without comment, and failed Jenkins the last time it was checked. We are abandoning this for now. Feel free to reactivate the review by pressing the restore button and leaving a 'recheck' comment to get fresh test results.
Change abandoned by Sean Dague (<email address hidden>) on branch: master
Review: https:/
Reason: This review is > 4 weeks without comment, and failed Jenkins the last time it was checked. We are abandoning this for now. Feel free to reactivate the review by pressing the restore button and leaving a 'recheck' comment to get fresh test results.
I'm going to fix this in libvirt.
The best we can do now in terms of a workaround in nova is to either (disable it unconditionally) or add a config option for those that know it works in their environment.
| Changed in nova: | |
| assignee: | Luo Gangyi (luogangyi) → Tony Breeds (o-tony) |
| Davanum Srinivas (DIMS) (dims-v) wrote : | #26 |
Fix proposed in libvirt
| Pádraig Brady (p-draigbrady) wrote : | #27 |
libvirt fix proposed at https:/
Fix proposed to branch: master
Review: https:/
| Changed in nova: | |
| assignee: | Tony Breeds (o-tony) → Mehdi Abaakouk (sileht) |
Change abandoned by Mehdi Abaakouk (<email address hidden>) on branch: master
Review: https:/
Reason: Merged in previous review
Fix proposed to branch: master
Review: https:/
| Changed in nova: | |
| assignee: | Mehdi Abaakouk (sileht) → Davanum Srinivas (DIMS) (dims-v) |
Change abandoned by Davanum Srinivas (dims) (<email address hidden>) on branch: master
Review: https:/
Fix proposed to branch: stable/juno
Review: https:/
| Changed in nova: | |
| assignee: | Davanum Srinivas (DIMS) (dims-v) → nobody |
Change abandoned by Davanum Srinivas (dims) (<email address hidden>) on branch: stable/juno
Review: https:/
| Changed in nova: | |
| assignee: | nobody → Davanum Srinivas (DIMS) (dims-v) |
| Changed in nova: | |
| status: | In Progress → Confirmed |
| Davanum Srinivas (DIMS) (dims-v) wrote : Re: Live migration fails when the instance has a config-drive | #34 |
Tony,
Can you please open a libvirt bug as requested by Kashyap in the libvirt thread
https:/
thanks,
dims
| Changed in nova: | |
| status: | Confirmed → In Progress |
Reviewed: https:/
Committed: https:/
Submitter: Jenkins
Branch: master
commit 4e665112f275f17
Author: Luo Gangyi <email address hidden>
Date: Wed Nov 12 01:42:37 2014 -0800
libvirt: partial fix for live-migration with config drive
In current version of nova, live-migration with config drive on
local disk is forbidden due to the bug of libvirt of copying readonly
disk. However, if we use vfat as the format of config drive,
the function of live-migration works well.
In this patch, we re-open the function of live-migration to admin users.
Notice you should add 'config_
This patch doesn't solve the problem fundamentally which need further
efforts, but offers a simple and feasible workaround to user.
DocImpact
Co-Authored-By: Davanum Srinivas <email address hidden>
Change-Id: I7429e12766da7f
Partial-Bug: #1246201
| tags: | added: live-migrate |
@Tony, if you don't have enough time I can take action to implement this. Let's work together.
| Changed in nova: | |
| assignee: | Davanum Srinivas (DIMS) (dims-v) → nobody |
| summary: |
- Live migration fails when the instance has a config-drive + Live migration fails when the instance has a config_drive_format=iso9660 |
| Pavel Boldin (pboldin) wrote : | #38 |
Both `libvirt' (NBD) and `qemu' (block-migration) only migrate non-readonly devices.
So, both `libvirt' and `qemu' need to be modified in order to implement block-migration.
| Changed in nova: | |
| status: | In Progress → Confirmed |
Fix proposed to branch: stable/juno
Review: https:/
Fix proposed to branch: stable/juno
Review: https:/
Change abandoned by Jordan Tardif (<email address hidden>) on branch: stable/juno
Review: https:/
Reviewed: https:/
Committed: https:/
Submitter: Jenkins
Branch: stable/juno
commit 7c4be65733e48dc
Author: Luo Gangyi <email address hidden>
Date: Wed Nov 12 01:42:37 2014 -0800
libvirt: partial fix for live-migration with config drive
In current version of nova, live-migration with config drive on
local disk is forbidden due to the bug of libvirt of copying readonly
disk. However, if we use vfat as the format of config drive,
the function of live-migration works well.
In this patch, we re-open the function of live-migration to admin users.
Notice you should add 'config_
This patch doesn't solve the problem fundamentally which need further
efforts, but offers a simple and feasible workaround to user.
DocImpact
Conflicts:
NOTE(mriedem): The conflicts are due to:
1. The tests being moved in Kilo.
2. Not having commit 152fb73a3 in stable/juno, this is why we
remove the volume entry from the expected return data.
3. Not having commit 96195d51f in stalbe/juno, this is why we
aren't using objects in the test and have to explicitly
set name and kernel_id on self.test_instance.
Co-Authored-By: Davanum Srinivas <email address hidden>
Change-Id: I7429e12766da7f
Partial-Bug: #1246201
(cherry picked from commit 4e665112f275f17
| tags: | added: in-stable-juno |
| Changed in nova: | |
| assignee: | nobody → lvmxh (shaohef) |
| Pavel Boldin (pboldin) wrote : | #43 |
Seems connected: https:/
I have started on implementation of this thing for libvirt and libvirt-python:
https:/
https:/
Change abandoned by Joe Gordon (<email address hidden>) on branch: master
Review: https:/
Reason: This review is > 4 weeks without comment, and failed Jenkins the last time it was checked. We are abandoning this for now. Feel free to reactivate the review by pressing the restore button and leaving a 'recheck' comment to get fresh test results.
| Matt Symonds (msymonds) wrote : | #45 |
Hi,
Is https:/
| no longer affects: | ubuntu |
| Matt Riedemann (mriedem) wrote : | #46 |
@Matt, no one has proposed it as a backport to stable/icehouse, but you could. However, we're getting pretty close to closing out icehouse (icehouse-eol) so you'd need to act quickly if you want to get a backport proposed.
| Matt Symonds (msymonds) wrote : | #47 |
I'm currently applying this patch manually. How would I go about proposing it to be back-ported?
| tags: | added: icehouse-backport-potential |
| Matt Riedemann (mriedem) wrote : | #48 |
There are some docs here:
https:/
You want to cherry pick the git hash of the merged change on stable/juno to stable/icehouse using "git cherry-pick -x 7c4be65733e48dc
If it doesn't backport cleanly you have to do it manually and resolve conflicts and make sure the tests pass.
Fix proposed to branch: stable/icehouse
Review: https:/
| Matt Symonds (msymonds) wrote : | #50 |
@Matt: Thanks for pointing me in the right direction.
| tags: | removed: icehouse-backport-potential in-stable-juno |
Reviewed: https:/
Committed: https:/
Submitter: Jenkins
Branch: stable/icehouse
commit 8876294fe67048f
Author: Matt Symonds <email address hidden>
Date: Wed Nov 12 01:42:37 2014 -0800
libvirt: partial fix for live-migration with config drive
In current version of nova, live-migration with config drive on
local disk is forbidden due to the bug of libvirt of copying readonly
disk. However, if we use vfat as the format of config drive,
the function of live-migration works well.
In this patch, we re-open the function of live-migration to admin users.
Notice you should add 'config_
This patch doesn't solve the problem fundamentally which need further
efforts, but offers a simple and feasible workaround to user.
DocImpact
Conflicts:
NOTE(symonds): The conflicts are due to:
not using is_shared_
Conflicts:
NOTE(symonds): The conflicts are due to:
not using is_shared_
Co-Authored-By: Davanum Srinivas <email address hidden>, Matt Riedemann <email address hidden>
Change-Id: I7429e12766da7f
Partial-Bug: #1246201
(cherry picked from commit 7c4be65733e48dc
| tags: | added: in-stable-icehouse |
Reviewed: https:/
Committed: https:/
Submitter: Jenkins
Branch: master
commit adecf780d3ed431
Author: Michael Still <email address hidden>
Date: Tue Nov 25 15:42:47 2014 +0300
Handle config drives being stored on rbd
rbd is the only example of a currently supported image storage
backend where it makes sense to put the config drive in the
configured storage backend instead of local hypervisor disk. I
don't think this makes sense for LVM, where we would be creating
a LV for a tens of megabytes file, which seems like overkill to
me. The other storage backends use local disk for their data
already.
This use case was covered by the now reverted changes:
228d02217
0b01e846d
ecce888c4
Support this special case by moving the image to rbd once it has
been created in the local instance directory on the hypervisor.
I've tested this change in devstack and it works.
Related-bug: #1369627
Related-bug: #1361840
Related-bug: #1246201
Co-Authored-By: Mehdi Abaakouk <email address hidden>
Co-Authored-By: Dan Smith <email address hidden>
Change-Id: Ia3ca5a18c79d62
| Pavel Boldin (pboldin) wrote : | #53 |
I have finished implementation of the selective block device migration in the `libvirt' [1] and want to implement the Nova part as well.
Can I reassign this bug on me?
@Pavel in response to #53:
It's over 3 month since user lvmxh assigned the bug to himself, I think it's fair to set yourself as new assignee and provide a patch set in the near future.
| Changed in nova: | |
| assignee: | lvmxh (shaohef) → Pavel Boldin (pboldin) |
| status: | Confirmed → In Progress |
Related fix proposed to branch: stable/kilo
Review: https:/
Change abandoned by Rosario Di Somma (<email address hidden>) on branch: stable/kilo
Review: https:/
| Tyler Bishop (tyler-bishop) wrote : | #57 |
Why is this being abandon?
| Rick Harris (rconradharris) wrote : | #58 |
Pavel: Still working on the corresponding Nova fix to take advantage of the Libvirt change?
| Pavel Boldin (pboldin) wrote : | #59 |
Yes. But at the moment I'm very busy with others tasks so this one is on-hold.
There are published reviews from other contributors: https:/
I have not yet prepared any decent of mine partly because there is this blueprint that should be implemented first in my opinion: https:/
| Tony Breeds (o-tony) wrote : | #60 |
@taylor: only the kilo backport was abandoned and that's because it wasn't valid.
The review that Pavel points at is the "correct" solution for master (and may be baclportable to liberty) but requires a very modern libvirt.
BTW Pavel, Thanks again for doing that work.
Fix proposed to branch: master
Review: https:/
| Changed in nova: | |
| assignee: | Pavel Boldin (pboldin) → Bartosz Fic (bartosz-fic) |
| Changed in nova: | |
| assignee: | Bartosz Fic (bartosz-fic) → Chris St. Pierre (stpierre) |
| Changed in nova: | |
| assignee: | Chris St. Pierre (stpierre) → Pawel Koniszewski (pawel-koniszewski) |
| tags: |
added: live-migration removed: live-migrate |
| Matthew Thode (prometheanfire) wrote : | #62 |
what is the current status, has the fix been merged to libvirt, if so, can we allow migration again for iso9660 config drive instances in mitaka?
| Eli Qiao (taget-9) wrote : | #63 |
Hi Matthew,
please check https:/
Eli.
Change abandoned by John Garbutt (<email address hidden>) on branch: master
Review: https:/
Reason: I have marked the associated blueprint as approved, lets track this as purely a bug fix now?
| Changed in nova: | |
| status: | In Progress → Confirmed |
| assignee: | Pawel Koniszewski (pawel-koniszewski) → nobody |
| Changed in nova: | |
| assignee: | nobody → Michael Still (mikal) |
| status: | Confirmed → In Progress |
| Changed in nova: | |
| status: | In Progress → Won't Fix |
| status: | Won't Fix → In Progress |
| Changed in nova: | |
| assignee: | Michael Still (mikal) → Pawel Koniszewski (pawel-koniszewski) |
Reviewed: https:/
Committed: https:/
Submitter: Jenkins
Branch: master
commit bc4b9980fa74e15
Author: Pawel Koniszewski <email address hidden>
Date: Wed Jul 6 11:04:16 2016 +0200
[libvirt] Live migration fails when config_
This patch enables block live migration with read-only config drive.
Basically it copies config drive to destination host prior to migration
start, so that QEMU will not try to write to read-only device and
therefore it will not raise an exception.
Co-Authored-By: Bartosz Fic <email address hidden>
Co-Authored-By: Michael Still <email address hidden>
Change-Id: I9ddaef658e3d9a
Closes-Bug: #1246201
| Changed in nova: | |
| status: | In Progress → Fix Released |
This issue was fixed in the openstack/nova 14.0.0.0b3 development milestone.
Fix proposed to branch: stable/mitaka
Review: https:/
Reviewed: https:/
Committed: https:/
Submitter: Jenkins
Branch: stable/mitaka
commit 48d30c16d339c8d
Author: Pawel Koniszewski <email address hidden>
Date: Wed Jul 6 11:04:16 2016 +0200
[libvirt] Live migration fails when config_
This patch enables block live migration with read-only config drive.
Basically it copies config drive to destination host prior to migration
start, so that QEMU will not try to write to read-only device and
therefore it will not raise an exception.
Co-Authored-By: Bartosz Fic <email address hidden>
Co-Authored-By: Michael Still <email address hidden>
Change-Id: I9ddaef658e3d9a
Closes-Bug: #1246201
(cherry picked from commit bc4b9980fa74e15
| tags: | added: in-stable-mitaka |
This issue was fixed in the openstack/nova 13.1.2 release.


What level of code? What virt driver? What errors in the nova compute log?