Configuring Load-Balanced Clusters (Page 1 of 4 )
In this conclusion to a two-part series on load-balanced clusters, you'll learn how to configure the load balancer and test the system. This article is excerpted from chapter seven of
Linux System Administration, written by Tom Adelstein and Bill Lubanovic (O'Reilly, 2007; ISBN: 0596009526). Copyright © 2007 O'Reilly Media, Inc. All rights reserved. Used with permission from the publisher. Available from booksellers or direct from O'Reilly Media.
Configuring the Load Balancer
On lb, create the load balancer configuration file, /etc/ha.d/ldirectord.cf:
checktimeout=10
checkinterval=2
autoreload=no
logfile="local0"
quiescent=no
virtual=70.253.158.42:80
real=70.253.158.41:80 gate
real=70.253.158.45:80 gate
service=http
request="director.html"
receive="I'm alive!"
scheduler=rr
protocol=tcp
checktype=negotiate
Ifquiescentisyes, a faulty realserver gets a weight of0but remains in the LVS routing table; we’ve set it tono, so dead servers will be removed from the pool. The weight of a server reflects its capacity relative to the other servers. For a simple LB scheme like ours, all live servers have a weight of1and dead ones have a weight of0.
Ifchecktypeisnegotiate, the director will make an HTTP request to each of the realservers for the URLrequest, and see if its contents contain the string value forreceive. If the value ischeck, only a quick TCP check will be done, andrequestandreceivewill be ignored.
The system startup files in /etc for ldirectord should have already been created during the installation. Ultra Monkey also installed Heartbeat, which we aren’t using yet, so let’s disable it for now:
# update-rc.d heartbeat remove
update-rc.d: /etc/init.d/heartbeat exists during rc.d purge (use -f to force)
The load balancer monitors the health of the web servers by regularly requesting the file we specified in ldirectord.cf (request="director.html").
Since this server will be responding to web requests at the VIP address (70.253.158.42), we’d better tell the server about it. Edit /etc/network/interfaces and add these lines to create the alias deviceeth0:0:
auto eth0:0
iface eth0:0 inet static
address 70.253.158.42
netmask 255.255.255.248
# These should have the same values as for eth0:
network ...
broadcast ...
gateway ...
Now, fire up this new IP address:
# ifup eth0:0
Finally, start your engines on lb:
# /etc/init.d/ldirectord start
Starting ldirectord... success
Next: Testing the System >>
More Administration Articles
More By O'Reilly Media
|
This article is excerpted from chapter seven of Linux System Administration, written by Tom Adelstein and Bill Lubanovic (O'Reilly, 2007; ISBN: 0596009526). Check it out today at your favorite bookstore. Buy this book now.
|
|