[Gluster-devel] Plans for Gluster 3.8
Csaba Henk
chenk at redhat.com
Wed Jul 22 10:31:06 UTC 2015
Hi All,
let me discuss what Manila needs from GlusterFS for Liberty.
(Please roll down to Summary if you are not interested
in the context.)
Let's recap from where we left off with the GlusterFS feature
discussion: "The Manila RFEs and why so",
http://www.gluster.org/pipermail/gluster-devel/2015-June/045483.html
There we outlined three groups of features:
- Directory level operations
- Smart volume management
- Query features
We made the declaration there that the first two are alternatives
to each other and that addressing one of them is absolutely necessary.
The Gluster community took the challenge and settled with
"Smart volume management" as the favoured feature set and addressed
it with the emergence Heketi (the integration of which continues,
as Vijay also points it out). In that way the first two groups are
properly settled, having the first one abandoned and the second
one completed.
That leaves us with the third group as a residue:
- 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
Of these, we came to realize that "size query" would not
be used with Heketi, so we can retire that too. However,
"volume capability query" is still sought for, even if
not a top priority. So that's the one we take over to
3.8 planning.
But let's then see the hot cases:
- Bug 1245380 - [RFE] Render all mounts of a volume defunct upon access revocation
https://bugzilla.redhat.com/show_bug.cgi?id=1245380
Context:
In http://thread.gmane.org/gmane.comp.cloud.openstack.devel/58419/focus=58647
Ben Swartzlander, the project lead of Manila declares:
"Access deny should always result in immediate loss of access to the
share. It's not okay for a client to continue reading/writing data to a
share after access has been denied."
As of now, we do comply with this, given we restart the volume upon
making any change to auth.ssl-allow (and the restart will render the mounts
defunct). However, one of the important planned scalability improvements is
that we drop the restart step, which was expected to be made possible by
getting a fix for
Bug 1228127 - Volume needs restart after editing auth.ssl-allow list
for volume options which otherwise has to be automatic
https://bugzilla.redhat.com/show_bug.cgi?id=1228127
But we still can't do it, as with that existing mounts would stay
functional after revocation of access. Implementing the RFE in question
would remove this obstacle.
We are to reconcile with an old friend too:
- Bug 829042 - [FEAT] selective read-only mode
https://bugzilla.redhat.com/show_bug.cgi?id=829042
This became an _absolute must have_ as read-only support
is one of the Manila project's requirements for drivers in Liberty
(cf. https://etherpad.openstack.org/p/manila-minimum-driver-requirements)
and in order to work with a read-only volume we need a special way
to access it in full (read-write) mode as well (for purposes of
management).
There is prior art in this regard by your humble presenter:
http://review.gluster.org/#/q/topic:bug-829042
The plan there was to grant r/w access to the volume for certain
client pids. To that end I came up with
- a special syntax for specifying ranges of integers (planned
to be used to specify the r/w granted client pid set),
cf. http://review.gluster.org/3525
- the patch for read-only xlator that allows r/w for the
distinguished client pids (specified via the above syntax),
cf. http://review.gluster.org/3526
However, my syntax become controversial and considered to be
an overkill, at which point the whole effort was abandoned.
Yet there is no argument against a cut back version
of the second change whereby the option to grant r/w access
would take just a single integer value (or maybe an itemized
finite list of integers -- but not infinite set of integers,
like "all the negatives"). Thus the second change can be amended
and resubmitted without relying the concept of the first patch.
There is still a concern though: this mechanism to provide
rw/ro access is *advisory*. There is no way to prevent a tenant
from using the particular negative client pid that gives her
rw access. Thus we need an additional auth mechanism extension
that makes it possible to limit the usage of negive client pids.
OR we need another approach (different from mine, that is, in terms
of client pids) to get at selective read-onliness.
* * *
Summary and announcement of results (order means priority):
1. Bug 829042 - [FEAT] selective read-only mode
https://bugzilla.redhat.com/show_bug.cgi?id=829042
absolutely necessary for not getting tarred & feathered in Tokyo ;)
either resurrect http://review.gluster.org/3526
and _find out integration with auth mechanism for special
mounts_, or come up with a completely different concept
2. Bug 1245380 - [RFE] Render all mounts of a volume defunct upon access revocation
https://bugzilla.redhat.com/show_bug.cgi?id=1245380
necessary to let us enable a watershed scalability
enhancement
3. Bug 1226776 – [RFE] volume capability query
https://bugzilla.redhat.com/show_bug.cgi?id=1226776
eventually we'll be choking in spaghetti if we don't get
this feature. The ugly version checks we need to do against
GlusterFS as in
https://review.openstack.org/gitweb?p=openstack/manila.git;a=commitdiff;h=29456c#patch3
will proliferate and eat the guts of the code out of its
living body if this is not addressed.
Csaba
----- Original Message -----
> From: "Vijay Bellur" <vbellur at redhat.com>
> To: "gluster-users Discussion List" <Gluster-users at gluster.org>
> Cc: "Gluster Devel" <gluster-devel at gluster.org>
> Sent: Thursday, July 9, 2015 8:57:35 AM
> Subject: [Gluster-devel] Plans for Gluster 3.8
>
> Hey All,
>
> Now that 3.7 is out, here are some thoughts on how we can shape up 3.8. I am
> thinking of releasing Gluster 3.8 towards the end of this year. Here is a
> tentative list of things that we are contemplating to do in 3.8:
>
> 1. Improvements for "Storage as a Service"
>
> "Storage as a Service" broadly refers to the model where storage can be
> provisioned or decommissioned on demand, storage caters to single or multi
> tenant workloads and completely automated provisoning of storage is
> possible. Storage as a Service is what public/private clouds use as a
> building block today. By selecting enhancements and improvements that fit
> into this paradigm, we can make Gluster to be more easily adopted in modern
> datacenters. Following are sample use cases/workloads that can benefit by
> gluster improvements:
>
> - Manila: File Share as a service project in OpenStack
> - Shared Storage for Containers
> - Any deployment where shares are created as a service
>
>
> Enhancements that can be accomplished in this release include:
>
> a. Intelligent Volume provisioning through Heketi [1]
> b. Kerberized support for GlusterFS protocol
> c. Better network management support [2]
>
>
> 2. Regression test & Quality improvements
>
> We have zeroed in on distaf[3] as the framework of choice where we will be
> adding support for multi-node regression tests. This will augment the single
> node pre-commit regression tests that we already run today with Jenkins. I
> expect tests in distaf passing as a gating factor for GA of all releases
> from 3.8. Here is what we would like to do in this release cycle:
>
> a. all gluster components to have tests populated in distaf
> b. CI using Jenkins for running tests in distaf on nightlies/release
> candidates
>
>
> 3. Storage for Containers
>
> There seems to be significant attention on storage for containers recently.
> We can cater to this interest by picking specific improvements for container
> storage like:
>
> a. shared storage for applications in containers (already possible with nfs
> today). Explore how we can do this with native client etc.
> b. shared storage for docker/container repositories
> c. hyperconvergence of containers & storage
>
> 4. Hyperconvergence with oVirt
>
> There is an ongoing effort to have hyperconvergence of gluster with oVirt for
> storing virtual machine images in a single cluster [4]. Improvements like
> the following can help in making Gluster a better fit for hyperconvergence:
>
> a. Throttling for maintenance operations in gluster (self-healing/rebalance
> etc.)
> b. Ensuring data locality for virtual machine images
> c. Integration of sharding for hyperconvergence (expect to reach here sooner
> than 3.8)
>
> 5. Performance improvements
>
> a. Continue the onoging small file performance improvements [5]
> b. multi-threaded self-heal daemon for improving performance of self-healing
>
> 6. Other improvements like full fledged IPv6 support, delegations/lease-lock
> improvements, more policies for tiering, support for systematic erasure
> codes, support for native object service etc. are also planned.
>
> There are other improvements which are being planned and have not found a
> mention here. If you are aware of such improvements, please reply to this
> thread. I will be collating this information and publish a release planning
> page for 3.8 in gluster.org.
>
> If you have come all the way till here, we would be interested in knowing the
> following:
>
> (i) What are your thoughts on the plan?
> (ii) What other improvements would you be interested in seeing?
>
> Thoughts and feedback would be very welcome!
>
> Thanks,
> Vijay
>
>
> [1] https://github.com/heketi/heketi/
>
> [2]
> http://www.gluster.org/community/documentation/index.php/Features/SplitNetwork
>
> [3] https://github.com/gluster/distaf
>
> [4] http://www.ovirt.org/Features/GlusterFS-Hyperconvergence
>
> [5]
> http://www.gluster.org/community/documentation/index.php/Features/Feature_Smallfile_Perf
>
>
> _______________________________________________
> Gluster-devel mailing list
> Gluster-devel at gluster.org
> http://www.gluster.org/mailman/listinfo/gluster-devel
>
More information about the Gluster-devel
mailing list