Install packages on both nodes
sudo yum install corosync pcs pacemaker maxscaleSet the password for the hacluster user [both nodes]
sudo passwd haclusterStart the pcs daemon service [both nodes]
sudo systemctl start pcsdAuthenticate the cluster
sudo pcs cluster auth node01.domain.local node02.domain.localCreate cluster
sudo pcs cluster setup --name clustername node01.domain.local node02.domain.local-
Example output
Shutting down pacemaker/corosync services... Redirecting to /bin/systemctl stop pacemaker.service Redirecting to /bin/systemctl stop corosync.service Killing any remaining services... Removing all cluster configuration files... node01.domain.local: Succeeded node02.domain.local: Succeeded
-
Check the changes in:
nano /etc/corosync/corosync.conf
Start the cluster
sudo pcs cluster start --allCheck the cluster status
sudo pcs status cluster
sudo pcs status nodes
sudo corosync-cmapctl | grep members
sudo pcs status corosync
sudo crm_verify -L -VSet quorum settings
sudo pcs property set stonith-enabled=false
sudo pcs property set no-quorum-policy=ignore- Verify the properties with:
sudo pcs property
Create a virtual IP resource called virtual_ip
sudo pcs resource create virtual_ip ocf:heartbeat:IPaddr2 \
ip=10.10.10.123 cidr_netmask=24 \
op monitor interval=30sCheck the resource status
sudo pcs status resourcesPrevent Resources from Moving after Recovery
sudo pcs resource defaults resource-stickiness=100- Confirm the resource defaults with
sudo pcs resource defaults
Create maxscale service resource called maxscale_service
- Note: for maxscale 1.1.1 and older change
systemdtolsbin the command below as the startup scripts are invoked via systemd in version 1.2 and newer.
sudo pcs resource create maxscale_service systemd:maxscale \
op monitor interval="10s" timeout="15s" \
op start interval="0" timeout="15s" \
op stop interval="0" timeout="30s"Let the cluster control maxscale on both nodes
sudo systemctl stop maxscale-
According to maxscale guide disable maxscale from starting automatically on both nodes
sudo systemctl disable maxscale
Create constraints so that the VIP and maxscale stay together
sudo pcs constraint colocation add maxscale_service virtual_ip INFINITY-
View constraints with
sudo pcs constraint list -
If desired, to keep the maxscale from starting before the VIP is started on the server add an ordering constraint
sudo pcs constraint order virtual_ip then maxscale_service
Restart the cluster
sudo pcs cluster stop --all && sudo pcs cluster start --allCheck the status
sudo pcs statusEnable cluster services on both nodes
sudo systemctl enable pcsd
sudo systemctl enable corosync
sudo systemctl enable pacemaker- Check cluster status with
sudo pcs status - Stop a node (force a failover) with
sudo pcs cluster stop node.domain.local - Start a node with
sudo pcs cluster start node.domain.local