[Gluster-devel] The Manila RFEs and why so

Vijay Bellur vbellur at redhat.com
Mon Jun 15 07:26:19 UTC 2015

On Tuesday 09 June 2015 04:42 PM, Ramana Raja wrote:
> ----- Vijay Bellur <vbellur at redhat.com> wrote:
>> Would you be able to provide more light on the nature of features/APIs
>> planned to be exposed through Manila in Liberty? Having that information
>> can play an important part in prioritizing and arriving at a decision.
>> Regards,
>> Vijay
> Sure! The preliminary list of APIs that a Manila share driver, which
> talks to the storage backend, must support to be included in Liberty,
> the upcoming Manila release in Sep/Oct 2015, would be available to
> the Manila community sometime later this  week. But it can be
> inferred from the Manila mailing lists and the Manila community
> meetings that the driver APIs for actions such as
> - snapshotting a share,
> - creating a share from a snapshot,
> - providing read-only access level to a share,
> - resizing (extend or shrink) a share,
> besides the basic ones such as creating/deleting a share,
> allowing/denying access to a share would mostly likely be in the list
> of must-haves.
> There are two GlusterFS based share drivers in the current Manila
> release, "glusterfs", and "glusterfs_native" that support NFS and
> native protocol access of shares respectively. The "glusterfs driver"
> treats a top-level directory in a GlusterFS volume as a share (dir
> mapped share layout) and performs share actions at the directory level
> in the GlusterFS backend. And the "gluster_native driver" treats a
> GlusterFS volume as a share (vol mapped share layout) and performs
> share actions at the volume level. But for the Liberty release we'd
> make both the drivers be able to work with either one of the share
> layouts depending on a configurable.
> Our first target is to make both our drivers support the must-have
> APIs for Liberty. We figured that if the volume based layout is used
> by both the drivers, then with existing GlusterFS features it would
> be possible for the drivers to support the must-have APIs, but with
> one caveat - the drivers would have to continue using a work around
> that makes the cloud/storage admin tasks in OpenStack deployments
> cumbersome and has to be done away with in the upcoming release i.e.,
> to create a share of specific size, pick a GlusterFS volume from among
> many already created in various Gluster clusters. The limitation can
> be overcome (as csaba mentioned earlier in this thread),
> "We need a volume creation operation that creates a volume just by
> passing the name and the prospective size of it." The RFE
> for create_share API,
>      Bug 1226772 – [RFE] GlusterFS Smart volume management
> It's also possible for the drivers to have the minimum API set
> using the directory based share layout provided GlusterFS supports
> the following operations needed for
> - create_snapshot API,
>      Bug 1226207 – [RFE] directory level snapshot create
> - create_share_from_snapshot API,
>      Bug 1226210 – [RFE] directory level snapshot clone
> - allow/deny_access APIs in gluster_native driver, as the driver
>    relies on GlusterFS's TLS support to provide secure access to the
>    shares,
>      Bug 1226220 – [RFE] directory level SSL/TLS auth
> - read-only access to shares,
>      Bug 1226788 – [RFE] per-directory read-only accesss
> And for a clean Manila-GlusterFS integration we'd like to have
> high-level query features,
>      Bug 1226225 – [RFE] volume size query support
>      Bug 1226776 – [RFE] volume capability query
> Hope this helps the community to let us know the feature sets -
> smart volume management, directory level features, query features -
> GlusterFS can support by early August and those that it can
> support later, while we strive to increase GlusterFS's adoption in
> OpenStack (Manila) cloud deployments.

Given the current timelines, I am more inclined to go with the volume 
mapped share layout (further referred to as volume layout)  for both 
drivers as it already seems to support the desired features for the 
Liberty cycle.

I also feel that Manila drivers are doing a lot more orchestration for 
supporting shares with gluster than they need to today. Going ahead, I 
am thinking about a higher level service in gluster that exposes a 
ReSTful interface for manila drivers to call out to and have the 
intelligence embedded there.

For instance, the workflow for a share create request in Manila could 
look like this in the new model:

Users ----> create_share (size...) (manila with gluster driver)
               create_gluster_share (size...)
                 -----> gluster-storage-as-a-service-daemon
                          ------->  Transaction over gluster CLI etc.

The response would flow in the reverse direction. I feel that there are 
more consumers of gluster who can benefit from this and have some early 
thoughts on the APIs that should be part of the interface for 

All of the requirements that Manila needs like SmartVolumeManagement, 
choice of volume or directory layout per tenant, querying abilities that 
you allude to could be built in this new service.

The volume layout today cannot possibly scale to thousands of tenants 
but with the scalability improvements slotted for 4.0 and the 
abstraction that we plan to provide through the new daemon it should be 
easier for Manila & other services to integrate with gluster. If there 
are other RFEs/bugs that would need to be addressed for the volume 
layout sooner, please update this thread and let us work together to 
have them addressed in the Liberty release cycle.


More information about the Gluster-devel mailing list