Benutzer-Werkzeuge

Webseiten-Werkzeuge


pacemaker_und_corosync

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
pacemaker_und_corosync [2014-01-21 16:50:40] – [Schwenk] manfredpacemaker_und_corosync [2017-04-20 06:39:20] (aktuell) – [Pacemaker+Corosync] manfred
Zeile 1: Zeile 1:
 +====== Pacemaker und Corosync ======
 +
 +Aus //Heartbeat// spaltete sich 2007 //Pacemaker// ab, es ist praktisch eine Heartbeat-Version, die konform zum openAIS-//Cluster Communication Layer// sein sollte.
 +2008 wurde das bisherige //Pacemaker// in //Pacemaker// + //Corosync// aufgespalten, hierdurch wurde der //Cluster Communication Layer// (Corosync) von den //Plugins für die Clusterdienste// (Pacemaker) getrennt.
 +
 +  * [[http://www.pro-linux.de/artikel/1/48/virtueller-hochverfuegbarer-linux-server.html|Virtueller hochverfügbarer Linux-Server]]
 +  * [[http://www.linux-magazin.de/Online-Artikel/Hochverfuegbarkeit-mit-Linux-im-Wandel/|Hochverfügbarkeit mit Linux im Wandel - Teil 1]]
 +  * [[http://www.linux-magazin.de/Online-Artikel/Hochverfuegbarkeit-mit-Linux-im-Wandel/(offset)/1|Hochverfügbarkeit mit Linux im Wandel - Teil 2]]
 +  * [[http://www.linux-magazin.de/Online-Artikel/Hochverfuegbarkeit-mit-Linux-im-Wandel/(offset)/2|Hochverfügbarkeit mit Linux im Wandel - Teil 3]]
 +  * [[http://www.linux-magazin.de/Online-Artikel/Hochverfuegbarkeit-mit-Linux-im-Wandel/(offset)/4|Hochverfügbarkeit mit Linux im Wandel - Teil 4]]
 +
 +__Diese Anleitung zeigt nur den ersten Schritt,
 +um ein Gefühl dafür zu bekommen.
 +Weitergehende Infos findet man hier:__ [[http://www.clusterlabs.org/doc/en-US/Pacemaker/1.1/html/Clusters_from_Scratch/]]
 +
 +
 +===== Host-VM-System - Multicast-Einstellung =====
 +
 +Damit Pacemaker (auf den Gast-VM-Systemen) zwischen den Clusterknoten kommunizieren kann, müssen die BRIDGE-DEVs (hier **br1**) Multicast zulassen:
 +  > echo 2 > /sys/devices/virtual/net/br1/bridge/multicast_router
 +  > echo 1 >/sys/class/net/br1/bridge/multicast_querier
 +
 +zum Beispiel:
 +  > vi /etc/rc.local
 +<file>
 +#!/bin/bash
 +
 +touch /forcefsck
 +echo 2 > /sys/devices/virtual/net/br1/bridge/multicast_router
 +echo 1 >/sys/class/net/br1/bridge/multicast_querier
 +exit 0
 +</file>
 +
 +
 +===== Installation von Corosync und Pacemaker =====
 +
 +  # aptitude install pacemaker corosync
 +
 +Nach der Installation von Pacemaker:
 +  # ln -s /usr/lib/ocf/lib/heartbeat/ /lib/heartbeat
 + 
 +  # update-rc.d -f drbd remove
 +
 +
 +==== Corosync ====
 +
 +Corosync Multicast: 224.0.0.80:26587
 +
 +
 +=== Ubuntu 10.04 ===
 +
 +
 +== /etc/corosync/corosync.conf ==
 +
 +Bei mehreren "interface"-Sektionen müssen sich die "ringnumber" unterscheiden (und der "rrp_mode" muss auf active/passive gesetzt werden):
 +        interface {
 +                # The following values need to be set based on your environment
 +                ringnumber: 0
 +                #bindnetaddr: 127.0.0.1
 +                bindnetaddr: 192.168.0.0
 +                mcastaddr: 226.94.1.1
 +                mcastport: 5405
 +        }
 +
 +
 +=== Ubuntu 12.04 ===
 +
 +
 +== /etc/corosync/corosync.conf ==
 +
 +Bei mehreren "interface"-Sektionen müssen sich die "ringnumber" unterscheiden (und der "rrp_mode" muss auf active/passive gesetzt werden):
 +        interface {
 +                # The following values need to be set based on your environment
 +                ringnumber: 0
 +                #bindnetaddr: 127.0.0.1
 +                bindnetaddr: 192.168.0.0
 +                mcastaddr: 226.94.1.1
 +                mcastport: 5405
 +        }
 +
 +"ver" sollte auf "1" gesetzt werden, bei "0" würde Pacemaker automatisch starten (geht aber nicht sauber):
 +  service {
 +          # Load the Pacemaker Cluster Resource Manager
 +          ver:       1
 +          name:      pacemaker
 +  }
 +
 +  # /etc/init.d/pacemaker restart
 +
 +
 +=== /etc/default/corosync ===
 +
 +  # start corosync at boot [yes|no]
 +  START=yes
 +
 +  # /etc/init.d/corosync restart
 +
 +
 +==== Pacemaker ====
 +
 +[[Pacemaker]]
 +
 +
 +===== Pacemaker 1 und Corosync 1 mit Ubuntu 12.04 =====
 +
 +  > corosync -v
 +  Corosync Cluster Engine, version '1.4.2'
 +  Copyright (c) 2006-2009 Red Hat, Inc.
 +
 +  > pacemakerd --version
 +  Pacemaker 1.1.6
 +  Written by Andrew Beekhof
 +
 +==== Pacemaker+Corosync ====
 +
 +<file bash /etc/corosync/corosync.conf>
 +# Please read the openais.conf.5 manual page
 +
 +totem {
 +        version: 2
 +
 +        # How long before declaring a token lost (ms)
 +        token: 3000
 +
 +        # How many token retransmits before forming a new configuration
 +        token_retransmits_before_loss_const: 10
 +
 +        # How long to wait for join messages in the membership protocol (ms)
 +        join: 60
 +
 +        # How long to wait for consensus to be achieved before starting a new round of membership configuration (ms)
 +        consensus: 3600
 +
 +        # Turn off the virtual synchrony filter
 +        vsftype: none
 +
 +        # Number of messages that may be sent by one processor on receipt of the token
 +        max_messages: 20
 +
 +        # Limit generated nodeids to 31-bits (positive signed integers)
 +        clear_node_high_bit: yes
 +
 +        # Disable encryption
 +        secauth: off
 +
 +        # How many threads to use for encryption/decryption
 +        threads: 0
 +
 +        # Optionally assign a fixed node id (integer)
 +        # nodeid: 1234
 +
 +        # This specifies the mode of redundant ring, which may be none, active, or passive.
 +        rrp_mode: none
 +
 +        interface {
 +                # The following values need to be set based on your environment 
 +                ringnumber: 0
 +                bindnetaddr: 10.11.12.0
 +                mcastaddr: 226.94.1.1
 +                mcastport: 5410
 +        }
 +}
 +
 +amf {
 +        mode: disabled
 +}
 +
 +service {
 +        # Load the Pacemaker Cluster Resource Manager
 +        ver:       0
 +        name:      pacemaker
 +}
 +
 +aisexec {
 +        user:   root
 +        group:  root
 +}
 +
 +logging {
 +        fileline: off
 +        to_stderr: yes
 +        to_logfile: no
 +        to_syslog: yes
 +        syslog_facility: daemon
 +        debug: off
 +        timestamp: on
 +        logger_subsys {
 +                subsys: AMF
 +                debug: off
 +                tags: enter|leave|trace1|trace2|trace3|trace4|trace6
 +        }
 +}
 +</file>
 +
 +wenn hier ''ver: 0'' steht, dann wird beim Start von Corosync das Pacemaker-Plugin geladen:
 +  service {
 +          # Load the Pacemaker Cluster Resource Manager
 +          ver:       0
 +          name:      pacemaker
 +  }
 +
 +Das bedeutet, dass der Dienst ''pacemaker'' nicht als laufender Dienst erkennbar ist:
 +  > service pacemaker status
 +  pacemakerd is stopped
 +  
 +  > ps alx | fgrep pacemaker
 +  0     0 38259  4094  20     9504   764 -      R+   pts/     0:00 fgrep --color=auto pacemaker
 +
 +...trotzdem wird der CRM-Monitor funktionieren:
 +  > crm_mon -fr
 +  ============
 +  Last updated: Thu Apr 20 08:21:11 2017
 +  Last change: Thu Apr 20 08:09:08 2017 via crmd on ttvdbgalera001
 +  Stack: openais
 +  Current DC: ttvdbgalera002 - partition with quorum
 +  Version: 1.1.6-9971ebba4494012a93c03b40a2c58ec0eb60f50c
 +  3 Nodes configured, 3 expected votes
 +  1 Resources configured.
 +  ============
 +  
 +  Online: [ ttvdbgalera002 ttvdbgalera003 ttvdbgalera001 ]
 +  
 +  Full list of resources:
 +  
 +  res_mysqlIP     (ocf::heartbeat:mysqlIP):       Started ttvdbgalera001
 +  
 +  Migration summary:
 +  * Node ttvdbgalera001: 
 +  * Node ttvdbgalera002: 
 +  * Node ttvdbgalera003: 
 +
 +
 +<file bash crm configure show>
 +node ttvdbgalera001 \
 +        attributes standby="off" maintenance="off"
 +node ttvdbgalera002 \
 +        attributes standby="off" maintenance="off"
 +node ttvdbgalera003 \
 +        attributes standby="off" maintenance="off"
 +primitive res_mysqlIP ocf:heartbeat:mysqlIP \
 +        params ip="10.11.12.100" nic="bond0" \
 +        op start interval="0" timeout="30" \
 +        op stop interval="0" timeout="30" \
 +        op monitor interval="10s" \
 +        meta is-managed="true" target-role="Started"
 +property $id="cib-bootstrap-options" \
 +        dc-version="1.1.6-9971ebba4494012a93c03b40a2c58ec0eb60f42c" \
 +        cluster-infrastructure="openais" \
 +        expected-quorum-votes="3" \
 +        stonith-enabled="false" \
 +        no-quorum-policy="ignore" \
 +        last-lrm-refresh="1492678548" \
 +        maintenance-mode="false"
 +rsc_defaults $id="rsc-options" \
 +        resource-stickiness="100"
 +</file>
 +
 +
 +===== Pacemaker 1 und Corosync 2 mit Ubuntu 14.04 =====
 +
 +  * [[http://docs.openstack.org/ha-guide/controller-ha-pacemaker.html]]
 +
 +
 +Pacemaker muss nach Corosync gestartet werden und vor Corosync beendet werden!!!
 +  > update-rc.d pacemaker start 20 2 3 4 5 . stop 00 0 1 6 .
 +
 +
 +damit Pacemaker mit Corosync komunizieren kann:
 +<file bash /etc/corosync/corosync.conf>
 +...
 +service {
 +        # Load the Pacemaker Cluster Resource Manager (5)
 +        ver:       1
 +        name:      pacemaker
 +}
 +...
 +</file>
 +
 +
 +<file bash /etc/corosync/uidgid.d/pacemaker>
 +uidgid {
 +        uid: hacluster
 +        gid: haclient
 +}
 +</file>