Part-4:

lvs (Linux virtual server) Active & Backup Load-Balancer settings.

4.1 : Installation piranha package on both load balancer (loadb1, loadb2) servers.

[root@loadb1 ~]# yum install -y piranha
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
 * base: centos.syn.co.il
 * extras: centos.syn.co.il
 * updates: centosg4.centos.org
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package piranha.x86_64 0:0.8.5-9.el6 will be installed
--> Processing Dependency: ipvsadm >= 1.14 for package: piranha-0.8.5-9.el6.x86_64
--> Processing Dependency: php for package: piranha-0.8.5-9.el6.x86_64
--> Running transaction check
---> Package ipvsadm.x86_64 0:1.25-9.el6 will be installed
---> Package php.x86_64 0:5.3.3-3.el6_2.8 will be installed
--> Processing Dependency: php-common = 5.3.3-3.el6_2.8 for package: php-5.3.3-3.el6_2.8.x86_64
--> Processing Dependency: php-cli = 5.3.3-3.el6_2.8 for package: php-5.3.3-3.el6_2.8.x86_64
--> Running transaction check
---> Package php-cli.x86_64 0:5.3.3-3.el6_2.8 will be installed
---> Package php-common.x86_64 0:5.3.3-3.el6_2.8 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package           Arch          Version                   Repository      Size
================================================================================
Installing:
 piranha           x86_64        0.8.5-9.el6               base           619 k
Installing for dependencies:
 ipvsadm           x86_64        1.25-9.el6                base            41 k
 php               x86_64        5.3.3-3.el6_2.8           updates        1.1 M
 php-cli           x86_64        5.3.3-3.el6_2.8           updates        2.2 M
 php-common        x86_64        5.3.3-3.el6_2.8           updates        522 k

Transaction Summary
================================================================================
Install       5 Package(s)

Total download size: 4.4 M
Installed size: 18 M
Downloading Packages:
(1/5): ipvsadm-1.25-9.el6.x86_64.rpm                     |  41 kB     00:02
(2/5): php-5.3.3-3.el6_2.8.x86_64.rpm                    | 1.1 MB     00:03
(3/5): php-cli-5.3.3-3.el6_2.8.x86_64.rpm                | 2.2 MB     00:05
(4/5): php-common-5.3.3-3.el6_2.8.x86_64.rpm             | 522 kB     00:01
(5/5): piranha-0.8.5-9.el6.x86_64.rpm                    | 619 kB     00:16
--------------------------------------------------------------------------------
Total                                           141 kB/s | 4.4 MB     00:32
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Warning: RPMDB altered outside of yum.
  Installing : php-common-5.3.3-3.el6_2.8.x86_64                            1/5
  Installing : php-cli-5.3.3-3.el6_2.8.x86_64                               2/5
  Installing : php-5.3.3-3.el6_2.8.x86_64                                   3/5
  Installing : ipvsadm-1.25-9.el6.x86_64                                    4/5
  Installing : piranha-0.8.5-9.el6.x86_64                                   5/5

Installed:
  piranha.x86_64 0:0.8.5-9.el6

Dependency Installed:
  ipvsadm.x86_64 0:1.25-9.el6           php.x86_64 0:5.3.3-3.el6_2.8
  php-cli.x86_64 0:5.3.3-3.el6_2.8      php-common.x86_64 0:5.3.3-3.el6_2.8

Complete!

4.2 : Now install on loadb2.

[root@loadb2 ~]# yum install -y piranha
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
 * base: centos.syn.co.il
 * extras: centos.syn.co.il
 * updates: centosg4.centos.org
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package piranha.x86_64 0:0.8.5-9.el6 will be installed
--> Processing Dependency: ipvsadm >= 1.14 for package: piranha-0.8.5-9.el6.x86_64
--> Processing Dependency: php for package: piranha-0.8.5-9.el6.x86_64
--> Running transaction check
---> Package ipvsadm.x86_64 0:1.25-9.el6 will be installed
---> Package php.x86_64 0:5.3.3-3.el6_2.8 will be installed
--> Processing Dependency: php-common = 5.3.3-3.el6_2.8 for package: php-5.3.3-3.el6_2.8.x86_64
--> Processing Dependency: php-cli = 5.3.3-3.el6_2.8 for package: php-5.3.3-3.el6_2.8.x86_64
--> Running transaction check
---> Package php-cli.x86_64 0:5.3.3-3.el6_2.8 will be installed
---> Package php-common.x86_64 0:5.3.3-3.el6_2.8 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package           Arch          Version                   Repository      Size
================================================================================
Installing:
 piranha           x86_64        0.8.5-9.el6               base           619 k
Installing for dependencies:
 ipvsadm           x86_64        1.25-9.el6                base            41 k
 php               x86_64        5.3.3-3.el6_2.8           updates        1.1 M
 php-cli           x86_64        5.3.3-3.el6_2.8           updates        2.2 M
 php-common        x86_64        5.3.3-3.el6_2.8           updates        522 k

Transaction Summary
================================================================================
Install       5 Package(s)

