Konfiguration av hög tillgänglighet i SUSE med hjälp av STONITH-enheten

I den här artikeln går vi igenom stegen för att konfigurera hög tillgänglighet (HA) i hana stora instanser på SUSE-operativsystemet med hjälp av STONITH-enheten.

Anteckning

Den här guiden härleds från testning av konfigurationen i Microsoft HANA Large Instances-miljön. Microsoft Service Management-teamet för HANA – stora instanser stöder inte operativsystemet. Kontakta SUSE om du vill felsöka eller förtydliga operativsystemets lager.

Microsoft Service Management-teamet har ställt in och fullständigt stöd för STONITH-enheten. Det kan hjälpa dig att felsöka problem med STONITH-enheter.

Förutsättningar

Om du vill konfigurera hög tillgänglighet med hjälp av SUSE-klustring måste du:

  • Etablera stora HANA-instanser.
  • Installera och registrera operativsystemet med de senaste korrigeringarna.
  • Anslut HANA – stora instansservrar till SMT-servern för att hämta korrigeringar och paket.
  • Konfigurera NETWORK Time Protocol (NTP-tidsserver).
  • Läs och förstå den senaste SUSE-dokumentationen om HA-konfiguration.

Installationsinformation

I den här guiden används följande konfiguration:

  • Operativsystem: SLES 12 SP1 för SAP
  • HANA stora instanser: 2xS192 (fyra sockets, 2 TB)
  • HANA-version: HANA 2.0 SP1
  • Servernamn: sapprdhdb95 (node1) och sapprdhdb96 (node2)
  • STONITH-enhet: iSCSI-baserad
  • NTP på en av noderna för hana-stor instans

När du ställer in hana stora instanser med HANA-systemreplikering kan du begära att Microsoft Service Management-teamet ställer in STONITH-enheten. Gör detta vid tidpunkten för etableringen.

Om du är en befintlig kund med hana stora instanser som redan har etablerats kan du fortfarande få STONITH-enheten konfigurerad. Ange följande information till Microsoft Service Management-teamet i formuläret för tjänstbegäran (SRF). Du kan hämta SRF via Technical Account Manager eller din Microsoft-kontakt för registrering av HANA – stor instans.

  • Servernamn och serverns IP-adress (till exempel myhanaserver1 och 10.35.0.1)
  • Plats (till exempel USA, östra)
  • Kundnamn (till exempel Microsoft)
  • HANA-systemidentifierare (SID) (till exempel H11)

När STONITH-enheten har konfigurerats ger Microsoft Service Management-teamet dig STONITH-blockenhetsnamnet (SBD) och IP-adressen för iSCSI-lagringen. Du kan använda den här informationen för att konfigurera STONITH-konfigurationen.

Följ stegen i följande avsnitt för att konfigurera HA med hjälp av STONITH.

Identifiera SBD-enheten

Anteckning

Det här avsnittet gäller endast för befintliga kunder. Om du är en ny kund ger Microsoft Service Management-teamet dig SBD-enhetsnamnet, så hoppa över det här avsnittet.

  1. Ändra /etc/iscsi/initiatorname.isci till:

    iqn.1996-04.de.suse:01:<Tenant><Location><SID><NodeNumber> 
    

    Microsoft Service Management tillhandahåller den här strängen. Ändra filen på båda noderna. Nodnumret är dock olika på varje nod.

    Skärmbild som visar en initierarnamnsfil med InitiatorName-värden för en nod.

  2. Ändra /etc/iscsi/iscsid.conf genom att ange node.session.timeo.replacement_timeout=5 och node.startup = automatic . Ändra filen på båda noderna.

  3. Kör följande identifieringskommando på båda noderna.

    iscsiadm -m discovery -t st -p <IP address provided by Service Management>:3260
    

    Resultatet visar fyra sessioner.

    Skärmbild som visar ett konsolfönster med resultatet av identifieringskommandot.

  4. Kör följande kommando på båda noderna för att logga in på iSCSI-enheten.

    iscsiadm -m node -l
    

    Resultatet visar fyra sessioner.

    Skärmbild som visar ett konsolfönster med resultatet av nodkommandot.

  5. Använd följande kommando för att köra rescan-scsi-bus.sh genomsökningsskriptet. Det här skriptet visar de nya diskarna som skapats åt dig. Kör den på båda noderna.

    rescan-scsi-bus.sh
    

    Resultatet bör visa ett LUN-nummer som är större än noll (till exempel: 1, 2 och så vidare).

    Skärmbild som visar ett konsolfönster med resultatet av skriptet.

  6. Kör följande kommando på båda noderna för att hämta enhetsnamnet.

      fdisk –l
    

    I resultatet väljer du enheten med storleken 178 MiB.

    Skärmbild som visar ett konsolfönster med resultatet av f-diskkommandot.

