How To Set Up A Load-Balanced MySQL Cluster With MySQL 5.1 - Page 4
7 Start The Load Balancer And Do Some TestingNow we can start our two load balancers for the first time: mysql-lb1.example.com / mysql-lb2.example.com: /etc/init.d/ldirectord stop If you don't see errors, you should now reboot both load balancers.If you do see errors go to the end of this tutorial I might know whats the problem :) [Chapter 8] mysql-lb1.example.com / mysql-lb2.example.com: shutdown -r now After the reboot we can check if both load balancers work as expected : mysql-lb1.example.com / mysql-lb2.example.com: ip addr sh eth0 The active load balancer should list the virtual IP address (10.0.1.10):
The hot-standby should show this:
mysql-lb1.example.com / mysql-lb2.example.com: ldirectord ldirectord.cf status Output on the active load balancer:
Output on the hot-standby:
mysql-lb1.example.com / mysql-lb2.example.com: ipvsadm -L -n Output on the active load balancer:
Output on the hot-standby:
mysql-lb1.example.com / mysql-lb2.example.com: /etc/ha.d/resource.d/LVSSyncDaemonSwap master status Output on the active load balancer:
Output on the hot-standby:
If your tests went fine, you can now try to access the MySQL database from a totally different server in the same network (10.0.1.x) using the virtual IP address 10.0.1.10: mysql -h 10.0.1.10 -u ldirector -p (Please note: your MySQL client must at least be of version 4.1; older versions do not work with MySQL 5.) You can now switch off one of the MySQL cluster nodes for test purposes; you should then still be able to connect to the MySQL database.
8 Annotations and hintsErrors with ldirectord:/etc/init.d/ldirectord stop This error is due to formatting, it took me some time to figure it out. vi /etc/heartbeat/ldirectord.cf
And that should be it. There are some important things to keep in mind when running a MySQL cluster: 1.If you have your databases and you want to use them in MySQL cluster please read this as it will guide you through how to change ENGINE=MyISAM to NDBCLUSTER. 2. Adding user to mysql database and changing GRANTS must be done on all data nodes since mysql database is MyISAM/InoDB. You can of course convert it's engine. 3.All data is stored in RAM! as a default, but Therefore you need lots of RAM on your cluster nodes. The formula how much RAM you need on each node goes like this: (SizeofDatabase × NumberOfReplicas × 1.1 ) / NumberOfDataNodes So if you have a database that is 1 GB of size, you would need 1.1 GB RAM on each node! 4.The cluster management node listens on port 1186, and anyone can connect. So that's definitely not secure, and therefore you should run your cluster in an isolated private network! Since it would be harder to manage it may be a good idea to make changes to /etc/hosts.deny or prepare iptables based firewall. 5.It's a good idea to have a look at the MySQL Cluster FAQ: http://dev.mysql.com/doc/refman/5.1/en/mysql-cluster-faq.html and also at the MySQL Cluster documentation: http://dev.mysql.com/doc/refman/5.1/en/ndbcluster.html
Links
|



Recent comments
20 hours 36 min ago
1 day 3 hours ago
1 day 7 hours ago
1 day 8 hours ago
1 day 17 hours ago
2 days 2 hours ago
2 days 3 hours ago
2 days 7 hours ago
2 days 11 hours ago
2 days 11 hours ago