keepalived-1.0.3 v1.0.3
authorAlexandre Cassen <acassen@freebox.fr>
Sun, 11 May 2003 22:48:01 +0000 (00:48 +0200)
committerAlexandre Cassen <acassen@freebox.fr>
Mon, 28 Sep 2009 08:58:58 +0000 (10:58 +0200)
commitf8952886fea4e53a2b73fe68b63cea0850858a07
treee701ce1a3c73517bc5886808029a11c99eff8cf1
parent681972a544d72221dc6025e45cf02944fcadd3e7
keepalived-1.0.3

* keepalived-1.0.3 released.
* This release has been sponsorized by :
  Tiscover AG, <www.tiscover.com>
  Please visit sponsor homepage. I would just like to thanks their IT
  team for interresting design discussions and testing time, especially
  Jacob Rief.
* This release consist of a major daemon re-design to increase security
  and availability of Keepalived. The daemon has been splitted into 3
  distinct process. The global design is based on a minimalistic
  parent process responsible for monitoring its forked children process.
  Then 2 children process, one responsible for VRRP framework and the
  other for healthchecking. Each children process has its own scheduling
  I/O multiplexer, that way VRRP scheduling jitter is optimized since
  VRRP scheduling must be more sensible than healthcheckers. On the other
  hand this splitted design minimalize for healthchecking the usage of
  foreign librairies and minimalize its own action down to and idle
  mainloop in order to avoid malfunctions caused by itself. The parent
  process monitoring framework has been called watchdog, the design is :
  each children process open an accept unix domain socket, then while
  daemon bootstrap, parent process connect to those unix domain socket
  and send periodic (5s) hello packets to children. If parent cannot send
  hello packet to remote connected unix domain socket it simply restart
  children process. This watchdog design offer 2 benefit, first of all
  hello packets sent from parent process to remote connected children
  is done throught I/O multiplexer scheduler that way it can detect
  deadloop in the children scheduling framework. The second benefit
  is brought by the uses of sysV signal to detect dead children.
  When running you will see in process list :
    PID
    111  keepalived <-- parent process monitoring child activity
    112   \_ keepalived <-- VRRP children
    113   \_ keepalived <-- Healthchecking children
* Parent : Created a global data and global keyword parser structure.
* Healthcheck framework : Defined check_conf_data to handle related
  checker data structures. Created specific checker framework parser.
* VRRP framework : Defined vrrp_conf_data to handle related vrrp
  data structures. Created specific vrrp framework parser.
* Each child process has its own syslog facility. VRRP use LOG_LOCAL1
  and Healthchecker LOG_LOCAL2. To split log you can so configure your
  syslog to log both facilities in a different logfile.
* Modularized the configuration parser to limit code duplication.
* Created modularized software watchdog.
* Extended the recursive stream parser to use sublevel detection while
  stream processing. Used to skip end-of-block handling if still at
  keyword root level to prevent against end parsing if unknown block
  is parsed.
* Extended pidfile framework to be more generic.
* Extended memory framework to log specific child data.
* Fixed a virtual_server_group issue while healthchecker bringing back
  real_servers. Modularized virtual_server_group API.
* Fixed a virtual_server_group issue will reloading configuration.
  Remove vsgname test from the VS_ISEQ macro. strcmp(...) comparing
  null pointer... this must have been done in libc :)
* ipwrapper : set alive flag after ipvs_cmd(...) has been performed.
* VRRP : Extended the netlink framework to support SCOPE selection for
  both ipaddress and routes fonctionnalities. SCOPE available are
  site, link, host, nowhere & global. Default value is set to global.
  look at doc/keepalived.conf.SYNOPSIS for more informations.
* Renamed doc/samples/keepalived.conf.routes to
  doc/samples/keepalived.conf.vrrp.routes.
