200910.28
I decided to try to get more than an IP address clustered on my new OpenAIS setup. I was successful. I have two MySQL db nodes (db1, db2) running at 10.0.2.10[1,2]. Make sure you turn off all mysqld instances before proceeding…pacemaker will start/manage them for you.
# chmod a-x /etc/rc.d/rc.mysqld (run on both nodes!) # crm configure property no-quorum-policy="ignore" # crm configure primitive ip_mysql ocf:heartbeat:IPaddr2 params ip="10.0.2.21" # crm configure primitive mysqld \ ocf:heartbeat:mysql \ params binary="/usr/local/bin/mysqld_safe" \ config="/etc/my.cnf" \ socket="/srv/tmp/sockets/mysql.sock" \ datadir="/srv/var/mysql" \ user="mysql" \ test_user="ha" \ test_password="lololol" \ test_table="beeets.omglolwtf" \ op monitor interval="20s" timeout="20s" \ meta migration-threshold="10" target-role="Started" # crm configure group mysql mysqld ip_mysql
That should do it. Here’s a step-by-step:
- First, we turn off automatic execution of mysql on node startup. Since pacemaker will be managing mysql, we don’t want two instances conflicting.
- Turn off the quorum checking. Since we’re only running two nodes, it doesn’t make sense to stop all services if on of them goes down. In fact, that would sort of defeat the purpose.
- Add an IP address that will represent our MySQL cluster.
- Add the actual definition for MySQL. Obviously, you’ll be substituting your own values in for mine.
- Configure a group. Now MySQL will always run on the same machine as the ip_mysql (we want this!).
With this setup, you can contact MySQL at 10.0.2.21. A failure of db1 will result in db2 assimilating the 10.0.2.21 IP and the MySQL service. Pretty wicked. Next up, How this can relate to replication and/or DRBD.
Did you ever get replication to work automatically? I’ve been trying to get that going using pacemaker and haven’t figured it out yet…
John, sorry, never actually got this far. There are plenty of very good guides on Google about setting up replication with DRBD.
I got more into MySQL cluster than the replication approach since given recent changes, they’ve actually made it a more viable option (the entire database no longer needs to fit in ram, just indexes). The setup is about just as complicated as replication, but there are many more benefits depending on the application. Worth checking out.