How To Set Up A Load-Balanced MySQL Cluster - Page 6

6.2 Configure heartbeat

Next we configure heartbeat by creating three files (all three files must be identical on and /

vi /etc/ha.d/

logfacility        local0
bcast eth0
mcast eth0 694 1 0
auto_failback off
node loadb1
node loadb2
respawn hacluster /usr/lib/heartbeat/ipfail
apiauth ipfail gid=haclient uid=hacluster

Please note: you must list the node names (in this case loadb1 and loadb2) as shown by

uname -n

Other than that, you don't have to change anything in the file.

vi /etc/ha.d/haresources

loadb1        \ \
LVSSyncDaemonSwap::master \

You must list one of the load balancer node names (here: loadb1) and list the virtual IP address ( together with the correct netmask (24) and broadcast address ( If you are unsure about the correct settings, might help you.

vi /etc/ha.d/authkeys

auth 3
3 md5 somerandomstring

somerandomstring is a password which the two heartbeat daemons on loadb1 and loadb2 use to authenticate against each other. Use your own string here. You have the choice between three authentication mechanisms. I use md5 as it is the most secure one.

/etc/ha.d/authkeys should be readable by root only, therefore we do this: /

chmod 600 /etc/ha.d/authkeys

6.3 Configure ldirectord

Now we create the configuration file for ldirectord, the load balancer: /

vi /etc/ha.d/

# Global Directives

virtual =
service = mysql
real = gate
real = gate
checktype = negotiate
login = "ldirector"
passwd = "ldirectorpassword"
database = "ldirectordb"
request = "SELECT * FROM connectioncheck"
scheduler = wrr

Please fill in the correct virtual IP address ( and the correct IP addresses of your MySQL cluster nodes ( and 3306 is the port that MySQL runs on by default. We also specify a MySQL user (ldirector) and password (ldirectorpassword), a database (ldirectordb) and an SQL query. ldirectord uses this information to make test requests to the MySQL cluster nodes to check if they are still available. We are going to create the ldirector database with the ldirector user in the next step.

Now we create the necessary system startup links for heartbeat and remove those of ldirectord (bacause ldirectord will be started by heartbeat): /

update-rc.d -f heartbeat remove
update-rc.d heartbeat start 75 2 3 4 5 . stop 05 0 1 6 .
update-rc.d -f ldirectord remove

Share this page:

0 Comment(s)

Add comment


From: falko at: Mar 27, 2006