[openstack-dev] [nova] ocata summit libvirt imagebackend refactor session recap
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.
More information about the OpenStack-dev