Building Two-Node Directors/Real Servers using LVS and Keepalived
Contents
Introduction
This guide is a brief explanation on getting a two node director/real server setup going using LVS and keepalived.
This is an adaptation of the information at Ultra Monkey: Streamline High Availablility and Load Balancing to work with keepalived.
It is primarily targeted at RHEL3/4 (RedHat Enterprise Linux).
Goals
Setup a two node LVS cluster with Apache as the virtualised services, with both nodes operating as both directors and real servers.
Setup healthchecking of services (httpd).
Setup lvs-syncing of connections (ipvsadm sync daemon).
Knowledge Required
Understanding of Layer 3 load balancing.
Understanding of Linux LVS.
Understanding of Apache configuration.
Components Required
Base installation of RHEL3/4.
RPM Packages for httpd.
RPM Packages for keepalived.
RPM Packages for ipvsadm.
Instructions
Install keepalived and IPVSADM on both servers.
On the first server create the file /etc/keepalived/keepalived.conf :
global_defs {
router_id DEV
}
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 100
advert_int 10
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.6.240
}
}
virtual_server 192.168.6.240 80 {
delay_loop 10
lb_algo rr
lb_kind DR
persistence_timeout 5
protocol TCP
real_server 192.168.6.4 80 {
TCP_CHECK {
}
}
real_server 192.168.6.5 80 {
TCP_CHECK {
}
}
}
}
On the second server create the file /etc/keepalived/keepalived.conf :
global_defs {
router_id DEV
}
vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 51
priority 99
advert_int 10
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.6.240
}
}
virtual_server 192.168.6.240 80 {
delay_loop 10
lb_algo rr
lb_kind DR
persistence_timeout 5
protocol TCP
real_server 192.168.6.5 80 {
TCP_CHECK {
}
}
}
On both servers create the file /etc/sysconfig/network-scripts/ifcfg-lo:0
DEVICE=lo:0 IPADDR=192.168.6.240 NETMASK=255.255.255.255 ONBOOT=yes NAME=loopback
In order to avoid warning messages, we explicitly say that our gateway is on eth0. Add in /etc/sysconfig/network
GATEWAYDEV=eth0
Add in /etc/sysctl.conf :
net.ipv4.conf.eth0.arp_ignore = 1 net.ipv4.conf.eth0.arp_announce = 2 # Enables packet forwarding net.ipv4.ip_forward = 1
ifup lo sysctl -p
Architecture
| |
"Building Two-Node Directors/Real Servers using LVS and Keepalived" is an LVS Example related stub. You can help LVSKB by expanding it |