Initiera SBD-enheten

  1. Använd följande kommando för att initiera SBD-enheten på båda noderna.

    sbd -d <SBD Device Name> create
    

    Skärmbild som visar ett konsolfönster med resultatet av kommandot s b d create.

  2. Använd följande kommando på båda noderna för att kontrollera vad som har skrivits till enheten.

    sbd -d <SBD Device Name> dump
    

Konfigurera SUSE HA-klustret

  1. Använd följande kommando för att kontrollera om ha_sles och SAPHanaSR-doc-mönster är installerade på båda noderna. Installera dem om de inte är installerade.

    zypper in -t pattern ha_sles
    zypper in SAPHanaSR SAPHanaSR-doc
    

    Skärmbild som visar ett konsolfönster med resultatet av mönsterkommandot.

    Skärmbild som visar ett konsolfönster med resultatet av kommandot SAPHanaSR-doc.

  2. Konfigurera klustret med hjälp av antingen ha-cluster-init kommandot eller yast2-guiden. I det här exemplet använder vi yast2-guiden. Gör det här steget endast på den primära noden.

    1. Gå till yast2-kluster > med hög > tillgänglighet.

      Skärmbild som visar YaST Control Center med Hög tillgänglighet och Kluster valt.

    2. I den dialogruta som visas om installationen av paketpaketet väljer du Avbryt eftersom halk2-paketet redan är installerat.

      Skärmbild som visar en dialogruta med alternativen Installera och Avbryt.

    3. I dialogrutan som visas om att fortsätta väljer du Fortsätt.

      Skärmbild som visar ett meddelande om att fortsätta utan att installera nödvändiga paket.

    4. Det förväntade värdet är antalet noder som distribuerats (i det här fallet 2). Välj Nästa.

    5. Lägg till nodnamn och välj sedan Lägg till föreslagna filer.

      Skärmbild som visar fönstret Konfigurera kluster med listor för synkroniseringsvärd och synkroniseringsfil.

    6. Välj Aktivera csync2 PÅ.

    7. Välj Generera i förväg delade nycklar.

    8. I popup-meddelandet som visas väljer du OK.

      Skärmbild som visar ett meddelande om att nyckeln har genererats.

    9. Autentiseringen utförs med hjälp av IP-adresser och i förväg delade nycklar i Csync2. Nyckelfilen genereras med csync2 -k /etc/csync2/key_hagroup .

      Kopiera filen manuellt key_hagroup alla medlemmar i klustret när det har skapats. Se till att kopiera filen från node1 till node2. Välj sedan Nästa.

      Skärmbild som visar dialogrutan Konfigurera kluster med alternativ som krävs för att kopiera nyckeln till alla medlemmar i klustret.

    10. I standardalternativet var start av . Ändra det till , så att pacemakertjänsten startas vid start. Du kan välja utifrån dina konfigurationskrav.

      Skärmbild som visar fönstret Klustertjänst med Start aktiverat.

    11. Välj Nästa så är klusterkonfigurationen klar.

