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
    1. mkdir /etc/netcupip
    2. cd /etc/netcupip


    Schritt 2


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


    Code
    1. vi netcupip.xml




    Schritt 3


    Anlegen des Systemd Services



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


    [size=10]


    Schritt 4


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


    Code
    1. systemctl list-unit-files |grep netcup


    Code
    1. 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
    1. crm configure primitive res-netcupip systemd:systemd-netcupip


    Schritt Sechs:


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



    Die erzeugten Ressourcen packen wir noch in eine Gruppe.



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


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


    Code
    1. Resource Group: rg-network
    2. res-netcupip (systemd:systemd-netcupip): Started vserver1
    3. 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.