orm@doc-tcpip.org | Erstellt: Januar 2001 - Letzte Modifikation: November 2007 |
Authentifizierung: Die Source-Adresse wird geprüft: - gegen /usr/sbin/cluster/etc/rhosts - gegen HACMPadapter ODM (etc/objrepos/) - gegen HACMPnode ODM (etc/objrepos/) ==> ohne Cluster rhosts keine Verbindung möglich! Wenn die Source-Adresse gefunden wurde, dann wird geantwortet, und der Hostname wird abgefragt. Ist der wie erwartet aus der Cluster-Konfiguration, wird die Verbindung zugelassen. ==> Alle Adressen müßen in der Cluster rhosts stehen! Nach der Synchronisation (!) kann man den clcomd abschalten und die rhosts des Clusters umbenennen. Jeder Knoten eines Clusters cached eine Kopie der ODM beider Knoten. Diese Kopien lagern in /var/hacmp/odmcache/name_des_knotens Darin findet sich _etc_objrepos mit den ODM Files. Für das Caching und die Kopie zuständig ist der godm-Daemon. Die Kommunikation erfolgt über den clcomd. Dieser loggt in das clcomd.log, was in der Regel in /var/hacmp/clcomd zu finden ist. Hier werden alle Verbindungen und Zugriffe auf Services geloggt. Im gleichen Verzeichnis findet sich das Debug-Log. Der Deamon startet normalerweise als clcomd -d, und das Log wird gefüllt. Das geht auch per traceon. clRGinfo => zeigt Information zu allen RGs. Priority Override Location (POL) Info dazu im clstrmgr.debug (meist in /var/cluster/log oder /var/hacmp/log)). Ein clRGmove Kommando löst ein CLRM_USER_RG_MOVE Event aus, was sich auch im Log findet. HACMP Version Verification: /usr/es/sbin/cluster/etc/config/haver.info Hier wird mit einem Zeitstempel die aktuelle Software-Version des Clusters (für beide Knoten) angezeigt. Das File wird regelmäßig (täglich?) neu erzeugt. Es gibt ein Cluster-Kommando für rsh und dsh: cl_rsh [-p -n] cl_dsh [-p -n] DNP: Dynamic Node Priority. Resource Group Die alten Bezeichnungen (Cascading, Rotating, Concurrent) lassen sich durch die folgenden Parameter erreichen: Cascading OHNO FOHP FBHP CWOF+IT+DNP OFAN FDNP NFB Rotating OFAN FOHP NFB Concurrent OAAN BOEN NFB Man kann Fallback-Timer setzen, also z.B. nur am Sonntag zurückschwenken. RG-Timer Settling-Timer: Zeit nach dem Anfahren des Clusters, die gewartet wird, bevor die RG auf die Nodes des Clusters verteilt wird (um unnötige RG Moves zu verhindern). ==> Details sind in clstrmgr.debug zu sehen. ==> Im hacmp.out gibt es dann einen Eintrag, das die RG noch nicht bearbeitet wurde, weil der Zähler noch läuft. cllsclstr cllsif cllsnode cllsnw Diese Kommandos gehen noch, sind aber jetzt als cltopinfo implementiert: cltopinfo -c Cluster-Konfiguration -i Interface-Konfiguration -n Node-Konfiguration -w Network-Konfiguration -m Status Heartbeat Cluster-Single Point of Control (C-SPOC) Cluster Starten: smit clstart /usr/es/sbin/cluster/etc/rc.cluster oder einfach rc.cluster Man kann die Node/Nodes mit angeben. Arguments: -boot : configures service adapter to use boot address -i : start client information daemon -b : broadcast these start events -N : start now -R : start on system restart -B : both -r : re-acquire resources after forced down /usr/es/sbin/cluster/utilities/clstart -i == start Cluster Information Services (clinfo) -m == start Cluster Manager (clstrmgr) -s == start Cluster SMUX Peer Daemon (clsmuxpd) -b == broadcast startup message via /usr/sbin/wall -D == disable DeadMan Switch. -G == start GPFS Also: /usr/es/sbin/cluster/utilities/clstart -smG Cluster_name Cluster Stoppen: smit clstop /usr/es/sbin/cluster/utilities/clstop clstop -y -f == Forced, schmeisst alles hin. Man muß dann mit "reaquire RG" starten. -g == Gracefull, fährt alles runter, macht aber keine Übernahme. -gr == Gracefull mit Release der RG. Also mit Takeover. -s == Kein Broadcast des shutdown über wall Kommando. -y == Es wird kein Prompt gezeigt, man muß nichts bestätigen. -N == Jetzt stoppen. -R == Beim restart stoppen (Eintrag aus der inittab wird gelöscht). -B == -R und -N -S == aus der rc.shutdown im Rahmen eines system halt. Läuft der Cluster? lssrc -g cluster lsvg -o == sind die VGs da? netstat -i == sind die Service Interfaces da? Wie geht es dem Cluster? lssrc -ls clstrmgrES clstat -a (Das kann man immer wieder refreshen)q /usr/es/sbin/cluster/utilities/cldisp cldump Funktioniert RSCT? lssrc -ls topsvcs Das ist dafür gesetzt: root:/usr/es/sbin/cluster # odmget HACMPtopsvcs HACMPtopsvcs: hbInterval = 1 fibrillateCount = 4 runFixedPri = 1 fixedPriLevel = 38 tsLogLength = 5000 gsLogLength = 5000 instanceNum = 8 Die Logfiles: /usr/es/adm/cluster.log /usr/es/sbin/cluster/history /tmp/hacmp.out /tmp/clstrmgr.debug == Adapter und Label Probleme File Default Directory New Directory cluster.log /usr/es/adm /var/cluster cluster.mmddyyyy /usr/es/sbin/cluster/history /var/cluster/history clavan.log /usr/adm /var/cluster clverify.log /var/hacmp/clverify /var/cluster/clverify clcomd.log /var/hacmp/clcomd /var/cluster/clcomd clcomdiag.log /var/hacmp/clcomd /var/cluster/clcomd clcofigassist.log /var/hacmp/log /var/cluster/log clutils.log /var/hacmp/log /var/cluster/log cl_testtool.log /var/hacmp/log /var/cluster/log Unveränndert in /tmp bleiben: clstrmgr.debug cl_sm.log cspoc.log dms_loads.out emuhacmp.out hacmp.out Eine Resource-Gruppe verschieben: cldare -M FIREWALL:FW1 -v -i (verschiebt die Resource FIREWALL auf den Knoten FW1) oder /usr/es/sbin/cluster/utilities/clRGmove -s false -m -i -g RG_name -n Knoten_Ziel Cluster Topologie, Resourcen, Netzwerke etc.: Es gibt eine Reihe praktische Befehle in /usr/es/sbin/cluster/utilities. cltopinfo == Topologie cllsres -g meine_RG == Resource Group - Alle Shell Variablen clshowres == Resource Gruppen cllsif == Interfaces clstat -a == Status cllscf == Konfiguration des Clusters cllsdisk -g meine_RG == alle PVID der RG cllsfs -g meine_RG == alle FS der RG cllslv -g meine_RG == alle LV der RG cllsnode == Angaben zu den beiden Knoten cllsvg == Angaben zur VG: -v active VGs -n Knoten, die ein VG teilen -s shared VGs -c concurrent VGs -g VGs einer RG Cluster Konfiguration wegwerfen: - Cluster runterfahren - auf *beiden* Knoten /usr/sbin/cluster/utilities/clrmclstr Liste der letzten DMS Timeouts: /usr/sbin/rsct/bin/hatsdmsinfo Zeigt die letzten 20 Timeouts. Ist z.B. der DMS Timeout auf 20 Sekunden gesetzt (also wenn nach 20 Sekunden keine Antwort kommt, dann den DMS aktivieren) zeigt diese Ausgabe, nach welcher Zeit die Antwort kam (es wird der verbleibende Rest dieses Timeout angezeigt...). Disk Heartbeat (HACMP 5): dhb_read -p devicename = Dump aller Info -r Setzt den Deamon/Socket auf Emfpang. -t Sendet eine Nachricht. = Dient zum Testen der Verbindung /usr/es/sbin/cluster/utilities/clrsctinfo -cp cllsif == Alle Heartbeat Devices | grep diskhb == Nur die Devices für den Diskheartbeat. /usr/es/sbin/cluster/utilities/clrsctinfo -cp cllsnw == Zeigt, ob das Netzwerk aliases für den HB nutzt. clip_config |grep diskhb == Es gibt eine Pickliste, in der alle potentiellen Platten sind. Taucht ein Device nicht auf: Dieses Kommando hilft eventuell. Tuning Parameter wie bei RS232. Es sollten nur Platten mit weniger als 60 Seeks pro Sekunde ausgewählt werden. 1 Disk Heartbeat Pfad pro Enclosure pro Node. diskhb nutzt den Datasektor auf der Platte, den bisher der clvmd benutzt hat. Testen des Heartbeat Netzes: 0:root@eule1:/ # /usr/sbin/rsct/bin/dhb_read -p rvpath4 -r Receive Mode: Waiting for response . . . Link operating normally 0:root@eule1:/ # 1:root@eule3:/ # /usr/sbin/rsct/bin/dhb_read -p rvpath4 -t Transmit Mode: Detected remote utility in receive mode. Waiting for response . . . Link operating normally 1:root@eule3:/ # Es gibt jetzt den Cluster Communication Deamon: clcomd Cluster Manager Lock Deamon clsmuxpd == Eigenes Protokoll Für die Installation ist noch rsh nötig, das cl_rsh Kommando sollte also funktionieren. /usr/es/sbin/cluster/utilities/cl_rsh cluster_node date Lösung: Kreuzweises editieren der "/usr/es/sbin/cluster/etc/rhosts" Kann auch sein: clcomdES läuft nicht - und der wird beim lssrc -a auch nicht angezeigt, startet dann aber trotzdem. Wenn VGs sich nicht importieren lassen: chdev: chdev -a pv=yes -l hdiskx == yes == Wenn die Platte eine PVID hat, nimm diese - sonst vergib eine neue. == clear == Wenn die Platte eine PVID hat, dann lösche diese. Wenn dann alle PVIDs auf den Hdisk sitzen und nicht auf den vpaths: dpovgfix mein_vg Bei der HACMP Konfig stellt sich heraus, daß die Major Number der VGs auf beiden Seiten unterschiedlich ist. Auf der einen Seite varoffvg, auf der anderen exportvg bla_vg (schmeisst alles weg). Auf der einen Seite in lspv eine hdisk/vpath identifizieren, auf denen die VG liegt. importvg -V majornum. -y ora_bla vpathX Wie finde ich raus, daß die VG auf dieser Maschine auf hdisk5 liegt? Auf der ersten Maschine lspv, das gibt beim vpath eine PVID, die auf die VG zeigt. Diese auf der anderen Maschine in lspv suchen. Maschine A: vpath3 00cb329ec1256cea hb_b_vg active Maschine B: hdisk5 00cb329ec1256cea Dann importvg. Beispiele für die lssrc -ls Kommandos: root:/usr/es/sbin/cluster/utilities # lssrc -ls clstrmgrES Current state: ST_STABLE i_local_nodeid 0, i_local_siteid -1, my_handle 1 ml_idx[1]=0 ml_idx[2]=1 There are 0 events on the Ibcast queue There are 0 events on the RM Ibcast queue CLversion: 7 sccsid = "@(#)36 1.137 src/43haes/usr/sbin/cluster/hacmprd/main.C, hacmp.pe, 51haes_r520 12/9/04 14:52:34" local node vrmf is 5204 cluster fix level is "4" The following timer(s) are currently active: Current DNP values DNP Values for NodeId - 1 NodeName - gsnptmr1 PgSpFree = 375711 PvPctBusy = 0 PctTotalTimeIdle = 99.241667 DNP Values for NodeId - 2 NodeName - gsnptmr2 PgSpFree = 375815 PvPctBusy = 0 PctTotalTimeIdle = 98.450000 Hier ist eigentlich die erste Zeile am wichtigsten: Der Cluster ist stabil. Andere Zustände sind UNSTABLE, BARRIER, JOINING ... root:/usr/es/sbin/cluster/utilities # lssrc -ls topsvcs Subsystem Group PID Status topsvcs topsvcs 725176 active Network Name Indx Defd Mbrs St Adapter ID Group ID ETHERNET_1_0 [ 0] 2 2 S 172.17.20.3 172.17.20.66 ETHERNET_1_0 [ 0] en2 0x3b58e78a 0x3b58eb24 HB Interval = 1.000 secs. Sensitivity = 10 missed beats Missed HBs: Total: 0 Current group: 0 Packets sent : 525713 ICMP 0 Errors: 0 No mbuf: 0 Packets received: 774288 ICMP 0 Dropped: 0 NIM's PID: 729306 ETHERNET_1_1 [ 1] 2 2 S 172.17.10.3 172.17.10.66 ETHERNET_1_1 [ 1] en0 0x3b58e78b 0x3b58eb25 HB Interval = 1.000 secs. Sensitivity = 10 missed beats Missed HBs: Total: 0 Current group: 0 Packets sent : 525723 ICMP 0 Errors: 0 No mbuf: 0 Packets received: 774287 ICMP 0 Dropped: 0 NIM's PID: 737456 diskhb_0 [ 2] 2 2 S 255.255.10.0 255.255.10.2 diskhb_0 [ 2] rhdisk6 0x8358e788 0x8358eb2c HB Interval = 2.000 secs. Sensitivity = 4 missed beats Missed HBs: Total: 154 Current group: 154 Packets sent : 249047 ICMP 0 Errors: 0 No mbuf: 0 Packets received: 249037 ICMP 0 Dropped: 0 NIM's PID: 741426 diskhb_1 [ 3] 2 2 S 255.255.10.1 255.255.10.3 diskhb_1 [ 3] rhdisk4 0x8358e789 0x8358eb24 HB Interval = 2.000 secs. Sensitivity = 4 missed beats Missed HBs: Total: 159 Current group: 159 Packets sent : 249036 ICMP 0 Errors: 0 No mbuf: 0 Packets received: 249014 ICMP 0 Dropped: 0 NIM's PID: 745644 2 locally connected Clients with PIDs: haemd(757894) hagsd(749678) Dead Man Switch Enabled: reset interval = 1 seconds trip interval = 20 seconds Configuration Instance = 8 Daemon employs no security Segments pinned: Text Data. Text segment size: 767 KB. Static data segment size: 957 KB. Dynamic data segment size: 4233. Number of outstanding malloc: 224 User time 61 sec. System time 81 sec. Number of page faults: 294. Process swapped out 0 times. Number of nodes up: 2. Number of nodes down: 0. root:/usr/es/sbin/cluster/utilities # Hier findet man pro Verbindung, über die ein Heartbeat läuft, wichtige Informationen. Einen Header findet man in der dritten Zeile. Es sollte die Anzahl der definierten Interfaces gleich der aktuellen "Members" sein, und die Zahl der gesendeten/empfangenen Packete sollte etwa gleich sein; Errors und Drops sollten nicht vorkommen... Interessant ist auch die Angabe der Configuration Instance. Diese muß auf beiden Knoten gleich sein. Verifizieren des Clusters: /usr/sbin/cluster/diag/clverify Prozesse: Cluster Manager - /usr/sbin/cluster/clstrmgr Cluster SMUX Peer Daemon - /usr/sbin/cluster/clsmuxpd Braucht SNMP. User Interface ist clinfo. Killt man den Cluster Manager unfreundlich, so wird das Skript /usr/sbin/cluster/utilities/clexit.rc ausgeführt und das System wird angehalten. Alle HACMP Software löschen: installp -u cluster.\* == wenn man allen Cluster Quatsch wegwerfen will. (Mit \* interpretiert installp das Sternchen, und nicht die Shell). Neu in HACMP 5.3: Der clstrmgrES läuft immer. Mit lssrc -ls clstrmgrES bekommt man, wenn HACMP auf dem Knoten nicht läuft, den Status ST_INIT. Resource-Gruppen: Policies für Startup, Failover und Fallback: OHN Online on Home-Node only OFAN Online on next available node OAAN Online on any available node FNPN Fallover to next priority node FUNDP Fallover using dynamic node priority BO Bring offline FBHPN Fallback to higher priority node NFB Never fallback OUDP Online using distribution policy
[ Allgemein | UNIX | AIX | TCP-IP | TCP | ROUTING | DNS | NTP | NFS | FreeBSD | Linux | RPi | SMTP | Tracing | GPS | LW ]
Copyright 2001-2021 by Orm Hager - Es gilt die GPL