Sun Cluster ist Suns Produktname für eine Reihe von Technologien, die unter Solaris den Betrieb von Failover oder Loadbalancing Clustern erlauben. Dazu gehrt insbesondere ein Cluster Manager der Nodes und Resourcen verwalten kann. Es gehrt auch eine IP Loadbalancing Technik dazu (vergleichbar mit Windows Network Load Balancing). Sun Cluster 3.1 ist Teil der Java Availability Suite (Das Wort Java ist nur ein cooles Tag, darunter fallen auch Non-Java Dienste) und kostenfrei mit Solaris erhältlich.
Ich war beim Design und der Umsetzung eines HA Agents für eine unserer Anwendungen (Sun nennt diese Data Service) beteiligt. Im wesentlichen gehts es darum ein Solaris Package zu erstellen, das dem Cluster Manager einen neuen Resource Typen bekannt macht. Der Cluster Manager selbst ist ausgereift, und die Erstellung der Agents dank ausführlicher Doku und umfangreichen Schnittstellen ist auch kein großes Problem.
Allerdings ist die zu erstellende Software unnötig komplex. Gerade bei Dingen wie Systemmonitoring ist dies Fatal, da robustes Verhalten oberstes Gebot ist. Meine Detailerfahrungen will ich hier mal in lockerer Folge festhalten.
Was mir zuerst aufgefallen ist war, dass sich der Resource Manager des Sun Clusters nicht in den Bereich Restart und Failover einmischt.
Der Manager startet Resourcen ("Data Services" genannt) in vordefinierter Reihenfolge (dank einer Reihe von unterschiedlichen Dependencies). Danach startet der Manager einen Monitor Prozess. Was der Cluster aber nicht tut sind irgendwelche Überwachungen, auch nicht vom Monitor Prozess.
Der Monitor Prozess ist dafür verantwortlich die Anwendung zu monitoren (z.B. oder der Prozess noch läuft oder ob dieser erreichbar ist). So weit so gut, aber was der Monitoring Prozess ebenso tun muss ist die Anwendung neu zu starten oder die Entscheidung zu treffen, ob der Cluster Manager einen Failover auslösen soll.
Ich war beim Design und der Umsetzung eines HA Agents für eine unserer Anwendungen (Sun nennt diese Data Service) beteiligt. Im wesentlichen gehts es darum ein Solaris Package zu erstellen, das dem Cluster Manager einen neuen Resource Typen bekannt macht. Der Cluster Manager selbst ist ausgereift, und die Erstellung der Agents dank ausführlicher Doku und umfangreichen Schnittstellen ist auch kein großes Problem.
Allerdings ist die zu erstellende Software unnötig komplex. Gerade bei Dingen wie Systemmonitoring ist dies Fatal, da robustes Verhalten oberstes Gebot ist. Meine Detailerfahrungen will ich hier mal in lockerer Folge festhalten.
Was mir zuerst aufgefallen ist war, dass sich der Resource Manager des Sun Clusters nicht in den Bereich Restart und Failover einmischt.
Der Manager startet Resourcen ("Data Services" genannt) in vordefinierter Reihenfolge (dank einer Reihe von unterschiedlichen Dependencies). Danach startet der Manager einen Monitor Prozess. Was der Cluster aber nicht tut sind irgendwelche Überwachungen, auch nicht vom Monitor Prozess.
Der Monitor Prozess ist dafür verantwortlich die Anwendung zu monitoren (z.B. oder der Prozess noch läuft oder ob dieser erreichbar ist). So weit so gut, aber was der Monitoring Prozess ebenso tun muss ist die Anwendung neu zu starten oder die Entscheidung zu treffen, ob der Cluster Manager einen Failover auslösen soll.
Die Entscheidung nach wievielen Fehlern in welchem Zeirtahmen der Failover stattfindet ist dabei auch dem Script überlassen. Wenn das Monitoring Script irgendwelche korrektiven Schritte vornimmt, so wird der Cluster Manager darüber nicht in Kentniss gesetzt. Das Monitoring Script wird somit komplex. Man kann zwar den SunPlex Agent Builder verwenden (ein Java Wizard um ein Grundgerüst eines Agents in C oder ksh zu erstellen), aber die so erzeugten Scripte und Programme lassen doch einige Features missen und sind wenig Robust, dafür aber ziemlich komplex.
Es gibt viele Aufgaben die man somit öfters lösen muss. Z.b. das starten von Prozessen, das Überwachen oder Abschießen. Dazu die Überwachung von Timeouts oder Locks. Die wichtigsten Tools dazu sind das PMF (das Prozess Management Facility) und einige Utilities. Mehr dazu im nächsten Artikel.
Es gibt viele Aufgaben die man somit öfters lösen muss. Z.b. das starten von Prozessen, das Überwachen oder Abschießen. Dazu die Überwachung von Timeouts oder Locks. Die wichtigsten Tools dazu sind das PMF (das Prozess Management Facility) und einige Utilities. Mehr dazu im nächsten Artikel.
Geschrieben von Bernd Eckenfels
in Hardware, Infrastruktur, SW Entwicklung
| Kommentare (2)
| Trackbacks (0)
Trackbacks
Trackback-URL für diesen Eintrag
Keine Trackbacks
Kommentare
Ansicht der Kommentare:
(Linear | Verschachtelt)
(Sorry den Kommentar hab ich eben erst im Spamfilter gefunden).
Layout by Ricky Wilson | Serendipity Template by Carl Galloway | Login
Impressum
Bernd Eckenfels
Mörscher Str. 8
76185 Karlsruhe
bernd-2012@eckenfels.net
Read More
Suche
Kategorien
Verlinkung
- Sun Cluster 3.1 [515]
- Java Availability Suite [463]
- www.google.de [14]
- www.google.de [7]
- www.google.de [4]
- www.google.de [4]
- www.google.de [4]
- www.google.de [3]
- www.google.de [2]
- www.google.de [2]
- www.google.de [2]
- www.google.de [2]
- www.google.de [2]
- www.google.de [2]
- www.google.de [2]
- www.google.de [1]
- eckes.org [1]
Kommentare
Bernd zu Passwortsicherheit
2012-02-04 17:28
123 zu Passwortsicherheit
2012-02-04 14:43
bl123 zu Passwortsicherheit
2012-02-04 14:25
Edith - die Zauberkünstlerin zu Passwortsicherheit
2012-02-04 13:00
Bernd zu Passwortsicherheit
2012-02-04 10:59
Oliver// zu Passwortsicherheit
2012-02-04 10:34
Christian zu Passwortsicherheit
2012-02-03 14:53
Michael zu Java Stream mit Puffer einlesen
2011-12-13 08:06
2011-08-17 05:22
Blog abonnieren
Blogsphere
Letzten Monat...
Di, 03.01.2012"Eckpunktepapier der BNetzA zu Smart Grids und Markets"
So, 01.01.2012"SQL Server JDBC Probleme"
Fr, 30.12.2011"Facebook Events im Google Kalender"
Mo, 19.12.2011"E-Mail versenden von Amazon EC2"
Fr, 09.12.2011"Java Stream mit Puffer einlesen"
