[Gluster-devel] The Manila RFEs and why so
Csaba Henk
chenk at redhat.com
Wed Jun 3 13:59:28 UTC 2015
Dear GlusterFS community,
please let us (the Manila Team) put forward the list of
features we'd need fromGlusterFS. We filed them as RFEs to
the Bugzilla; let me present them grouped in three groups:
- Directory level operations:
Bug 1226207 – [RFE] directory level snapshot create
https://bugzilla.redhat.com/show_bug.cgi?id=1226207
Bug 1226210 – [RFE] directory level snapshot clone
https://bugzilla.redhat.com/show_bug.cgi?id=1226210
Bug 1226220 – [RFE] directory level SSL/TLS auth
https://bugzilla.redhat.com/show_bug.cgi?id=1226220
Bug 1226788 – [RFE] per-directory read-only access
https://bugzilla.redhat.com/show_bug.cgi?id=1226788
- Smart volume management:
Bug 1226772 – [RFE] GlusterFS Smart volume management
https://bugzilla.redhat.com/show_bug.cgi?id=1226772
- Query features:
Bug 1226225 – [RFE] volume size query support
https://bugzilla.redhat.com/show_bug.cgi?id=1226225
Bug 1226776 – [RFE] volume capability query
https://bugzilla.redhat.com/show_bug.cgi?id=1226776
Let me provide a little background so that you can make
sense of this categories.
Manila is the filesystem provisioning service of
OpenStack. In Manila, a provisionable file tree is called
a share. In general, when implementing shares with a
particular backend we have to find out what kind of entity
on the backed will be mapped to a share. With GlusterFS,
we gave two different answers to that: one we call
"vol[ume] mapped share layout", the other is "dir[ectory]
mapped share layout". With vol mapped, a complete volume
will back a given share; with dir mapped, a top level
directory of a given volume constitutes a share
(theoretically speaking, there is a pool of volumes within
which the share backing directories are created; however,
as of the current implementation, the pool size is one).
There could be a discussion of the overall merit and
inherent advantages / limitations / trade-offs presented
by the two layouts. I wish we were there to have that
discussion. Instead, the truth is that we are juggling
with two layouts because neither of them allow us to
provide a feature complete Manila share driver
implementation. So we are kind of providing both and give
the user a trade off with respect to partial sets of core
functionality.
To make the dir mapped share layout feature complete, we
need directories that behave more like volumes; those
behavioral aspects are collected in the "Directory level
operations group".
To make the vol mapped share layout feature complete, we
need volumes that behave more like directories at least
in terms of dynamic creation. To create a directory,
the only thing you have to provide is the name of it and
there you go. We need a volume creation operation that
creates a volume just by passing the name and the prospective
size of it. So the RFEs of this kind (that single one) are
in the second group, "Smart volume management".
The third group, "Query features" is share layout
agnostic, it's about high level query features that can
make the integration between Manila (or other cloud
services) and GlusterFS less cumbersome than it is now.
(
FYI -- workarounds:
For dir mapped layout, there is no workaround for the missing
features.
For vol mapped layout, lack of smart volume management is
worked around by using a pool of pre-existing gluster volumes
for backing the shares.
For queries:
- lack of proper capability queries is worked around in
various ad-hoc ways, like checking version numbers, or
trial-and-error
- lack of size query is worked around by having a naming
convention for volumes agreed between Manila and GlusterFS
ends that provides info about their size. Also we could
do a service mount of the volume and do a df(1) but that's
cumbersome and does not scale.
)
So from a high level perspective, the quest is to collate
volumes and directories to some degree -- from either end.
We are not inherently biased towards either layout /
collating approach; our priority is to have one that
works well. So the primary question: which could be
delivered sooner, and in what timeframe? (We would ideally
integrate the GlusterFS features for Liberty, which means
they'd need to be delivered early August.)
(
FYI -- efforts so far and perspectives as of my
understanding:
As noted, the "Smart volume management" group is a
singleton, but that single element is tricky. We
have heard promises of a glusterd rewrite that would
include the intelligence / structure for such a feature;
also we toyed around implementing a partial version of
it with configuration management software (Ansible) but
that was too experimental (the whole concept) to dedicate
ourselves to it, so we discontinued that.
OTOH, the directory level features are many but can
possibly be addressed with a single well chosen volume
variant (something like lv-s for all top level
directories?) -- plus the UI would needed to be tailored
to them.
The query features are not vital but have the advantage
of being simpler (especially the size query) which would
be a reason for putting them on the schedule.
)
What we would like: prioritize between "Directory level
operations" and "Smart volume management" and make a plan
for that and execute that plan.
Thanks
Csaba
More information about the Gluster-devel
mailing list