PACEMAKER: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Keine Bearbeitungszusammenfassung |
|||
| (82 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
= | =Installation= | ||
==crm== | ==[ALL] Initial setup== | ||
== | Install required packages: | ||
== | sudo apt-get install pacemaker cman resource-agents fence-agents gfs2-utils gfs2-cluster ocfs2-tools-cman openais drbd8-utils | ||
=== | |||
Make sure each host can resolve all other hosts. Best way to achive this is by adding their IPs and hostnames to /etc/hosts on all nodes. In this example, that would be: | |||
eth0 | |||
192.168.244.161 fix | |||
192.168.244.162 foxy | |||
eth1 | |||
10.168.244.161 fix-ha | |||
10.168.244.162 foxy-ha | |||
Disable o2cb from starting: | |||
update-rc.d -f o2cb remove | |||
==[ALL] Create /etc/cluster/cluster.conf== | |||
Paste this into '''/etc/cluster/cluster.conf''' : | |||
<?xml version="1.0"?> | |||
<cluster config_version="1" name="pacemaker"> | |||
<cman two_node="1" expected_votes="1"> </cman> | |||
<fence_daemon clean_start="0" post_fail_delay="0" post_join_delay="3"/> | |||
<clusternodes> | |||
<clusternode name="fix" nodeid="1" votes="1"> | |||
<fence> | |||
<method name="pcmk-redirect"> | |||
<device name="pcmk" port="fix"/> | |||
</method> | |||
</fence> | |||
</clusternode> | |||
<clusternode name="foxy" nodeid="2" votes="1"> | |||
<fence> | |||
<method name="pcmk-redirect"> | |||
<device name="pcmk" port="foxy"/> | |||
</method> | |||
</fence> | |||
</clusternode> | |||
</clusternodes> | |||
<fencedevices> | |||
<fencedevice name="pcmk" agent="fence_pcmk"/> | |||
</fencedevices> | |||
</cluster> | |||
Validate the config | |||
# ccs_config_validate | |||
Configuration validates | |||
==[ALL] Edit /etc/corosync/corosync.conf== | |||
Find pacemaker service in /etc/corosync/corosync.conf and bump version to 1: | |||
service { | |||
# Load the Pacemaker Cluster Resource Manager | |||
ver: 1 | |||
name: pacemaker | |||
} | |||
Replace bindnetaddr with the IP of your network. For example: | |||
bindnetaddr: 10.168.244.0 | |||
'0' is not a typo. | |||
==[ALL] Enable pacemaker init scripts== | |||
update-rc.d -f pacemaker remove | |||
update-rc.d pacemaker start 50 1 2 3 4 5 . stop 01 0 6 . | |||
==[ALL] Start cman service and then pacemaker service== | |||
deactivat quorum | |||
# echo CMAN_QUORUM_TIMEOUT=0 >> /etc/default/cman | |||
start cman | |||
# service cman start | |||
Starting cluster: | |||
Checking if cluster has been disabled at boot... [ OK ] | |||
Checking Network Manager... [ OK ] | |||
Global setup... [ OK ] | |||
Loading kernel modules... [ OK ] | |||
Mounting configfs... [ OK ] | |||
Starting cman... [ OK ] | |||
Waiting for quorum... [ OK ] | |||
Starting fenced... [ OK ] | |||
Starting dlm_controld... [ OK ] | |||
Unfencing self... [ OK ] | |||
Joining fence domain... [ OK ] | |||
# cman_tool nodes | |||
Node Sts Inc Joined Name | |||
1 M 4 2012-09-11 19:14:58 fix | |||
2 M 8 2012-09-11 19:18:35 foxy | |||
==[ALL] Enable pacemaker init scripts== | |||
update-rc.d -f pacemaker remove | |||
update-rc.d pacemaker start 50 1 2 3 4 5 . stop 01 0 6 . | |||
service pacemaker start | |||
Starting Pacemaker Cluster Manager: [ OK ] | |||
==[ONE] Setup resources== | |||
Wait for a minute until pacemaker declares all nodes online: | |||
# crm status | |||
============ | |||
Last updated: Fri Sep 7 21:18:12 2012 | |||
Last change: Fri Sep 7 21:17:17 2012 via crmd on fix | |||
Stack: cman | |||
Current DC: fix - partition with quorum | |||
Version: 1.1.6-9971ebba4494012a93c03b40a2c58ec0eb60f50c | |||
2 Nodes configured, unknown expected votes | |||
0 Resources configured. | |||
============ | |||
Online: [ fix foxy ] | |||
==[[OCSF2 WAY]]== | |||
==[[GFS2 WAY]]== | |||
==[[CRM/CIB]]== | |||
==[ALL] install services that will fail over between servers== | |||
In this example, I'm installing apache2 | |||
sudo apt-get install apache2 | |||
Disable their init scripts: | |||
update-rc.d -f apache2 remove | |||
In this example, I'll create failover for the apache2. I'll also add one additional and tie apache2. | |||
sudo crm configure edit | |||
primitive resAPACHE ocf:heartbeat:apache \ | |||
params configfile="/etc/apache2/apache2.conf" httpd="/usr/sbin/apache2" \ | |||
op monitor interval="5s" | |||
primitive resIP-APACHE ocf:heartbeat:IPaddr2 \ | |||
params ip="192.168.244.171" cidr_netmask="21" nic="eth0 | |||
group groupAPACHE resIP-APACHE resAPACHE | |||
order apache_after_ip inf: resIP-APACHE:start resAPACHE:start | |||
=Links= | |||
*http://www.linux-magazin.de/Online-Artikel/GFS2-und-OCFS2-zwei-Cluster-Dateisysteme-im-Linux-Kernel | |||
*https://wiki.ubuntu.com/ClusterStack/Precise | |||
*https://wiki.ubuntu.com/ClusterStack/LucidTesting | |||
*http://www.clusterlabs.org/doc/en-US/Pacemaker/1.1/html/Clusters_from_Scratch | |||
*http://www.drbd.org/users-guide/ | |||
*http://wiki.techstories.de/display/IT/Pacemaker+HA-Cluster+Schulung+GFU+Koeln | |||
*http://theclusterguy.clusterlabs.org/post/907043024/introducing-the-pacemaker-master-control-process-for | |||
*http://www.hastexo.com/resources/hints-and-kinks/fencing-libvirtkvm-virtualized-cluster-nodes | |||
*http://linux.die.net/man/5/cluster.conf | |||
*http://burning-midnight.blogspot.de/2012/05/cluster-building-ubuntu-1204.html | |||
*http://burning-midnight.blogspot.de/2012/07/cluster-building-ubuntu-1204-revised.html | |||
*http://www.hastexo.com/resources/hints-and-kinks/ocfs2-pacemaker-debianubuntu | |||
*http://www.gossamer-threads.com/lists/drbd/users/23267 | |||
*http://blog.simon-meggle.de/tutorials/score-berechnung-im-pacemaker-cluster-teil-1/ | |||
*http://www.clusterlabs.org/doc/en-US/Pacemaker/1.0/html/Pacemaker_Explained/s-cluster-options.html | |||
*http://www.clusterlabs.org/doc/en-US/Pacemaker/1.1/html/Pacemaker_Explained/s-ocf-return-codes.html | |||
*https://aseith.com/plugins/viewsource/viewpagesrc.action?p | |||
*http://publications.jbfavre.org/virtualisation/cluster-xen-corosync-pacemaker-drbd-ocfs2.enageId=9601113 | |||
*http://www.youtube.com/watch?v=3GoT36cK6os&feature=youtu.be | |||
*http://www.debian-administration.org/articles/578 | |||
*http://blog.datentraeger.li/?cat=31 | |||
*http://publications.jbfavre.org/virtualisation/cluster-xen-corosync-pacemaker-drbd-ocfs2.en | |||
Aktuelle Version vom 29. Januar 2013, 11:21 Uhr
Installation
[ALL] Initial setup
Install required packages:
sudo apt-get install pacemaker cman resource-agents fence-agents gfs2-utils gfs2-cluster ocfs2-tools-cman openais drbd8-utils
Make sure each host can resolve all other hosts. Best way to achive this is by adding their IPs and hostnames to /etc/hosts on all nodes. In this example, that would be:
eth0 192.168.244.161 fix 192.168.244.162 foxy eth1 10.168.244.161 fix-ha 10.168.244.162 foxy-ha
Disable o2cb from starting:
update-rc.d -f o2cb remove
[ALL] Create /etc/cluster/cluster.conf
Paste this into /etc/cluster/cluster.conf :
<?xml version="1.0"?>
<cluster config_version="1" name="pacemaker">
<cman two_node="1" expected_votes="1"> </cman>
<fence_daemon clean_start="0" post_fail_delay="0" post_join_delay="3"/>
<clusternodes>
<clusternode name="fix" nodeid="1" votes="1">
<fence>
<method name="pcmk-redirect">
<device name="pcmk" port="fix"/>
</method>
</fence>
</clusternode>
<clusternode name="foxy" nodeid="2" votes="1">
<fence>
<method name="pcmk-redirect">
<device name="pcmk" port="foxy"/>
</method>
</fence>
</clusternode>
</clusternodes>
<fencedevices>
<fencedevice name="pcmk" agent="fence_pcmk"/>
</fencedevices>
</cluster>
Validate the config
# ccs_config_validate Configuration validates
[ALL] Edit /etc/corosync/corosync.conf
Find pacemaker service in /etc/corosync/corosync.conf and bump version to 1:
service {
# Load the Pacemaker Cluster Resource Manager
ver: 1
name: pacemaker
}
Replace bindnetaddr with the IP of your network. For example:
bindnetaddr: 10.168.244.0
'0' is not a typo.
[ALL] Enable pacemaker init scripts
update-rc.d -f pacemaker remove update-rc.d pacemaker start 50 1 2 3 4 5 . stop 01 0 6 .
[ALL] Start cman service and then pacemaker service
deactivat quorum
# echo CMAN_QUORUM_TIMEOUT=0 >> /etc/default/cman
start cman
# service cman start Starting cluster: Checking if cluster has been disabled at boot... [ OK ] Checking Network Manager... [ OK ] Global setup... [ OK ] Loading kernel modules... [ OK ] Mounting configfs... [ OK ] Starting cman... [ OK ] Waiting for quorum... [ OK ] Starting fenced... [ OK ] Starting dlm_controld... [ OK ] Unfencing self... [ OK ] Joining fence domain... [ OK ]
# cman_tool nodes Node Sts Inc Joined Name 1 M 4 2012-09-11 19:14:58 fix 2 M 8 2012-09-11 19:18:35 foxy
[ALL] Enable pacemaker init scripts
update-rc.d -f pacemaker remove update-rc.d pacemaker start 50 1 2 3 4 5 . stop 01 0 6 .
service pacemaker start Starting Pacemaker Cluster Manager: [ OK ]
[ONE] Setup resources
Wait for a minute until pacemaker declares all nodes online: # crm status ============ Last updated: Fri Sep 7 21:18:12 2012 Last change: Fri Sep 7 21:17:17 2012 via crmd on fix Stack: cman Current DC: fix - partition with quorum Version: 1.1.6-9971ebba4494012a93c03b40a2c58ec0eb60f50c 2 Nodes configured, unknown expected votes 0 Resources configured. ============ Online: [ fix foxy ]
OCSF2 WAY
GFS2 WAY
CRM/CIB
[ALL] install services that will fail over between servers
In this example, I'm installing apache2
sudo apt-get install apache2
Disable their init scripts:
update-rc.d -f apache2 remove
In this example, I'll create failover for the apache2. I'll also add one additional and tie apache2.
sudo crm configure edit
primitive resAPACHE ocf:heartbeat:apache \
params configfile="/etc/apache2/apache2.conf" httpd="/usr/sbin/apache2" \
op monitor interval="5s"
primitive resIP-APACHE ocf:heartbeat:IPaddr2 \
params ip="192.168.244.171" cidr_netmask="21" nic="eth0
group groupAPACHE resIP-APACHE resAPACHE
order apache_after_ip inf: resIP-APACHE:start resAPACHE:start
Links
- http://www.linux-magazin.de/Online-Artikel/GFS2-und-OCFS2-zwei-Cluster-Dateisysteme-im-Linux-Kernel
- https://wiki.ubuntu.com/ClusterStack/Precise
- https://wiki.ubuntu.com/ClusterStack/LucidTesting
- http://www.clusterlabs.org/doc/en-US/Pacemaker/1.1/html/Clusters_from_Scratch
- http://www.drbd.org/users-guide/
- http://wiki.techstories.de/display/IT/Pacemaker+HA-Cluster+Schulung+GFU+Koeln
- http://theclusterguy.clusterlabs.org/post/907043024/introducing-the-pacemaker-master-control-process-for
- http://www.hastexo.com/resources/hints-and-kinks/fencing-libvirtkvm-virtualized-cluster-nodes
- http://linux.die.net/man/5/cluster.conf
- http://burning-midnight.blogspot.de/2012/05/cluster-building-ubuntu-1204.html
- http://burning-midnight.blogspot.de/2012/07/cluster-building-ubuntu-1204-revised.html
- http://www.hastexo.com/resources/hints-and-kinks/ocfs2-pacemaker-debianubuntu
- http://www.gossamer-threads.com/lists/drbd/users/23267
- http://blog.simon-meggle.de/tutorials/score-berechnung-im-pacemaker-cluster-teil-1/
- http://www.clusterlabs.org/doc/en-US/Pacemaker/1.0/html/Pacemaker_Explained/s-cluster-options.html
- http://www.clusterlabs.org/doc/en-US/Pacemaker/1.1/html/Pacemaker_Explained/s-ocf-return-codes.html
- https://aseith.com/plugins/viewsource/viewpagesrc.action?p
- http://publications.jbfavre.org/virtualisation/cluster-xen-corosync-pacemaker-drbd-ocfs2.enageId=9601113
- http://www.youtube.com/watch?v=3GoT36cK6os&feature=youtu.be
- http://www.debian-administration.org/articles/578
- http://blog.datentraeger.li/?cat=31
- http://publications.jbfavre.org/virtualisation/cluster-xen-corosync-pacemaker-drbd-ocfs2.en