Konfigurera softdog watchdog

  1. Lägg till följande rad i /etc/init.d/boot.localbåda noderna.

    modprobe softdog
    

    Skärmbild som visar en startfil med softdog-linjen tillagd.

  2. Använd följande kommando för att uppdatera filen /etc/sysconfig/sbdbåda noderna.

    SBD_DEVICE="<SBD Device Name>"
    

    Skärmbild som visar filen s b d med S B-filen D_DEVICE tillagt.

  3. Läs in kernelmodulen på båda noderna genom att köra följande kommando.

    modprobe softdog
    

    Skärmbild som visar en del av ett konsolfönster med kommandot modprobe softdog.

  4. Använd följande kommando för att säkerställa att softdog körs på båda noderna.

    lsmod | grep dog
    

    Skärmbild som visar en del av ett konsolfönster med resultatet av att köra kommandot l s mod.

  5. Använd följande kommando för att starta SBD-enheten på båda noderna.

    /usr/share/sbd/sbd.sh start
    

    Skärmbild som visar en del av ett konsolfönster med startkommandot.

  6. Använd följande kommando för att testa SBD-daemonen på båda noderna.

    sbd -d <SBD Device Name> list
    

    Resultatet visar två poster efter konfigurationen på båda noderna.

    Skärmbild som visar en del av ett konsolfönster som visar två poster.

  7. Skicka följande testmeddelande till en av noderna.

    sbd  -d <SBD Device Name> message <node2> <message>
    
  8. På den andra noden (node2) använder du följande kommando för att kontrollera meddelandestatusen.

    sbd  -d <SBD Device Name> list
    

    Skärmbild som visar en del av ett konsolfönster med en av medlemmarna som visar ett testvärde för den andra medlemmen.

  9. Om du vill använda SBD-konfigurationen uppdaterar du filen /etc/sysconfig/sbd enligt följande på båda noderna.

    SBD_DEVICE=" <SBD Device Name>" 
    SBD_WATCHDOG="yes" 
    SBD_PACEMAKER="yes" 
    SBD_STARTMODE="clean" 
    SBD_OPTS=""
    
  10. Använd följande kommando för att starta pacemakertjänsten på den primära noden (node1).

    systemctl start pacemaker
    

    Skärmbild som visar ett konsolfönster som visar status efter att pacemaker har startas.

    Om pacemakertjänsten misslyckas kan du läsa avsnittet Scenario 5: Pacemakertjänsten misslyckas senare i den här artikeln.

Ansluta noden till klustret

Kör följande kommando på node2 för att låta noden ansluta till klustret.

ha-cluster-join

Om du får ett felmeddelande när klustret ansluts kan du läsa avsnittet Scenario 6: Node2 can't join the cluster later in this article (Scenario 6: Node2 kan inte ansluta till klustret senare i den här artikeln).

Verifiera klustret

  1. Använd följande kommandon för att kontrollera och om du vill starta klustret för första gången på båda noderna.

    systemctl status pacemaker
    systemctl start pacemaker
    

    Skärmbild som visar ett konsolfönster med status för pacemaker.

  2. Kör följande kommando för att se till att båda noderna är online. Du kan köra den på valfri nod i klustret.

    crm_mon
    

    Skärmbild som visar ett konsolfönster med resultatet av kommandot c r m_mon.

    Du kan också logga in för att kontrollera klusterstatusen: https://\<node IP>:7630 . Standardanvändaren är hacluster och lösenordet är linux. Om det behövs kan du ändra lösenordet med hjälp av passwd kommandot .

Konfigurera klusteregenskaper och resurser

I det här avsnittet beskrivs stegen för att konfigurera klusterresurserna. I det här exemplet ställer du in följande resurser. Du kan konfigurera resten (om det behövs) genom att referera till SUSE HA-guiden.

  • Bootstrap för kluster
  • STONITH-enhet
  • Virtuell IP-adress

