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.
Ä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.

Ändra /etc/iscsi/iscsid.conf genom att ange
node.session.timeo.replacement_timeout=5ochnode.startup = automatic. Ändra filen på båda noderna.Kör följande identifieringskommando på båda noderna.
iscsiadm -m discovery -t st -p <IP address provided by Service Management>:3260Resultatet visar fyra sessioner.

Kör följande kommando på båda noderna för att logga in på iSCSI-enheten.
iscsiadm -m node -lResultatet visar fyra sessioner.

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.shResultatet bör visa ett LUN-nummer som är större än noll (till exempel: 1, 2 och så vidare).

Kör följande kommando på båda noderna för att hämta enhetsnamnet.
fdisk –lI resultatet väljer du enheten med storleken 178 MiB.

Initiera SBD-enheten
Använd följande kommando för att initiera SBD-enheten på båda noderna.
sbd -d <SBD Device Name> create
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
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

Konfigurera klustret med hjälp av antingen
ha-cluster-initkommandot 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.Gå till yast2-kluster > med hög > tillgänglighet.

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

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

Det förväntade värdet är antalet noder som distribuerats (i det här fallet 2). Välj Nästa.
Lägg till nodnamn och välj sedan Lägg till föreslagna filer.

Välj Aktivera csync2 PÅ.
Välj Generera i förväg delade nycklar.
I popup-meddelandet som visas väljer du OK.

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.

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

Välj Nästa så är klusterkonfigurationen klar.
Konfigurera softdog watchdog
Lägg till följande rad i /etc/init.d/boot.local på båda noderna.
modprobe softdog
Använd följande kommando för att uppdatera filen /etc/sysconfig/sbd på båda noderna.
SBD_DEVICE="<SBD Device Name>"
Läs in kernelmodulen på båda noderna genom att köra följande kommando.
modprobe softdog
Använd följande kommando för att säkerställa att softdog körs på båda noderna.
lsmod | grep dog
Använd följande kommando för att starta SBD-enheten på båda noderna.
/usr/share/sbd/sbd.sh start
Använd följande kommando för att testa SBD-daemonen på båda noderna.
sbd -d <SBD Device Name> listResultatet visar två poster efter konfigurationen på båda noderna.

Skicka följande testmeddelande till en av noderna.
sbd -d <SBD Device Name> message <node2> <message>På den andra noden (node2) använder du följande kommando för att kontrollera meddelandestatusen.
sbd -d <SBD Device Name> list
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=""Använd följande kommando för att starta pacemakertjänsten på den primära noden (node1).
systemctl start pacemaker
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
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
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
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 avpasswdkommandot .
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.
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"Använd följande kommando för att lägga till konfigurationen i klustret.
crm configure load update crm-bs.txt
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.txtLä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.txtAnvänd kommandot
crm_monför att verifiera resurserna.Resultatet visar de två resurserna.

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

Testa redundansprocessen
Om du vill testa redundansen använder du följande kommando för att stoppa pacemakertjänsten på node1.
Service pacemaker stopResurserna redundans redundans till node2.
Stoppa pacemakertjänsten på node2 och resurser redundans redundans till node1.
Här är statusen före redundans:

Här är statusen 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.
Använd följande kommando för att starta iSCSI-tjänsten.
service iscsid startAnvänd följande kommando för att logga in på den iSCSI-noden.
iscsiadm -m node -lFö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:

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

Kontrollera att du är inloggad som användarens "rot" och att SMT har ställts in för att ladda ned och installera paketen.
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.

Under Beroenden väljer du Installera rekommenderade paket.

Granska ändringarna och välj OK.

Paketinstallationen fortsätter.

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

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

Yast2 kan nu öppna den grafiska vyn.

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.
Gå till Yast2 > Software > Management. Välj sedan Software > Online Update.

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


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

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

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

Scenario 4: HANA-installationen misslyckas med gcc-sammansättningsfel
Om HANA-installationen misslyckas kan följande fel visas.

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

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

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>

Så här åtgärdar du det:
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

Bekräfta att node2 har lagts till i klustret.

Nästa steg
Mer information om SUSE HA-konfiguration finns i följande artiklar:
- SAP HANA SR-prestandaoptimerat scenario (SUSE-webbplats)
- Stängsel och STONITH (SUSE-webbplats)
- Var beredd på att använda pacemakerkluster för SAP HANA – del 1: Grunder (SAP-blogg)
- Var beredd på att använda pacemakerkluster för SAP HANA – del 2: Fel på båda noderna (SAP-blogg)
Lär dig hur du säkerhetskopierar och återställer på filnivå för ett operativsystem: