gluster / gadmin

5 stars 3 forks source link

// vim: tw=79

= gadmin - the Gluster CLI experience

:toc:

== Why?

=== History

Through the recent releases of Gluster, glusterd has been the preferred method to accomplish Day1 and Day2 operations as well as publish data sets about Day3. However, glusterd was designed to be the config management layer to complete transactions in the Gluster Filesystem -- expand and shrink operations and such.

With project expanding, as other tools emerged to do the config management better, there were many projects to handle different stages of a Gluster deployment's, such as Day 1 (gdeploy) and Day 3 (gstatus, gluster-prometheus-plugin).

Also, for it became necessary for Gluster to integrate with projects such as SMB, NFS-Ganesha etc. This integration was achieved via hooks provided by glusterd.

=== Present

The glusterd2 project is the successor to glusterd to address scaling concerns as Gluster deployments grow in size. While it provides a more programmable access to its own management functionality via a RESTful interface and plugins, its main focus is on setting up and managing a Gluster cluster.

With the scope of glusterd2 defined, the design issue is to be addressed by a Gluster management tool is: "Between the various administrative tasks performed by a Storage Administrator, which are Gluster specific and which are broader Storage Management related?".

Specifically, in the context of gadmin, it is necessary to address high-level, workflow based Storage Administration concerns for a Gluster based storage infrastructure, as tools such as gluster-ansible and glustercli from glusterd2 enable Gluster specific low-level administration.

== What?

Gadmin has been conceptualised as a unified CLI tool that enables a Storage Administrator to work with a Gluster based storage infrastructure. The focus is on enabling end-to-end management experience for a Gluster based storage infrastructure, without the need to delve into Gluster specific implmentation details.

The tool is aimed as part of the implementation of a Gluster Management CLI experience that must be uniform across deployment platforms, infrastructures and scenarios. In some cases some details of the experience may differ to accommodate the specifics of a platform or a scenario. However, it is key to ensure that the administrator does not need to change the thought process behind how Gluster infrastructure is managed. The project will be developed and will work in conjunction with the https://github.com/gluster/gluster-ansible[gluster-ansible] project, which automates the administration tasks required to setup Gluster infrastructure.

=== Features

== How?