Gör bara konfigurationen på den primära noden.

  1. Skapa klustrets bootstrap-fil och konfigurera den genom att lägga till följande text.

    sapprdhdb95:~ # vi crm-bs.txt
    # enter the following to crm-bs.txt
    property $id="cib-bootstrap-options" \
    no-quorum-policy="ignore" \
    stonith-enabled="true" \
    stonith-action="reboot" \
    stonith-timeout="150s"
    rsc_defaults $id="rsc-options" \
    resource-stickiness="1000" \
    migration-threshold="5000"
    op_defaults $id="op-options" \
    timeout="600"
    
  2. Använd följande kommando för att lägga till konfigurationen i klustret.

    crm configure load update crm-bs.txt
    

    Skärmbild som visar en del av ett konsolfönster som kör kommandot c r m.

  3. Konfigurera STONITH-enheten genom att lägga till resursen, skapa filen och lägga till text på följande sätt.

    # vi crm-sbd.txt
    # enter the following to crm-sbd.txt
    primitive stonith-sbd stonith:external/sbd \
    params pcmk_delay_max="15"
    

    Använd följande kommando för att lägga till konfigurationen i klustret.

    crm configure load update crm-sbd.txt
    
  4. Lägg till den virtuella IP-adressen för resursen genom att skapa filen och lägga till följande text.

    # vi crm-vip.txt
    primitive rsc_ip_HA1_HDB10 ocf:heartbeat:IPaddr2 \
    operations $id="rsc_ip_HA1_HDB10-operations" \
    op monitor interval="10s" timeout="20s" \
    params ip="10.35.0.197"
    

    Använd följande kommando för att lägga till konfigurationen i klustret.

    crm configure load update crm-vip.txt
    
  5. Använd kommandot crm_mon för att verifiera resurserna.

    Resultatet visar de två resurserna.

    Skärmbild som visar ett konsolfönster med två resurser.

    Du kan också kontrollera statusen på https:// <node IP address> :7630/cib/live/state.

    Skärmbild som visar status för de två resurserna.

Testa redundansprocessen

  1. Om du vill testa redundansen använder du följande kommando för att stoppa pacemakertjänsten på node1.

    Service pacemaker stop
    

    Resurserna redundans redundans till node2.

  2. Stoppa pacemakertjänsten på node2 och resurser redundans redundans till node1.

    Här är statusen före redundans:
    Skärmbild som visar status för de två resurserna före redundans.

    Här är statusen efter redundans:
    Skärmbild som visar status för de två resurserna efter redundans.

    Skärmbild som visar ett konsolfönster med status för resurser efter redundans.

Felsökning

I det här avsnittet beskrivs felscenarier som kan uppstå under installationen.

Scenario 1: Klusternoden är inte online

Om någon av noderna inte visas online i Klusterhanteraren kan du prova den här proceduren för att ta den online.

  1. Använd följande kommando för att starta iSCSI-tjänsten.

    service iscsid start
    
  2. Använd följande kommando för att logga in på den iSCSI-noden.

    iscsiadm -m node -l
    

    Förväntade utdata ser ut så här:

    sapprdhdb45:~ # iscsiadm -m node -l
    Logging in to [iface: default, target: iqn.1992-08.com.netapp:hanadc11:1:t020, portal: 10.250.22.11,3260] (multiple)
    Logging in to [iface: default, target: iqn.1992-08.com.netapp:hanadc11:1:t020, portal: 10.250.22.12,3260] (multiple)
    Logging in to [iface: default, target: iqn.1992-08.com.netapp:hanadc11:1:t020, portal: 10.250.22.22,3260] (multiple)
    Logging in to [iface: default, target: iqn.1992-08.com.netapp:hanadc11:1:t020, portal: 10.250.22.21,3260] (multiple)
    Login to [iface: default, target: iqn.1992-08.com.netapp:hanadc11:1:t020, portal: 10.250.22.11,3260] successful.
    Login to [iface: default, target: iqn.1992-08.com.netapp:hanadc11:1:t020, portal: 10.250.22.12,3260] successful.
    Login to [iface: default, target: iqn.1992-08.com.netapp:hanadc11:1:t020, portal: 10.250.22.22,3260] successful.
    Login to [iface: default, target: iqn.1992-08.com.netapp:hanadc11:1:t020, portal: 10.250.22.21,3260] successful.
    

Scenario 2: Yast2 visar inte grafisk vy

Den grafiska yast2-skärmen används för att konfigurera klustret med hög tillgänglighet i den här artikeln. Om yast2 inte öppnas med det grafiska fönstret som det visas och ett Qt-fel uppstår, gör du följande för att installera de nödvändiga paketen. Om det öppnas med det grafiska fönstret kan du hoppa över stegen.

Här är ett exempel på Qt-felet:

Skärmbild som visar en del av ett konsolfönster med ett felmeddelande.

Här är ett exempel på förväntade utdata:

