[openstack-dev] [nova] ocata summit libvirt imagebackend refactor session recap

Matt Riedemann mriedem at linux.vnet.ibm.com
Wed Nov 16 20:17:47 UTC 2016

Sorry for getting behind on these, but we're nearing the finish line on 
summit session recaps. :)

We had a design summit session to reflect a bit on what went well and 
what didn't go so well with the libvirt imagebackend refactor work in 
the Newton release, and where to go from here. The full etherpad is here:


We start with the mini retrospective.

What went well:

- mdbooth gained knowledge on some really gross and tricky parts of the 
nova code base, like block devices and the libvirt image backend/cache 
code. The more people know about this code the better though.
- We identified some integration testing gaps.
- The smaller incremental changes were easier to review.

What didn't go so well:

- A lot of code was written but didn't land. This was due to a few 
things, such as review fatigue on a seemingly endless series of changes 
with no end goal in sight, and just in general we had a lot of 
priorities in the Newton release so core reviewers were also spending 
time reviewing other priorities.
- The EMC/ScaleIO team was told their new libvirt imagebackend code 
needed to wait for the refactor work to complete and they pushed up a 
single large patch to refactor all of the code, which was -2ed as it 
conflicted with what mdbooth was working on. There was an obvious 
breakdown in communication here, but we want to stress that we are open 
to new ideas on how to write all of this code, it was just a distraction 
at the time in Newton though so bad timing. We'd probably also need 
better testing coverage before we could totally rewrite all of it.

What to change:

- Work in smaller chunks (10 changes in a series max) to avoid reviewer 
- Do the changes in a single topic branch - the changes in Newton moved 
around a bit and were hard for reviewers to follow.

After the retrospective we talked about the plans for this effort in Ocata.

The major change here is potentially not persisting the storage metadata 
in the nova database as originally laid out in the spec. There are 
thoughts now around storing the canonical domain xml for a libvirt guest 
and then using that for things like reboot. So Matt Booth isn't going to 
focus on the storage persistence part of the spec for Ocata and just 
continue working on refactoring and cleaning up the libvirt image 
backend and image cache code.

We also said that we wouldn't block the ScaleIO imagebackend on the 
refactor work now, same with Virtuozzo supporting ephemeral disks.

Finally, we talked a bit about reviving some CI testing around resizing 
with ephemeral disks here:


We want to try and move forward on that by modifying the test flavors 
created in devstack to include some ephemeral disk and then change the 
proposed test in Tempest to check if the flavors that Tempest is 
configured to use contain ephemeral disk and if so, then resize the 
instance and ssh into the guest to verify the ephemeral disks were 
resized, else just skip the test.



Matt Riedemann

More information about the OpenStack-dev mailing list