LVS
lvs-users
Google
 
Web LinuxVirtualServer.org

[keepalived] MAJOR release 0.3.5

To: lvs-users@xxxxxxxxxxxxxxxxxxxxxx
Subject: [keepalived] MAJOR release 0.3.5
From: Alexandre Cassen <Alexandre.Cassen@xxxxxxxxxx>
Date: Sun, 15 Jul 2001 22:09:37 +0200
Hi all,

After a very busy time, I have take time to rewrite the whole previous version of keepalived. 3 weeks ago, I was reading quickly the previous code, I realized that many things were not done into the right place. I realize that the previous code was really Ugly too :)... So I have taken 2 weeks and many audio CDs (manu chao, ben harper, tryo, ...) rewriting the whole code moving keepalived code from a quick and dirty proof of concept to a robust and extensible framework.

Right now I have taken time to work on the VRRP integration to keepalived. I pan to use "monitored circuit" implementation to add a nice VRRP support for LVS VS-NAT. I will done a primary integration to initiate the work. Many many work here...

I will add new checkers to keepalived : LDAP, RADIUS, SSL. Special thanks to christopher hanes for his thought on new checkers.

You can download this new release directly to the site : http://keepalived.sourceforge.net/software/keepalived-0.3.5.tar.gz

The change log of this news MAJOR RELEASE is :

2001-07-15  Alexandre Cassen  <acassen@xxxxxxxxxxxx>

        * keepalived-0.3.5 released.
        * Rewrite the whole signal handling, registering a terminating
          thread on signal.
        * Move logsystem to syslog using facility LOG_INFO & LOG_DEBUG.
        * Added a daemonization function imported from zebra.
        * Rewrite the pidfile handling, check if daemon is running, if not
          remove eventual stalled pidfile and create new pidfile.

        * Added a strong scheduling framework based on an I/O multiplexer
          to handle asynchronous process. This code is imported from zebra
          and have been enhanced for keepalived purposes.

          Thread types are :
          . timeouted read on fd.
          . timeouted write on fd.
          . timer.
          . event.
          . terminate event.

=> The zebra framework have been enhanced to add support for timeouted
             read/write fds.

=> With this framework keepalived use a Boss/Worker thread model design,
             fetching ready thread from a master threading queues.

* Rewrite the configuration file reader to add flexibility on extending. The dynamic data structure has been rewritten to use apropriate types.
          Right now parsing framework is ready for easy new checker structures
          integration.

        * Rewrite the smtp connector. The implementation take advantage of the
I/O multiplexer. All read/write operations from/to the remote smtp server are done asynchronously. The implementation is rfc 821 compliant (multiple receiver are handled by a multiple RCPT TO command as specified in rfc821.3.1).

        * Rewrite the IPFW & IPVS wrappers.

* Added support for NAT mask on IP MASQ rules (keyword nat_mask in configuration file). Added support for sorry server facility, so when all the server from a VS server pool are removed, a sorry server is automaticaly added to the VS pool
          (typically this is used when you have a spare server online).

* Rewrite the previous checkers. Checkers are now based on a hierarchic layer stack framework. The protocol implemented for the moment is TCP. All layer 5
          checkers are using layer4.c primitives with the same design :

. a checker connector thread (creating the socket) registering the connection
            checker thread.
. a connection checker thread testing connection states (error, in_progress, timeout, success). When connection success upper level thread are registered
            to handle checks.

* Delay loop is now checkers specifics since we can use a multithreaded framework.

        * Update the PDF documentation file.


All comments, point of view and enhancements are very welcomes,

Best regards,
Alexandre



<Prev in Thread] Current Thread [Next in Thread>
  • [keepalived] MAJOR release 0.3.5, Alexandre Cassen <=