Jump to: navigation, search

Difference between revisions of "Neutron/LBaaS/HAProxyDriver"

< Neutron‎ | LBaaS
 
(2 intermediate revisions by 2 users not shown)
Line 1: Line 1:
__NOTOC__
+
 
 
/!\ '''Draft'''
 
/!\ '''Draft'''
  
Line 10: Line 10:
 
The driver is implemented according to [[Quantum/LBaaS/DriverAPI]]. It supports version 1.4.
 
The driver is implemented according to [[Quantum/LBaaS/DriverAPI]]. It supports version 1.4.
  
Features:
+
== Features ==
* Protocols: HTTP, TCP  
+
* Protocols: HTTP, TCP
* LB algorithms: round-robin, source IP, least connections
+
* LB algorithms: round-robin, least-connections, hash-source, hash-uri
* Session persistence: cookie-based, source IP
+
* Session persistence: source ip, http cookie, application cookie
* Health monitoring: ICMP, HTTP HEAD, HTTP GET
+
* Health monitoring: TCP, HTTP, HTTPS (Note: HAProxy config allows only one health monitor per pool)
* Stats retrieval per pools
+
* Stats retrieval per pools, members
 +
 
 +
== Config Life Cycle ==
 +
The driver uses following algorithm when configuring HAProxy:
 +
* fetch config file from remote device through SSH
 +
* parse config file
 +
* do appropriate changes in the config
 +
* create tmp file with new config on the remote device
 +
* check new config file with haproxy
 +
* if valid - replace old config file with new one and restart haproxy service, otherwise raise error

Latest revision as of 15:54, 21 June 2013

/!\ Draft

Scope

This document describes HAProxy driver for LBaaS.

Implementation Details

The driver is implemented according to Quantum/LBaaS/DriverAPI. It supports version 1.4.

Features

  • Protocols: HTTP, TCP
  • LB algorithms: round-robin, least-connections, hash-source, hash-uri
  • Session persistence: source ip, http cookie, application cookie
  • Health monitoring: TCP, HTTP, HTTPS (Note: HAProxy config allows only one health monitor per pool)
  • Stats retrieval per pools, members

Config Life Cycle

The driver uses following algorithm when configuring HAProxy:

  • fetch config file from remote device through SSH
  • parse config file
  • do appropriate changes in the config
  • create tmp file with new config on the remote device
  • check new config file with haproxy
  • if valid - replace old config file with new one and restart haproxy service, otherwise raise error