Failover IP mit Pacemaker und Systemd managen

  • In Anlehnung an das Thema Failover IP und Ansteuerung der SOAP Api über den Corosync Pacemaker Cluster.

    Die entscheidende Anregung habe ich in diesem Thread im Betcup Forum gefunden.

    Hier noch mal meinen herzlichen Dank noch an die Threadteilnehmer. :)
    Daran angelehnt habe ich mir folgende Prozedur zusammen gebastelt, die auch funktioniert.

    Hier beschreibe ich nur die Konfiguration wie man Pacemaker beibringt das Er die IP schalten und verwalten soll. Eine weitergehende Clusterkonfiguration beschreibe ich hier nicht. Nur die von mir verwendete Methode um das ganze zum fliegen zu kriegen. Eine weitergehende Clusterkonfiguration, ist in dem Thread nicht vorgesehen.
    Schritt 1

    Grundsätzlich kann die Prozedur mit jedem Pacemaker Cluster umgesetzt werden und ist nicht distributionsabhängig.
    Ein Sonderfall ist CentOS. Beim Einsatz von CentOS müssen die Primitives und Gruppen mit der PCS Shell umgesetzt werden.

    Schritt 1

    Anlegen folgender Directories auf allen Maschinen

    Code
    mkdir /etc/netcupip
    cd /etc/netcupip

    Schritt 2

    Anlegen der XML Datei mit der Konfiguration um die SOAP API anzusprechen.

    Code
    vi  netcupip.xml


    Schritt 3

    Anlegen des Systemd Services


    Code
    vi /usr/lib/systemd/system/systemd-netcupip.service

    [size=10]

    Schritt 4

    Prüfen ob Systemd das Unit File findet...

    Code
    systemctl list-unit-files |grep netcup
    Code
    systemd-netcupip.service                disabled


    Schritt Fünf

    Konfigurieren des Dienstes im Cluster

    Die Bezeichnung res-netcupip steht nur für den Namen Resource/primitive systems:System-netcupip für den Aufruf des Dienstes durch das Clusterframework.

    Code
    crm configure primitive res-netcupip systemd:systemd-netcupip

    Schritt Sechs:

    Code
    primitive res-virtual-ip IPaddr2 \\
            params ip=46.1.2.3  cidr_netmask=32 lvs_support=false nic=eth0 \\
            op start interval=0 timeout=600 \\
            op stop interval=0 timeout=600 \\
            op monitor interval=10 timeout=240 \\
            meta target-role=Started


    Die erzeugten Ressourcen packen wir noch in eine Gruppe.


    Code
    crm configure group rg-network res-netcupip res-virtual-ip \\
            meta target-role=Started


    Wenn das ganze abgeschlossen ist, sollte der Output auf dem Cluster folgendermaßen
    aussehen.

    Code
    Resource Group: rg-network
    res-netcupip (systemd:systemd-netcupip): Started vserver1
    res-virtual-ip (ocf::heartbeat:IPaddr2): Started vserver1


    Have fun! :D

  • Hi,

    nur eine kleine Anmerkung an die Anleitung, da wir gerade selbst eine ganze Weile gebraucht haben um einen störenden Fehler zu beseitigen.

    Die URL zum des SOAP Endpoint hat sich geändert von

    https://www.vservercontrolpanel.de:443/WSEndUser?xsd=1

    zu

    https://www.servercontrolpanel.de:443/WSEndUser

    Dies sollte auf jeden Fall geändert werden, da sonst die Synchronisierung zwischen dem Server Control Panel nicht stimmt. Bzw. die IPs nicht korrekt zugeordnet werden. Ansonsten funktioniert das Tutorial perfekt ;)

    Danke.