piranha announcement

To: linux-ha@xxxxxx
Subject: piranha announcement
Cc: lvs-users@xxxxxxxxxxxxxxxxxxxxxx
From: wanger@xxxxxxxxxx
Date: Thu, 23 Sep 1999 22:26:24 -0400
Ok, this is the less than stellar announcement of piranha.  I want to 
get this out so that people can start telling me how broke things are.  
The non-gui stuff seems to be working pretty well.  The gui <-> daemon 
glue seems to still have some config file corruption problems.  Please 
don't start running your companies primary e-commerce site with this 
stuff yet as it still needs some development work. :)

Here is the rough outline of this package.

It is based on Wensong Zhang's Linux Virtual Server (LVS) kernel routing 
patch.  It includes very simple heartbeating (over ethernet only right 
now) between 2 LVS nodes and has automatic fail over of all 
configuration and monitoring services.  It has simple service 
monitoring for the real servers used behind the LVS router (port 
connection only right now).  It also has a gui tool to manage things.

These packages *should* work on RH 6.0 boxes that have a kernel running 
v0.8.3 of the lvs patch.  The kernels contained in the lorax beta snap
shots should suffice for this purpose.  You won't be able to build from 
sources without many of the things in lorax (namely the popt stuff).  
You can get the bits on


I have not tested (ok, I haven't even tried to install) the non-i386 
packages, but, hey, they built cleanly.  How bad can they be? :)

Contained in the packages, you will find these important files:


Pulse is the main, controlling daemon that is started via the SysV 
style init script in /etc/rc.d/init.d/pulse.  It makes calls to lvs 
which is the real controlling daemon for the LVS machine and the bit 
that reads in the magic /etc/ file.  BTW, there is a 
file in /usr/doc/piranha-0.1.4/ which shows the basic organization of 
things.  For the time being, we are really only supporting the NAT (Network 
Address Translation) method of routing.  nanny is the client monitoring 
daemon that gets spawned off for each service being supported on each 
real server.

The basic topology that needs to be used for now with this is the 
following scheme:

1 primary LVS routing box (set up to masquerade) with 2 ethernet 
devices, one to the "real world" and one to a private network.  (a 
second LVS router to be used as a hot-standby/failover machine is 

This is the machine that will have the floating real world IP(s) for 
services to be load balanced (ie  It also has a floating 
private IP used on the back side that is the default gateway for the 
real servers.

On the private network, all the "real" servers are set up to serve web 
or ftp requests and are able to masquerade through the LVS machine.  
This stuff must be set up independent of the piranha stuff and piranha 
will expect you to tell it about the configuration (network mostly) of 
these machines.

The gui tool (piranha) is more for looks right now.  It is sort of 
bound to the backend bits, but is lacking a lot of glue. :)  It also 
has trouble editing the config file (ie it corrupts it pretty 
regularly).  I'm mostly interested in UI feedback on it.

I realize these docs are sparse and probably quite difficult to follow. 
I'll write better ones RSN.  I'm really interested in hearing what is 
really broken with these things.  There are man pages for all the 
pieces (except for piranha).  nanny.8 is still "under development" so 
you'll have to wait for the rest of it.  I'll try to push out updated 
bits tomorrow afternoon.

Thanks for looking at this stuff.


Mike Wangsmo                                               Red Hat, Inc 

"I've seen this before in Montana!  Its snowing, nobody lick a flag
pole" -- Peggy Hill

---------------------------------------------------------------------- mailing list - lvs-users@xxxxxxxxxxxxxxxxxxxxxx
To unsubscribe, e-mail: lvs-users-unsubscribe@xxxxxxxxxxxxxxxxxxxxxx
For additional commands, e-mail: lvs-users-help@xxxxxxxxxxxxxxxxxxxxxx

<Prev in Thread] Current Thread [Next in Thread>
  • piranha announcement, wanger <=