Skärmbild som visar YaST-kontrollcentret med hög tillgänglighet och kluster markerat.

  1. Kontrollera att du är inloggad som användarens "rot" och att SMT har ställts in för att ladda ned och installera paketen.

  2. Gå till yast > Software > Management > Dependencies(Beroenden för programvaruhantering) och välj sedan Install recommended packages (Installera rekommenderade paket).

    Anteckning

    Utför stegen på båda noderna så att du kan komma åt den grafiska yast2-vyn från båda noderna.

    Följande skärmbild visar den förväntade skärmen.

    Skärmbild som visar ett konsolfönster som visar YaST Control Center.

  3. Under Beroenden väljer du Installera rekommenderade paket.

    Skärmbild som visar ett konsolfönster med Installera rekommenderade paket valt.

  4. Granska ändringarna och välj OK.

    Skärmbild som visar ett konsolfönster med en lista över paket som har valts för installation.

    Paketinstallationen fortsätter.

    Skärmbild som visar ett konsolfönster som visar förloppet för installationen.

  5. Välj Nästa.

  6. När skärmen Installationen har slutförts visas väljer du Slutför.

    Skärmbild som visar ett konsolfönster med ett meddelande om att det lyckades.

  7. Använd följande kommandon för att installera paketen libqt4 och libyui-qt.

    zypper -n install libqt4
    

    Skärmbild som visar ett konsolfönster som installerar det första paketet.

    zypper -n install libyui-qt
    

    Skärmbild som visar ett konsolfönster som installerar det andra paketet.

    Skärmbild som visar ett konsolfönster där det andra paketet installeras.

    Yast2 kan nu öppna den grafiska vyn.

    Skärmbild som visar YaST Control Center med Programvara och Onlineuppdatering valt.

Scenario 3: Yast2 visar inte alternativet för hög tillgänglighet

För att alternativet för hög tillgänglighet ska vara synligt i yast2-kontrollcentret måste du installera de andra paketen.

  1. Gå till Yast2 > Software > Management. Välj sedan Software > Online Update.

    Skärmbild som visar YaST Control Center med Programvara och Onlineuppdatering valt.

  2. Välj mönster för följande objekt. Välj sedan Acceptera.

    • SAP HANA serverbas
    • C/C++-kompilator och verktyg
    • Hög tillgänglighet
    • SAP-programserverbas

    Skärmbild som visar hur du väljer det första mönstret i objektet för kompilatorn och verktygen.

    Skärmbild som visar hur du väljer det andra mönstret i objektet för kompilatorn och verktygen.

  3. I listan över paket som har ändrats för att lösa beroenden väljer du Fortsätt.

    Skärmbild som visar dialogrutan Ändrade paket med paket som har ändrats för att lösa beroenden.

  4. På sidan Utför installationsstatus väljer du Nästa.

    Skärmbild som visar sidan Utför installationsstatus.

  5. När installationen är klar visas en installationsrapport. Välj Slutför.

    Skärmbild som visar installationsrapporten.

Scenario 4: HANA-installationen misslyckas med gcc-sammansättningsfel

Om HANA-installationen misslyckas kan följande fel visas.

Skärmbild som visar ett felmeddelande om att operativsystemet inte är redo att utföra g c c 5-sammansättningar.

Åtgärda problemet genom att installera biblioteken libgcc_sl libstdc++6 enligt följande skärmbild.

Skärmbild som visar ett konsolfönster som installerar nödvändiga bibliotek.

Scenario 5: Pacemakertjänsten misslyckas

Följande information visas om pacemakertjänsten inte kan starta.

