Sun Cluster
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.
Continue reading "Sun Cluster"