Re: gdploy + Heketi

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Luis,


On Sat, Dec 12, 2015 at 3:35 AM, Luis Pabón <lpabon@xxxxxxxxxx> 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="">
volname=Gdeploy_test  <-- optional
transport=tcp,rdma  <-- would need to be added to Heketi
replica=yes
replica_count=2

[clients]
action="">
#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@xxxxxxxxxx> 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@xxxxxxxxxx>
To: "Luis Pabon" <lpabon@xxxxxxxxxx>
Cc: "Gluster Devel" <gluster-devel@xxxxxxxxxxx>
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@xxxxxxxxxx> 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



_______________________________________________
Gluster-devel mailing list
Gluster-devel@xxxxxxxxxxx
http://www.gluster.org/mailman/listinfo/gluster-devel

[Index of Archives]     [Gluster Users]     [Ceph Users]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux