Hello,
I'm Vipul, a Computer Engg. student studying in New Delhi. I have some past
experience in contributing to open source and I'm interested in contributing to
Gluster along with learning from the community.
For the past couple of weeks, I've been in constant contact with Krishnan
Parthasarathi, regarding building a tool named glusterfsiostat, an nfsiostat
clone integrated with rrdtool(a data logging system)[1]. We believe that
storing io-stats data in a database will be a great improvement over dumping it
in a log file. Since it's a Round Robin database, so it's more suitable for our
cause as we'll be generating time-series data and our window size would also be
fixed. Plus, the data can be easily accessed from the db and processed/modified
with a perl/bash script according to the consumer's requirement.
As for the issue of integrating the io-stats xlator code with rrdtool, Krish
asked me to explore two aspects of it. First, compiling rrdtool code in
io-stats optionally, only when the user provides a --enable-rrdtool like
parameter during configure, can be done similar to how --disable-xml-output
option is dealt with by configure and code compiled optionally by checking
certain macros defined in confdefs.h.
On the second note, rrdtool provides a C API which works quite similar to the
rrd comand line tool. So including the rrd C api in io-stats will do the work
of storing stats in db. As written earlier, getting/displaying the data would
just be a simple task of querying the rrd database.
Although I've spent some considerable time studying the io-stats code and the
data structures being used, I think starting to work on a prototype along with
everyone's criticism will help me a lot. Is there anywhere written, exactly
what data is currently being logged and dumped in the log file ?? This will
help me in identifying the important data structures and place the rrdtool code
in the proper place, where it needs to be.
I know the draft above, seems quite simple and maybe it doesn't cover too many
aspects that need to be dealt with beforehand, but that's where as an amateur
contributor, I need the community's help.
I'll send a patch soon, your way, if you think that the direction in which I'm
planning to tread is good for the community.
[1] http://oss.oetiker.ch/rrdtool/
Hoping to hear your views soon.
Regards
Vipul Nayyar
On Monday, 10 February 2014 8:29 PM, Vijay Bellur <vbel...@redhat.com> wrote:
On 02/10/2014 02:00 AM, Paul Cuzner wrote:
>
> Hi,
>
> I've started a new project on the forge, called gstatus.- wiki page is
> https://forge.gluster.org/gstatus/pages/Home
>
> The idea is to provide admins with a single command to assess the state
> of the components of a cluster - nodes, bricks and volume states -
> together with capacity information.
>
> It's the kind of feature that would be great (IMO) as a sub command of
> gluster i.e. gluster status - but as a stop gap here's the python
> project (we could even use this as a prototype!)
>
> On the wiki page, you'll find some additional volume status definitions
> that I've dreamt up - online-degraded, online-partial, to describe the
> effect brick down events have on a volume's data availability. There are
> output examples on the wiki, but here's some examples to show you what
> you currently get from the tool
>
> On my test 4-way cluster, this is what a healthy state looks like
>
> [root@rhs1-1 gstatus]# ./gstatus.py
> Analysis complete
>
> Cluster Summary:
> Version - 3.4.0.44rhs Nodes - 4/ 4 Bricks - 4/ 4 Volumes - 1/ 1
>
> Volume Summary
> myvol ONLINE (4/4 bricks online) - Distributed-Replicate
> Capacity: 64.53 MiB/19.97 GiB (used,total)
>
> Status Messages
> Cluster is healthy, all checks successful
>
> And then if I take a *two nodes* down, that provide bricks to the *same
> replica set*, I see;
>
> Analysis complete
>
>
> Cluster Summary:
> Version - 3.4.0.44rhs Nodes - 2/ 4 Bricks - 2/ 4 Volumes - 0/ 1
>
> Volume Summary
> myvol ONLINE_PARTIAL (2/4 bricks online) - Distributed-Replicate
> Capacity: 32.27 MiB/9.99 GiB (used,total)
>
>
> Status Messages
> - rhs1-4 is down
> - rhs1-2 is down
> - Brick rhs1-4:/gluster/brick1 is down/unavailable
> - Brick rhs1-2:/gluster/brick1 is down/unavailable
>
>
>
This is great!
I think adding one more for the client stack would be neat. A tool
similar to nfsstat/nfsiostat which can expose various counters in
iostats xlator and also status information like brick connectivity from
the client perspective. I also have a cool name for that - glusteriostat ;)
Cheers,
Vijay
_______________________________________________
Gluster-devel mailing list
Gluster-devel@nongnu.org
https://lists.nongnu.org/mailman/listinfo/gluster-devel
_______________________________________________
Gluster-devel mailing list
Gluster-devel@nongnu.org
https://lists.nongnu.org/mailman/listinfo/gluster-devel