[Gluster-devel] gdploy + Heketi

Luis Pabón lpabon at redhat.com
Fri Dec 11 22:05:52 UTC 2015


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
# Admin: Setup Heketi service
   - Heketi configured with private SSH key.
# 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
* 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...
...

# 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.

- 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 
> <mailto: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 .
>
>
> Cool, will check this out.
>
> -sac
>
>     - Luis
>
>     ----- Original Message -----
>     From: "Sachidananda URS" <surs at redhat.com <mailto:surs at redhat.com>>
>     To: "Luis Pabon" <lpabon at redhat.com <mailto:lpabon at redhat.com>>
>     Cc: "Gluster Devel" <gluster-devel at gluster.org
>     <mailto: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
>     <mailto: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/20151211/4c13b416/attachment.html>


More information about the Gluster-devel mailing list