RunOnPassiveNode - Sicherung des passiven Knotens

VBScript und 64Bit !
Viele 32bit COM-Objekte lassen sich auf einem 64bit System nur instanziieren, wenn die 32bit Version von CSCRIPT/WSCRIPT genutzt wird, welcher unter C:\Windows\SysWOW64\cscript.exe liegt.

Exchange 2007 erlaubt durch ein Einsatz von LCR und CCR die Datenbank einmal zu kopieren. Neben der gewonnenen Datensicherheit ist die Sicherung der passiven Kopie ein wichtiger Aspekt für den Einsatz. So kann das aktive Disk-Subsystem ohne weitere Belastung die Benutzer bedienen, während die Datensicherung die passive Kopie auf Band kopiert. Wenn es richtig gemacht wir, dann "merkt" auch der aktive Knoten die Sicherung und löscht die Transaktionsprotokolle. Allerdings muss dazu der passive Knoten per Schattenkopie gesichert werden, da ein Streaming Backup mangels aktiven Store nicht möglich ist.

Das ist aber gar nicht so einfach, da in einem Cluster nur der aktive Knoten auch einen Netzwerknamen hat, den eine Backup Software ansprechen kann. Der PASSIVE Knoten ist ohne weitere Vorkehrungen gar nicht sichtbar. Kaum jemand baut sich ein Skript, welches eine weitere Cluster Gruppe mit eigenem Namen und IP-Adresse immer auf den jeweils anderen Knoten verschiebt.

Backup mit Enterprise Lösungen (z.B. TSM)

Es hängt nun etwas von der Implementierung ihre Clusters und Backuplösung ab, ob sie hier weiter lesen müssen. Enterprise Lösungen wie z.B. TSM sichern anders als die üblichen Backup Produkte wie BackupExec und CA ArcServe nicht über einen Agenten, der als Dienst läuft und aus der Ferne angesprochen wir, sondern TSM installiert auf dem Quellserver einmal einen Dienst, der "Befehle" annimmt (ähnlich einem RCMD) und die Programme, um z.B. Exchange oder Dateien zu sichern, sind reine Kommandozeilentools.

Zur Datensicherung startet der zentrale Scheduler einfach auf dem Client das Programm mit den passenden Parametern. Auf dem Exchange Server läuft dann die Backuproutine und sendet die Daten zum Backupserver oder auch ein Bandlaufwerk im SAN. (Push statt Pull)

Hier ist dann auch der Ansatzpunkt nicht direkt das Backup.EXE zu starten, sondern eben ein Skript, welches einen "Mehrwert" liefert. Hier kann ein Skript dann feststellen, ob es auf dem aktiven oder passiven Knoten gestartet wurde und reagieren

RunOnPassiveNode.VBS

Ein Batchfile kann viel aber per VBScript kann ich viel eleganter Abfragen einsetzen. Das Skript kann z:B. von dem zentralen Backupserver gestartet werden. Das Skript prüft, welcher Knoten des Cluster gerade Exchange beherbergt und ob der andere passive Knoten gerade online ist. Nur wenn der passive Knoten auch "online" ist, dann wird dort das übergebene Programm gestartet. Ist der passive Knoten hingegen im Status Offline, Pausiert, Joining etc., dann wird das Skript auf dem aktiven Knoten gestartet. Denn lieber ein Streaming Backup des aktiven Knotens als gar kein Backup.

Das Skript enthält die wesentlichen Elemente für die Realisierung der Aufgabenstellen, aber kann natürlich je nach Anforderungen angepasst werden. Ich kann mir sicher vorstellen, dass unterschiedliche Programme je nach Knoten eine mögliche Anpassung wäre. Auch könnte das Skript um Eventlog-Ausgaben und weitere Routinen zur Fehlerbehandlung erweitert werden.

Runonpassivenode.1.2.vbs
Download und Erweiterung auf VBS umstellen

Unterstützung durch Net at Work:
Ich kann dieses Skript nicht kostenfrei über die Newsgroup, Telefon oder Mail unterstützen. Über die Firma Net at Work können Sie andere Systemingenieure und mich aber gerne beauftragen.. Rufen Sie einfach unter 0800-MSXFAQ (0800-638 28 96) an.

Dieses Skripte muss nicht auf dem Cluster selbst gestartet werden. Oft ist es jedoch der einfachste Weg, das Skript in identischer Form auf beide Clusterknoten zu kopieren und mit einem Planer meiner Wahl aufzurufen.. Es kann der TSM-Remote Command-Dienst sein, aber auch der Windows Taskplaner. Als Parameter erwartet das Skripte einfach eine auszuführende Kommandozeile. Um Problemen mit Parametern aus dem Weg zu gehen, lasse ich das Skript meist ein BATCH starten, welcher dann die eigentliche Verarbeitung durchführt.

Programmlogik

Auch wenn das VBScript-Programm sehr überschaubar ist, habe ich ein Flussdiagramm zur Verdeutlichung hier veröffentlicht.

Flussdiagramm

Sie sehen also, was man schon mit wenig VBScript-Zeilen und der Nutzung der vorhandenen COM-Objekte (hier MSCluster.Cluster) funktionierenden Lösungen schaffen kann.

Weitere Links