* Updated Makefile include dependencies.
98 files changed:
ChangeLog
VERSION
bin/.kdbgrc.genhash [new file with mode: 0644]
doc/keepalived.conf.SYNOPSIS
doc/samples/keepalived.conf.vrrp.routes [moved from doc/samples/keepalived.conf.routes with 87% similarity]
keepalived.spec
keepalived/core/Makefile.in
keepalived/core/daemon.c
keepalived/core/data.c [deleted file]
keepalived/core/global_data.c [new file with mode: 0644]
keepalived/core/global_parser.c [new file with mode: 0644]
keepalived/core/layer4.c
keepalived/core/main.c
keepalived/core/parser.c [deleted file]
keepalived/core/pidfile.c
keepalived/core/smtp.c
keepalived/healthcheck/Makefile [new file with mode: 0644]
keepalived/healthcheck/Makefile.in
keepalived/healthcheck/check_api.c
keepalived/healthcheck/check_ci.c
keepalived/healthcheck/check_daemon.c [new file with mode: 0644]
keepalived/healthcheck/check_data.c [new file with mode: 0644]
keepalived/healthcheck/check_http.c
keepalived/healthcheck/check_misc.c
keepalived/healthcheck/check_parser.c [new file with mode: 0644]
keepalived/healthcheck/check_ssl.c
keepalived/healthcheck/check_tcp.c
keepalived/healthcheck/ipfwwrapper.c
keepalived/healthcheck/ipvswrapper.c
keepalived/healthcheck/ipwrapper.c
keepalived/include/check_api.h
keepalived/include/check_ci.h
keepalived/include/check_daemon.h [new file with mode: 0644]
keepalived/include/check_data.h [moved from keepalived/include/data.h with 81% similarity]
keepalived/include/check_http.h
keepalived/include/check_misc.h
keepalived/include/check_parser.h [new file with mode: 0644]
keepalived/include/check_ssl.h
keepalived/include/check_tcp.h
keepalived/include/daemon.h
keepalived/include/global_data.h [new file with mode: 0644]
keepalived/include/global_parser.h [new file with mode: 0644]
keepalived/include/ipfwwrapper.h
keepalived/include/ipvswrapper.h
keepalived/include/ipwrapper.h
keepalived/include/layer4.h
keepalived/include/main.h
keepalived/include/pidfile.h
keepalived/include/smtp.h
keepalived/include/vrrp.h
keepalived/include/vrrp_arp.h
keepalived/include/vrrp_daemon.h [new file with mode: 0644]
keepalived/include/vrrp_data.h [new file with mode: 0644]
keepalived/include/vrrp_if.h
keepalived/include/vrrp_ipaddress.h
keepalived/include/vrrp_iproute.h
keepalived/include/vrrp_ipsecah.h
keepalived/include/vrrp_netlink.h
keepalived/include/vrrp_notify.h
keepalived/include/vrrp_parser.h [new file with mode: 0644]
keepalived/include/vrrp_scheduler.h
keepalived/include/vrrp_sync.h
keepalived/libipvs/Makefile [new file with mode: 0644]
keepalived/vrrp/Makefile.in
keepalived/vrrp/vrrp.c
keepalived/vrrp/vrrp_arp.c
keepalived/vrrp/vrrp_daemon.c [new file with mode: 0644]
keepalived/vrrp/vrrp_data.c [new file with mode: 0644]
keepalived/vrrp/vrrp_if.c
keepalived/vrrp/vrrp_ipaddress.c
keepalived/vrrp/vrrp_iproute.c
keepalived/vrrp/vrrp_ipsecah.c
keepalived/vrrp/vrrp_netlink.c
keepalived/vrrp/vrrp_notify.c
keepalived/vrrp/vrrp_parser.c [new file with mode: 0644]
keepalived/vrrp/vrrp_scheduler.c
keepalived/vrrp/vrrp_sync.c
lib/Makefile.in
lib/html.c
lib/html.h
lib/list.c
lib/list.h
lib/memory.c
lib/memory.h
lib/notify.c
lib/notify.h
lib/parser.c [new file with mode: 0644]
lib/parser.h [moved from keepalived/include/parser.h with 65% similarity]
lib/scheduler.c
lib/scheduler.h
lib/timer.c
lib/timer.h
lib/utils.c
lib/utils.h
lib/vector.c
lib/vector.h
lib/watchdog.c [new file with mode: 0644]
lib/watchdog.h [new file with mode: 0644]