Main Menu

· Download
· Documentation
· Software Design
· List & Archives
· ChangeLog
· Logos

 

What is Keepalived ?
The main goal of the keepalived project is to add a strong & robust keepalive facility to the Linux Virtual Server project. This project is written in C with multilayer TCP/IP stack checks. Keepalived implements a framework based on three family checks : Layer3, Layer4 & Layer5/7. This framework gives the daemon the ability of checking a LVS server pool states. When one of the server of the LVS server pool is down, keepalived informs the linux kernel via a setsockopt call to remove this server entrie from the LVS topology. In addition keepalived implements an independent VRRPv2 stack to handle director failover. So in short keepalived is a userspace daemon for LVS cluster nodes healthchecks and LVS directors failover.

Why using Keepalived ?
If your are using a LVS director to loadbalance a server pool in a production environnement, you may want to have a robust solution for healthcheck & failover.

What about licence ?
Keepalived is licensed under the GNU General Public License (GPL).

 



 
News & Announcements
 

 

 
2007-09-16
Release 1.1.15 - Bugfixes
  Fixed genshash makefile. Removed http healthchecker buffer minimization causing crash. Fixed parser include directive to support multi-level configuration includes. Extended SSL checker for better handling of SSL handshake. Fixed http healthcheker issue while processing MD5SUM. Fixed missing notifications upon VRRP state transition. Add support for VRRP virtual_routes to route metric.
2007-09-13
Release 1.1.14 - Enhancements
  Extended parsing framework to support include directives and error logging. Merged patches from rpmforge. Add script goodies directory. Fixed compilation issue in VRRP code. Fixed VRRP negative weights in script. Extended VRRP framework to support Old-style Linux aliases. Add support to VRRP script logging
2006-12-11
New OpenSource Project
  Launch a new OpenSource project focused on Layer7 switching www.linux-l7sw.org
2006-10-11
Release 1.1.13 - Enhancements
  Extended VRRP engine to support floating priority. Fixed some issues.
2006-03-09
Release 1.1.12 - Bugfixes
  Fixed SSL checker to properly support asynchronous stream handling. Fixed SMTP checker. Extended VRRP framework to use vrrp virtual_router_id as LVS syncid. Fixed redhat spec file.
2005-09-02
Press arcticle
  Philip J. Hollenback published an article on keepalived at LinuxDevCenter.
2005-03-01
Release 1.1.11 - Bugfixes
  Fixed a bitwise negation issue while handling signal. Extended VRRP ipaddress and iproutes handling to take care of unknown interfaces. Cosmetics cleanups.
2005-02-15
Release 1.1.10 - Bugfixes
  Release iproutes before ipaddresses while restoring interfaces inside VRRP framework. Fixed somes buffer overruns, NULL pointers and one memory leak. Redesigned signal handling. Fixed some shadowed declarations. Extended libipvs to support syncd zombies handling. Fixed a scheduling and configurations reload races conditions. Cosmetics cleanups.
2005-02-07
Release 1.1.9 - Bugfixes
  Fixed issues in VRRP framework while releasing vrrp socket pool, setting blocking flags on netlink socket and hashing vrrp fd bucket into hash index. Fixed a regression in html parsing. Fixed compilation issue while using debug compilation. VRRP and Healthcheck framework extension to support debugging flags. Removed watchdog framework to use native scheduling signaling helpers.
2005-01-25
Release 1.1.8 - Enhancements
  Extended VRRP to support dont_track_primary, nopreempt, preempt_delay. Fixed some VRRP issues while stoping and/or reloading daemon. Extended netlink to support blocking request operations and non-blocking kernel reflections. Added SMTP checker. Extended MISC checker to support dynamic weight. Fixed some assertions issue, HTTP header parsing. Somes cosmetics fixes and typo.
2004-04-05
Release 1.1.7 - Minor Bug Fixes
  Added some assertion tests in memory framework. Fixed a VRRP issue using syncd configuration. Some cosmetics patches in Makefiles and autoconf. Jacob Rief put THC enabled release here. Thomas Halwax contributed writing a scripting framework for VRRP notify helpers.
2004-02-23
Release 1.1.6 - Bug Fixes
  Fixed a VRRP scheduling issues. Fixed a linkbeat issues. Extended ipvswrapper code to support 2.6 kernel IPVS code. Updated autoconf and Makefiles to support 2.6 kernel IPVS code. Extended VRRP dropping strategy to siliently drop bogus incoming adverts. Somes cosmetics patches.
2004-01-25
Release 1.1.5 - Enhancements
  Created Keepalived manpages. Fixed a VRRP length issue while testing password field for auth_pass method. Fixed a watchdog quick loop timer. Extended scheduler to support stable scheduling time. Updated default media link failure detection strategy. Some cosmetics cleanup.
2003-12-29
Release 1.1.4 - Enhancements
  Updated autoconf script. Extended daemon design to work-around the SMP forking issue. Extended media link failure detection to support linkwatch subsystem. Extended MII BMSR polling to be fully asynchronous. Optimized a VRRP timer computation. Some cosmetic patches. Wrote a small paper explaining LinkWatch design from Stefan Rompf, <sux <at> loplof <dot> de>.
