[Gluster-devel] gdploy + Heketi

Sachidananda URS surs at redhat.com
Tue Dec 29 07:30:17 UTC 2015


Hi Luis,


On Sat, Dec 12, 2015 at 3:35 AM, Luis Pabón <lpabon at redhat.com> wrote:

> My proposal is for gdeploy to communicate with Heketi, glusterd, and the
> system itself to service requests from the administrator.  Communicate with
> Heketi for all volume allocation/deallocation, with glusterd for any
> modifications on the volume, and with the node operating system (if really
> necessary) for any required setup.
>
> The following is just a brainstorm, not a spec file by any means.  Just an
> idea of what the workflow could be like.
>
> Here is a possible workflow:
>
> # Admin: Create SSH keys
>

The above would be the only step needed, in my opinion.


> # Admin: Setup Heketi service
>   - Heketi configured with private SSH key.
>


This I guess, can be taken care of by gdeploy.


> # Admin: Raw nodes are setup only with the gluster service and the public
> ssh key.
> # Admin: Create topology.json with clusters, nodes, zones, and devices.
> Admin needs to create a topology.json file.  See example in
>
> https://github.com/heketi/vagrant-heketi/blob/master/roles/heketi/files/topology_libvirt.json
>

Writing the topoloy can itself be tricky and time consuming as the size of
the nodes and other parameters
increase. Maybe we can read the gdeploy configuration file, and write the
json if necessary for Heketi.



>
> * gdeploy topology load -json=topology.json
>   - Assume that the configuration of the location of the Heketi server is
> known, either by an environment
>     variable, configuration file, or switch.
>   - At this point Heketi has been loaded with the configuration of the
> data center.
> # Display topology
> * gdeploy topology show
> Cluster [2345235]
>  |- Node [my.node.com]
>     |- Device [/dev/sdb]
>     |- Device [/dev/sdc]
> Cluster [F54DD]
>  |- Node...
> ...
>
>
This looks cool. We should be doing this.


> # Display node information
> * gdeploy node info [hostname or uuid]
>
> # Create a volume
> * gdeploy volume create -size=100
>
> # Create volumes from a configuration file
> * gdeploy volume create -c volumes.conf
>
> $ cat volumes.conf
> [volume]
> action=create
> volname=Gdeploy_test  <-- optional
> transport=tcp,rdma  <-- would need to be added to Heketi
> replica=yes
> replica_count=2
>
> [clients]
> action=mount
> #volname=glustervol (If not specified earlier in 'volume' section
> hosts=node2.redhat.com
> fstype=glusterfs
> client_mount_points=/mnt/gluster
>
>
> # Set volume options, snapshots, etc.
> These would first talk to Heketi to determine which servers are servicing
> this volume.
> gdeploy can then communicate with glusterd to execute the volume
> modifications.
> * gdeploy volume options <vol name and cluster | UUID> <options=val>
> * gdeploy volume options <vol name and cluster | UUID>-c options.conf
>
> # Destroy a volume
> Here gdeploy would first check for snapshots.  If there are none, then it
> would
> request the work from Heketi.
>
>
> These are just some possible methods of how they could interact.
>


These things we can work on to achieve. We may need major overhaul to
gdeploy to get all these in place.
Will work towards this and get back to you.

-sac


>
> - Luis
>
>
> On 12/11/2015 02:16 AM, Sachidananda URS wrote:
>
>
>
> On Fri, Dec 11, 2015 at 12:31 PM, Luis Pabon <lpabon at redhat.com> wrote:
>
>> I think at its simplest would be to specify workflow examples and how
>> gdploy+Heketi would satisfy them.  I will be sending out some possible
>> workflows tomorrow.
>>
>
> Awesome, I will see if we can add something to it.
>
>
>>
>> Also, there is a python Heketi client in the works right now which would
>> benefit gdeploy:  <https://github.com/heketi/heketi/pull/251>
>> https://github.com/heketi/heketi/pull/251 .
>>
>>
> Cool, will check this out.
>
> -sac
>
>
>> - Luis
>>
>> ----- Original Message -----
>> From: "Sachidananda URS" <surs at redhat.com>
>> To: "Luis Pabon" <lpabon at redhat.com>
>> Cc: "Gluster Devel" <gluster-devel at gluster.org>
>> Sent: Friday, December 11, 2015 1:54:18 AM
>> Subject: Re: gdploy + Heketi
>>
>> Hi Luis,
>>
>> On Fri, Dec 11, 2015 at 12:01 PM, Luis Pabon < <lpabon at redhat.com>
>> lpabon at redhat.com> wrote:
>>
>> > Hi Sachidananda,
>> >   I think there is a great opportunity to enhance GlusterFS management
>> by
>> > using gdeploy as a service which uses Heketi for volume management.
>> > Currently, gdeploy sets up nodes, file systems, bricks, and volumes.  It
>> > does all this with input from the administrator, but it does not support
>> > automated brick allocation management, failure domains, or multiple
>> > clusters.  On the other hand, it does have support for mounting volumes
>> in
>> > clients, and setting up multiple options on a specified volume.
>> >
>> >   I would like to add support for Heketi in the gdeploy workflow.  This
>> > would enable administrators to manage clusters, nodes, disks, and
>> volumes
>> > with gdeploy based on Heketi.
>> >
>> > What do you guys think?
>> >
>>
>>
>> That would be great. Please let us know if you already have a plan on how
>> to make these two work.
>>
>> -sac
>>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.gluster.org/pipermail/gluster-devel/attachments/20151229/f8938145/attachment.html>


More information about the Gluster-devel mailing list