Difference between revisions of "Building Two-Node Directors/Real Servers using LVS and Keepalived"
m |
(→Instructions) |
||
| Line 25: | Line 25: | ||
== Instructions == | == 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 == | == Architecture == | ||
Latest revision as of 14:40, 27 April 2007
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 |