2003-09-29
Release 1.1.3 - Enhancements
  Extended ip address framework to support broadcast ip address selection. Extended scheduling framework to support long timer and micro-sec second overlap. Extended VRRP and checkers frameworks to support new scheduling long timer. Added support to main daemon log_level selection. Extended HTTP checker to support non blocking read. Fixed a notify script issue. Extended scheduling framework to support child thread while computing global scheduling timer. Extended VRRP FSM to support BACKUP state notifiers and smtp_alert during VRRP initialization.
2003-09-08
Release 1.1.2 - Enhancements
  Extended healthchecker framework to support multiple checkers per realserver. Extended TCP, HTTP & SSL checkers to support binding selection. Reviewed the watchdog calling location, watchdog is reinitialized during a daemon reload event. Extended the global parser to support default handlers. Fixed some code dependencies. Extended VRRP ethtool code to detect ETHTOOL_GLINK availability. Fixed some VRRP IPSEC issues. Fixed a bug while setting static_ipaddress. Fixed a VRRP reloading issue introducing a noisy daemon crash.
2003-07-24
Release 1.1.1 - Bug fixes
 

Fixed a VRRP dereferencing pointer while processing configuration file reload. Fixed misc checker to perform server state according to checker result.

2003-07-22
Release 1.1.0 - High Performance extensions
 

This release is focused on VRRP high performance and optimizations. Added support to a global shared buffer for incoming advert handling. Added support to pre-allocated shared buffer for outgoing adverts. Extended socket pool design to support shared fd for outbound channel. Added support to static_ipaddress as global keyword. Extended track_interface to support multiple interface tracking. Review the instance lookup design to use o(1) scheduling design to reduce VRRP scheduling jitter using a customized hash index. Review the sync_group design to speed up synchronization using a pre-computed index. Optimized VRRP timer fd lookup using a one pass lookup. Bradley Baetz, extended the scheduler framework to support child process handling. Bradley Baetz, fixed the misc_check healthchecker using new thread child scheduling facility. Added support to a shared kernel netlink command channel. Extended logging code to support verbose log output. Extended gratuitous ARP code to support shared buffer and shared socket. Fixed a gratuitous ARP issue, extended the code for sending garp over device ipaddess belong to. Extended the ipaddress framework to point directly to interface reflected by netlink channel instead of storing device index. Extended VRRP scheduling timer computation to support timer auto-recalibration to provide overhead auto-adaptation. Extended VRRP scheduler to support fd hash table design, this speed up instance lookup while computing instance sands. Extended vrrp new socket creation to replace refreshed instance fd into fd hash table index. Extended vrrp framework to support blank virtual_ipaddress block. Extended watchdog framework to support polling delay selection via daemon command line. Extended the genhash code to support verbose output selection, command arg '-v' will generate a very verbose output. list library has been extended to support multi-sized list & specific element deletion. Some name clean-up, cosmetics extensions.

2003-05-19
Software Design Update
Updated the Software Design page to introduce new Keepalived internal design (watchdog, parser splitting, ..)
2003-05-12
Release 1.0.3 - Sponsorized by "Tiscover AG, The Travel Network"
 
Tiscover - hotel, vacation, travel agent for Austria, Germany, Switzerland, Italy This release has been sponsorized by Tiscover AG, thanks go to their IT team and especially to Jacob Rief for design discussions and testing time. Please visit sponsor Homepage at www.tiscover.com. This release is a major daemon re-design to increase security and availability of Keepalived itself. The daemon is split into 3 process, one parent and 2 childrens. Parent monitor children availability. One children for VRRP and another for Healthcheckers. Added support to a modularized watchdog framework. Watchdog estart children if they die or enter scheduling deadloop. Splitted parsing keyword tree for each relevant daemon. Added dedicated syslog facility for each children. Modularized parser. Extended pidfile & memory framework. Fixed a virtual_server_group issue while reloading conf. Extended IPVS wrapper. Extended netlink code to support scope selection. Vince Worthington created the Keepalived-lvs-nat-director-proxyarp-firewall-howto.
2003-04-14
Release 1.0.2 - Sponsorized by "edNET internetworkingsolutions"
 
This release has been sponsorized by edNET, thanks to them for supporting Keepalived project. Please visit sponsor homepage at www.ednet.co.uk. This release added support to virtual_server_group that provide support for real_server to belong to multiple virtual_server without launching a bunch of healthcheckers. Extended the differentiate configuration parser to support virtual_server_group differentiate entries and preserve IPVS working topology. Added support to IP address range support for virtual_server_group. SIGCHLD extension. Extended VRRP virtual_routes to support source route selection. Some cosmetics patches.
2003-03-18
Release 1.0.1 - Sponsorized by "Ecomdevel LLC"
 
This release has been sponsorized by "Ecomdevel LLC", clever and open minded people here, please visit sponsor homepage at www.gigenet.com. Extended netlink kernel reflection to support routings. Added support to static_routes set/removed during daemon bootstrap/shutdown. Added support to virtual_routes set/removed according to VRRP FSM. Extended virtual_ipaddress and virtual_ipaddress_excluded block to specify dedicated device interface for each ipaddress. Added support to track_interface for interface state monitoring (same as HSRP). Rewrote the VRRP VIP & E-VIP memory representation. Optimized code dependence selection. Enhanced HTTP|SSL checkers to support 2KB buffer lenght GET query. Some cosmetics and code cleaning work.
2003-02-25
IETF Draft
  Wrote the draft-ietf-vrrp-ipsecah-spec paper to present VRRP stack implementation of IPSEC-AH authentication method.
2003-02-16
Website & Soft Design
  Reviewed the website design and created a documentation explaining the Keepalived internal software design.
2003-01-13
Release 1.0.0
 

This is the FIRST STABLE and production ready RELEASE. Enhanced initscript. Added support to ha_suspend. Extended real_server block to support notify_up and notify_down script launch. Set default realserver weight to 1. Fixed a layer4.c issue. Reviewed the SIGCHLD handler. Extended parser to support ecapsulated quoted string. More logging messages. Review HTTP|SSL retry code. Added VRRP sync_group smtp_alert support. Fixed some IPSEC_AH seq_num synchronizations. Extended the VRRP TSM. Some VRRP FSM state optimizations. Extended parser to support sync_group declaration before or after instances declarations. Created keepalived.conf.SYNOPSIS file to describe all keywords available.

2002-11-21
Release 0.7.6
  Created a common code lib. Rewrote the genhash utility. Review autoconf and Makefiles scripts. Created an html util lib. Extended HTTP and SSL checkers to support remote webserver HTTP header status_code. Modularized the md5sum stream handling for HTTP and SSL checkers. Fixed a premature socket fd close during SMTP notification in HTTP and SSL code. Rewrote the gratuitous ARP code. Some VRRP messages logging. Fixed an issue during VRRP packet building. Remove the previous VRRP ARP packet building. Rewrote the VRRP packet sending process. Extended the interface lib. Extended the VRRP code to support IPSEC-AH authentication. Optimize the VRRP TSM. Some cosmetics patches. Consider this release as a 1.0.0 STABLE release candidate code.
2002-09-18
Release 0.7.1
  Fixed a misc_check register issue.Extended ipfwwrapper to select ipchains setting or not. Added a gratuitous ARP delayed thread for VRRP MASTER state transition. Review the gratuitous ARP helper function to only send ARP when VRRP VIPs are set. Review the whole VRRP FSM to prevent against junky flapping issues. Added support to a Transition State Matrix (TSM) design to speed synchronization. Optimize the VRRP FAULT state fallback synchronization. Extended the VRRP smtp notifier to notify transition to MASTER or BACKUP states. Adam Fletcher created the LVS-NAT + Keepalived HOWTO.
2002-08-06
Release 0.6.10
  Fixed a VRRP VIPs reflection set flag issue. Fixed a VRRP framework code selection issue.
2002-08-01
Release 0.6.9
  Added support to reload configuration file on the fly on SIGHUP receive. Fixed some code dependencies. Added 2 new daemon arguments that permit to not release VRRP VIPs and IPVS topology on daemon stop. Fixed a MISC_CHECK forking issue. Review IPVS wrapper to use allocated IPVS rules. Extended keepalived.init redhat script to support restart and reload arguments. Fixed some typo. Some code cleanup.
2002-07-27
MASTER LVS website crashed down.
  Our primary LVS website has terribly crashed down !!! Horms offers vergenet temp hosting with a dynamic content replication provided by Super Sparrow technology. Set Keepalived website to sourceforge as backup location.
2002-07-16
Release 0.6.8
  Fixed a SMTP stream handling assertion. Added support to inhibit_on_failure for a real_server, this set real_server weight to 0 if checker report a failure. Added kernel check for netlink support.
2002-07-12
Release 0.6.7
  Rewrote the SMTP notifier framework to use strong FSM design. Extended the VRRP multicast membership subscription to not degrade global scheduling timer on retry. Fixed a buffer overflow during the sending advert interface binding process. Some more cosmetics patches.
2002-07-08
Release 0.6.6
  Fine the coding style. Review the code source tree. Review Makefile(s) for better code selection on libipvs and libipfwc, added code dependence. Added modprobe_ipvs() during ipvswrapper bootstrap. Review the ipvswrapper to only stop daemon on criticals events. Extend VRRP framework bootstrap sequence to handle interface in shut state during intialization. Updated TODO list. Some cosmetics patches.
2002-07-01
Release 0.6.5
  Review the coding style. Fixed a null pointer exception. Added RedHat spec file. some cosmetics patches.
2002-06-25
Release 0.6.4
  Rewrote previous ip address convertion utilities. Extented VRRP notify script to vrrp_sync_group. Added support to libipvs. Some cosmetics patches.
2002-06-18
Release 0.6.3
  Fixed a vrrp_sync_group flapping issue. Fixed autoconf/automake issues. Cosmetics patches.
 

OLD News & Announcements

Last update : 2007-09-16