Total download size: 4.4 M
Installed size: 18 M
Downloading Packages:
(1/5): ipvsadm-1.25-9.el6.x86_64.rpm                     |  41 kB     00:02
(2/5): php-5.3.3-3.el6_2.8.x86_64.rpm                    | 1.1 MB     00:03
(3/5): php-cli-5.3.3-3.el6_2.8.x86_64.rpm                | 2.2 MB     00:05
(4/5): php-common-5.3.3-3.el6_2.8.x86_64.rpm             | 522 kB     00:01
(5/5): piranha-0.8.5-9.el6.x86_64.rpm                    | 619 kB     00:16
--------------------------------------------------------------------------------
Total                                           141 kB/s | 4.4 MB     00:32
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Warning: RPMDB altered outside of yum.
  Installing : php-common-5.3.3-3.el6_2.8.x86_64                            1/5
  Installing : php-cli-5.3.3-3.el6_2.8.x86_64                               2/5
  Installing : php-5.3.3-3.el6_2.8.x86_64                                   3/5
  Installing : ipvsadm-1.25-9.el6.x86_64                                    4/5
  Installing : piranha-0.8.5-9.el6.x86_64                                   5/5

Installed:
  piranha.x86_64 0:0.8.5-9.el6

Dependency Installed:
  ipvsadm.x86_64 0:1.25-9.el6           php.x86_64 0:5.3.3-3.el6_2.8
  php-cli.x86_64 0:5.3.3-3.el6_2.8      php-common.x86_64 0:5.3.3-3.el6_2.8

Complete!

4.3 : Edit file /etc/sysconfig/ha/lvs.cf and at the end of this file paste these contents.

serial_no = 161
primary = 192.168.2.1
service = lvs
rsh_command = ssh
backup_active = 1
backup = 192.168.2.2
heartbeat = 1
heartbeat_port = 1050
keepalive = 2
deadtime = 10
network = direct
debug_level = NONE
monitor_links = 1
virtual server1 {
active = 1
address = 192.168.2.100 eth0:1
port = 80
send = "GET / HTTP/1.1\r\n\r\n"
expect = "HTTP"
load_monitor = uptime
scheduler = rr
protocol = tcp
timeout = 10
reentry = 180
quiesce_server = 0
server websrv1 {
address = 192.168.2.10
active = 1
weight = 1
}
server websrv2 {
address = 192.168.2.11
active = 1
weight = 1
}
}

4.4 : copy this file on loadb2 using scp

[root@loadb1 ~]# scp /etc/sysconfig/ha/lvs.cf loadb2:/etc/sysconfig/ha/
lvs.cf                                        100% 7966     7.8KB/s   00:00

4.5 : IP Packet forwarding must b on in sysctl.conf and below packet forwarding paste these line

net.ipv4.ip_forward = 1

net.ipv4.conf.eth0.arp_ignore = 1

net.ipv4.conf.all.arp_announce = 2

net.ipv4.conf.eth0.arp_announce = 2

4.6 : ‘sysctl -p’ run this command on loadb1

net.ipv4.ip_forward = 1
net.ipv4.conf.eth0.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.eth0.arp_announce = 2
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 68719476736
kernel.shmall = 4294967296

4.7 : copy ‘sysctl.conf’ on loadb2 using scp

[root@loadb1 ~]# scp /etc/sysctl.conf loadb2:/etc/
sysctl.conf                                   100% 1261     1.2KB/s   00:00

4.8 : ‘sysctl -p’ run this command on loadb2

net.ipv4.ip_forward = 1
net.ipv4.conf.eth0.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.eth0.arp_announce = 2
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 68719476736
kernel.shmall = 4294967296

4.9 : Now time to run piranha main daemon (pulse) on both loadb1 and loadb2 servers.

Note : Before Running this command make sure http service is running on both websrv1 and websrv2.

[root@loadb1 ~]# service pulse start
Starting pulse:                                            [  OK  ]

4.10 : Monitor your log on loadb1

[root@loadb1 ~]# tail -f /var/log/messages
Jun  9 15:49:11 loadb1 pulse[7368]: STARTING PULSE AS MASTER
Jun  9 15:49:21 loadb1 pulse[7368]: partner dead: activating lvs
Jun  9 15:49:21 loadb1 avahi-daemon[2392]: Registering new address record for 192.168.2.100 on eth2.IPv4.
Jun  9 15:49:21 loadb1 lvs[7372]: starting virtual service server1 active: 80
Jun  9 15:49:21 loadb1 lvs[7372]: create_monitor for server1/websrv1 running as pid 7381
Jun  9 15:49:21 loadb1 lvs[7372]: create_monitor for server1/websrv2 running as pid 7382
Jun  9 15:49:21 loadb1 nanny[7382]: starting LVS client monitor for 192.168.2.100:80 -> 192.168.2.11:80
Jun  9 15:49:21 loadb1 nanny[7381]: starting LVS client monitor for 192.168.2.100:80 -> 192.168.2.10:80

Part 5 : webservers configurations
Jun  9 15:49:21 loadb1 nanny[7382]: [ active ] making 192.168.2.11:80 available
Jun  9 15:49:21 loadb1 nanny[7381]: [ active ] making 192.168.2.10:80 available
Jun  9 15:49:22 loadb1 ntpd[2532]: Listening on interface #7 eth0:1, 192.168.2.100#123 Enabled
Jun  9 15:49:26 loadb1 pulse[7374]: gratuitous lvs arps finished

Note : if your log matches with above log it means your lvs working fine.!

4.11 : Now time to run piranha main daemon (pulse) on loadb2 server.

[root@loadb2 ~]# service pulse start
Starting pulse:                                            [  OK  ]

Part-5: Webservers Configuration.

Don’t Forget

chkconfig pulse on