sapprdhdb95:/ # systemctl start pacemaker
A dependency job for pacemaker.service failed. See 'journalctl -xn' for details.
sapprdhdb95:/ # journalctl -xn
-- Logs begin at Thu 2017-09-28 09:28:14 EDT, end at Thu 2017-09-28 21:48:27 EDT. --
Sep 28 21:48:27 sapprdhdb95 corosync[68812]: [SERV  ] Service engine unloaded: corosync configuration map
Sep 28 21:48:27 sapprdhdb95 corosync[68812]: [QB    ] withdrawing server sockets
Sep 28 21:48:27 sapprdhdb95 corosync[68812]: [SERV  ] Service engine unloaded: corosync configuration ser
Sep 28 21:48:27 sapprdhdb95 corosync[68812]: [QB    ] withdrawing server sockets
Sep 28 21:48:27 sapprdhdb95 corosync[68812]: [SERV  ] Service engine unloaded: corosync cluster closed pr
Sep 28 21:48:27 sapprdhdb95 corosync[68812]: [QB    ] withdrawing server sockets
Sep 28 21:48:27 sapprdhdb95 corosync[68812]: [SERV  ] Service engine unloaded: corosync cluster quorum se
Sep 28 21:48:27 sapprdhdb95 corosync[68812]: [SERV  ] Service engine unloaded: corosync profile loading s
Sep 28 21:48:27 sapprdhdb95 corosync[68812]: [MAIN  ] Corosync Cluster Engine exiting normally
Sep 28 21:48:27 sapprdhdb95 systemd[1]: Dependency failed for Pacemaker High Availability Cluster Manager
-- Subject: Unit pacemaker.service has failed
-- Defined-By: systemd
-- Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit pacemaker.service has failed.
--
-- The result is dependency.
sapprdhdb95:/ # tail -f /var/log/messages
2017-09-28T18:44:29.675814-04:00 sapprdhdb95 corosync[57600]:   [QB    ] withdrawing server sockets
2017-09-28T18:44:29.676023-04:00 sapprdhdb95 corosync[57600]:   [SERV  ] Service engine unloaded: corosync cluster closed process group service v1.01
2017-09-28T18:44:29.725885-04:00 sapprdhdb95 corosync[57600]:   [QB    ] withdrawing server sockets
2017-09-28T18:44:29.726069-04:00 sapprdhdb95 corosync[57600]:   [SERV  ] Service engine unloaded: corosync cluster quorum service v0.1
2017-09-28T18:44:29.726164-04:00 sapprdhdb95 corosync[57600]:   [SERV  ] Service engine unloaded: corosync profile loading service
2017-09-28T18:44:29.776349-04:00 sapprdhdb95 corosync[57600]:   [MAIN  ] Corosync Cluster Engine exiting normally
2017-09-28T18:44:29.778177-04:00 sapprdhdb95 systemd[1]: Dependency failed for Pacemaker High Availability Cluster Manager.
2017-09-28T18:44:40.141030-04:00 sapprdhdb95 systemd[1]: [/usr/lib/systemd/system/fstrim.timer:8] Unknown lvalue 'Persistent' in section 'Timer'
2017-09-28T18:45:01.275038-04:00 sapprdhdb95 cron[57995]: pam_unix(crond:session): session opened for user root by (uid=0)
2017-09-28T18:45:01.308066-04:00 sapprdhdb95 CRON[57995]: pam_unix(crond:session): session closed for user root

Åtgärda problemet genom att ta bort följande rad från filen /usr/lib/systemd/system/fstrim.timer:

Persistent=true

Skärmbild som visar trimningsfilen med värdet Persistent= true som ska tas bort.

Scenario 6: Node2 kan inte ansluta till klustret

Följande fel visas om det är problem med att ansluta node2 till det befintliga klustret via kommandot ha-cluster-join.

ERROR: Can’t retrieve SSH keys from <Primary Node>

Skärmbild som visar ett konsolfönster med ett felmeddelande om att S H-nycklar inte kan hämtas från en viss I P-adress.

Så här åtgärdar du det:

  1. Kör följande kommandon på båda noderna.

    ssh-keygen -q -f /root/.ssh/id_rsa -C 'Cluster Internal' -N ''
    cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
    

    Skärmbild som visar en del av ett konsolfönster som kör kommandot på den första noden.

    Skärmbild som visar en del av ett konsolfönster som kör kommandot på den andra noden.

  2. Bekräfta att node2 har lagts till i klustret.

    Skärmbild som visar ett konsolfönster med ett lyckat kopplingskommando.

Nästa steg

Mer information om SUSE HA-konfiguration finns i följande artiklar:

Lär dig hur du säkerhetskopierar och återställer på filnivå för ett operativsystem: