Blame doc/source/case_study_mixing.rst
Branch: c22fc906004465dd40de2bf065ca083e1a12ec54
Packit
c22fc9
#########################################
Packit
c22fc9
Case Study: Mixing Healthcheck & Failover
Packit
c22fc9
#########################################
Packit
c22fc9
Packit
c22fc9
For this example, we use the same topology used in the Failover part. The idea here is to use VRRP VIPs as LVS VIPs. That way we will introduce a High Available LVS director performing LVS real server pool monitoring.
Packit
c22fc9
Packit
c22fc9
Keepalived Configuration
Packit
c22fc9
************************
Packit
c22fc9
Packit
c22fc9
The whole configuration is done in the /etc/keepalived/keepalived.conf file. In
Packit
c22fc9
our case study this file on LVS director 1 looks like::
Packit
c22fc9
Packit
c22fc9
# Configuration File for keepalived
Packit
c22fc9
global_defs {
Packit
c22fc9
notification_email {
Packit
c22fc9
admin@domain.com
Packit
c22fc9
0633225522@domain.com
Packit
c22fc9
}
Packit
c22fc9
notification_email_from keepalived@domain.com
Packit
c22fc9
smtp_server 192.168.200.20
Packit
c22fc9
smtp_connect_timeout 30
Packit
c22fc9
lvs_id LVS_MAIN
Packit
c22fc9
}
Packit
c22fc9
# VRRP Instances definitions
Packit
c22fc9
vrrp_sync_group VG1 {
Packit
c22fc9
group {
Packit
c22fc9
VI_1
Packit
c22fc9
VI_2
Packit
c22fc9
}
Packit
c22fc9
}
Packit
c22fc9
vrrp_sync_group VG2 {
Packit
c22fc9
group {
Packit
c22fc9
VI_3
Packit
c22fc9
VI_4
Packit
c22fc9
}
Packit
c22fc9
}
Packit
c22fc9
vrrp_instance VI_1 {
Packit
c22fc9
state MASTER
Packit
c22fc9
interface eth0
Packit
c22fc9
virtual_router_id 51
Packit
c22fc9
priority 150
Packit
c22fc9
advert_int 1
Packit
c22fc9
authentication {
Packit
c22fc9
auth_type PASS
Packit
c22fc9
auth_pass k@l!ve1
Packit
c22fc9
}
Packit
c22fc9
virtual_ipaddress {
Packit
c22fc9
192.168.200.10
Packit
c22fc9
192.168.200.11
Packit
c22fc9
}
Packit
c22fc9
}
Packit
c22fc9
vrrp_instance VI_2 {
Packit
c22fc9
state MASTER
Packit
c22fc9
interface eth1
Packit
c22fc9
virtual_router_id 52
Packit
c22fc9
priority 150
Packit
c22fc9
advert_int 1
Packit
c22fc9
authentication {
Packit
c22fc9
auth_type PASS
Packit
c22fc9
auth_pass k@l!ve2
Packit
c22fc9
}
Packit
c22fc9
virtual_ipaddress {
Packit
c22fc9
192.168.100.10
Packit
c22fc9
}
Packit
c22fc9
}
Packit
c22fc9
vrrp_instance VI_3 {
Packit
c22fc9
state BACKUP
Packit
c22fc9
interface eth0
Packit
c22fc9
virtual_router_id 53
Packit
c22fc9
priority 100
Packit
c22fc9
advert_int 1
Packit
c22fc9
authentication {
Packit
c22fc9
auth_type PASS
Packit
c22fc9
auth_pass k@l!ve3
Packit
c22fc9
}
Packit
c22fc9
virtual_ipaddress {
Packit
c22fc9
192.168.200.12
Packit
c22fc9
192.168.200.13
Packit
c22fc9
}
Packit
c22fc9
}
Packit
c22fc9
vrrp_instance VI_4 {
Packit
c22fc9
state BACKUP
Packit
c22fc9
interface eth1
Packit
c22fc9
virtual_router_id 54
Packit
c22fc9
priority 100
Packit
c22fc9
advert_int 1
Packit
c22fc9
authentication {
Packit
c22fc9
auth_type PASS
Packit
c22fc9
auth_pass k@l!ve4
Packit
c22fc9
}
Packit
c22fc9
virtual_ipaddress {
Packit
c22fc9
192.168.100.11
Packit
c22fc9
}
Packit
c22fc9
}
Packit
c22fc9
# Virtual Servers definitions
Packit
c22fc9
virtual_server 192.168.200.10 80 {
Packit
c22fc9
delay_loop 30
Packit
c22fc9
lb_algo wrr
Packit
c22fc9
lb_kind NAT
Packit
c22fc9
persistence_timeout 50
Packit
c22fc9
protocol TCP
Packit
c22fc9
sorry_server 192.168.100.100 80
Packit
c22fc9
real_server 192.168.100.2 80 {
Packit
c22fc9
weight 2
Packit
c22fc9
HTTP_GET {
Packit
c22fc9
url {
Packit
c22fc9
path /testurl/test.jsp
Packit
c22fc9
digest ec90a42b99ea9a2f5ecbe213ac9eba03
Packit
c22fc9
}
Packit
c22fc9
url {
Packit
c22fc9
path /testurl2/test.jsp
Packit
c22fc9
digest 640205b7b0fc66c1ea91c463fac6334c
Packit
c22fc9
}
Packit
c22fc9
connect_timeout 3
Packit
c22fc9
retry 3
Packit
c22fc9
delay_before_retry 2
Packit
c22fc9
}
Packit
c22fc9
}
Packit
c22fc9
real_server 192.168.100.3 80 {
Packit
c22fc9
weight 1
Packit
c22fc9
HTTP_GET {
Packit
c22fc9
url {
Packit
c22fc9
path /testurl/test.jsp
Packit
c22fc9
digest 640205b7b0fc66c1ea91c463fac6334c
Packit
c22fc9
}
Packit
c22fc9
connect_timeout 3
Packit
c22fc9
retry 3
Packit
c22fc9
delay_before_retry 2
Packit
c22fc9
}
Packit
c22fc9
}
Packit
c22fc9
}
Packit
c22fc9
virtual_server 192.168.200.12 443 {
Packit
c22fc9
delay_loop 20
Packit
c22fc9
lb_algo rr
Packit
c22fc9
lb_kind NAT
Packit
c22fc9
persistence_timeout 360
Packit
c22fc9
protocol TCP
Packit
c22fc9
real_server 192.168.100.2 443 {
Packit
c22fc9
weight 1
Packit
c22fc9
TCP_CHECK {
Packit
c22fc9
connect_timeout 3
Packit
c22fc9
}
Packit
c22fc9
}
Packit
c22fc9
real_server 192.168.100.3 443 {
Packit
c22fc9
weight 1
Packit
c22fc9
TCP_CHECK {
Packit
c22fc9
connect_timeout 3
Packit
c22fc9
}
Packit
c22fc9
}
Packit
c22fc9
}
Packit
c22fc9
Packit
c22fc9
We define the symmetric VRRP configuration file on LVS director 2. That way both directors are active at a time, director 1 handling HTTP stream and director 2 SSL stream.