[openstack-dev] [Manila] Removal of LXD driver
Ben Swartzlander
ben at swartzlander.org
Wed Mar 16 14:43:59 UTC 2016
After conferring with aovchinnikov about the remaining bugs against the
LXD driver, I have decided that it's better for Manila if we remove the
driver from the tree before the Mitaka release.
The goal of adding the driver was to create a new, faster, first party
Manila driver which had proper support for share servers. We need this
because the generic driver is both slow and somewhat unreliable.
While the LXD driver worked correctly, it never reached the point where
it was completely stable with high concurrency, and thus didn't meet our
need for a new driver to use in gate tests.
The following are specific reasons for removing it:
1) The LXD project appears to have an unstable API. We cannot find a
client version that works with all available releases of LXD and we
can't find a stable version of LXD to recommend to users. Evidence shows
that the Manila LXD driver is compatible with LXD 2.0RC2 but not 2.0RC3.
We can't recommend users run RC2, and if we change the driver to be
compatible with RC3 we can't guarantee something else won't break with
some future release. Until the LXD project releases something stable, it
doesn't make sense to release a Manila driver based upon it.
2) RedHat brought up the issue that LXD is not shipped on all Linux
distros, and in fact the pylxd library that the driver depends on is not
even packaged on some distros. As a community we avoid libraries that
are not widely available, so pylxd was a bad fit here. We implemented
some workarounds that made the problem less bad for RedHat users, but
the fact was that the LXD driver was never going to be a good solution
for RedHat users, unless RedHat was convinced to distribute LXD (which
is a topic I officially have no opinion about). For this reason we were
likely to consider replacing the LXD driver with a different
container-based driver in Newton, and that would have created upgrade
problems for anyone who actually used the LXD driver in Mitaka. It's
better to remove it before release to avoid the upgrade issues.
We still retain the option to bring the LXD driver back in Newton, if
solutions to the above problems can be found -- the code and all
unmerged bugfixes will be preserved so it can be resubmitted if we
desire. Alternatively we may implement another container-based driver
that doesn't suffer from the above problems. If we do that it's likely
that a majority of the LXD driver code can be reused for that driver.
The problem which the LXD driver was created to solve has not gone away,
so a solution is still needed in Newton. Personally I'm still very
optimistic about using containers to solve the problem but we need to be
more careful about selecting a more stable and widely-supported
container platform.
-Ben Swartzlander
More information about the OpenStack-dev
mailing list