Ein XCS-Verbund ist eine Ausprägung der in BS2000 verfügbaren HIPLEX-MSCF-Funktionalität. Er ermöglicht insbesondere den Ablauf verteilter Anwendungen und umfasst folgende Funktionalität:
automatische Ausfallerkennung und Rekonfiguration
Lock-Management für verteilte Anwendungen (DLM)
einheitliche Zeit im Verbund
Die Synchronisierung der Systemzeit im Verbund ist durch das Subsystem XCS-TIME, das beim XCS-Start initiiert wird, realisiert und basiert auf dem Konzept der XCS-Zeit, einer zweiten Zeit neben der Systemzeit. Die XCS-Zeit wird über GTIME (allerdings mit SVC) im TODR-Format und UTC-basiert bereitgestellt.
XCS-Zeit
Verteilte Anwendungen benötigen oft neben einer Lock-Funktion eine verbundweit monotone Zeit, z.B. um lokal erstellte Logging-Dateien später chronologisch mischen zu können. Die XCS-Zeit garantiert bei zwei aufeinander folgenden Abfragen auf beliebigen Systemen diese Monotonie, falls die Zeitermittlung unter dem gleichen DLM-Lock erfolgt:
System A |
|
| |
| |
System B: |
|
| |
|
Die beiden GTIME-Aufrufe liefern echt monotone Zeitwerte, womit die Logging-Information für Manipulationen am Datenblock x chronologisch unterschieden werden kann.
Jedes System verwaltet auf folgende Weise eine eigene XCS-Zeit:
Bei exklusiver Lock-Zuteilung durch ein System A, das Verwalter eines DLM-Locks ist, an ein zweites System B wird zusätzlich zur Zuteilungsquittung das um den Wert „eine Mikrosekunde“ inkrementierte Maximum aus XCS-Zeit und Systemzeit an den Lock-Requestor geschickt.
System B empfängt die Lock-Zuteilung von System A
Das Maximum der mit Lock-Zuteilung gelieferten Zeit des Systems A und der XCS-Zeit des Systems B sowie dessen aktueller Systemzeit bildet die neue aktuelle XCS-Zeit des Systems B.
GTIME-Aufruf zum Erhalt der XCS-Zeit durch eine Anwendung
Das um den Wert „eine Mikrosekunde“ inkrementierte Maximum aus der aktuellen Systemzeit und der XCS-Zeit des Systems wird zur aktuellen XCS-Zeit und dem Aufrufer bereitgestellt.
Dieses Verfahren hält die XCS-Zeit aller beteiligten Systeme etwa gleich der Systemzeit des Systems mit der am weitesten vorausgehenden Zeit.
> | In der Ausgabe des Kommandos SHOW-SYSTEM-INFORMATION findet sich im Abschnitt SYSTEM-TIME-PARAMETER die entsprechende Information: |
Um auch die Systemzeiten möglichst identisch zu halten (um z.B. eine weitestgehende korrekte Chronologie von dezentralen System-Logging-Daten zu erhalten), synchronisiert in allen beteiligten Systemen das Subsystem XCS-TIME die Systemzeit auf die XCS-Zeit des Systems. Die Systemzeit und die XCS-Zeit der einzelnen Server sind damit nur annähernd gleich; eine Garantie für eine maximale Abweichung gibt es nicht.
Der Eintritt eines Servers in einen Verbund wird solange verzögert, bis dessen Systemzeit an die der bereits aktiven Partner angepasst ist. Ist der Zeitunterschied bei Eintritt größer als 15 Minuten, wird der Eintritt abgewiesen.
Externe Zeitgeber und XCS-Verbund
Ein XCS-Verbund kann zusätzlich mit einem externen Zeitgeber synchronisiert werden.
Begründung
Wenn nicht alle Teilnehmer des Verbunds an diesen Zeitgeber angeschlossen sind, dann überwachen die angeschlossenen Teilnehmer die Zeiten der nicht angeschlossenen Teilnehmer und verschicken bei Bedarf Zeitanpassungs-Aufträge an diese.
Beim Empfänger können Anpassungsaufträge verschiedener Absender aufgrund unterschiedlicher Laufzeiten jedoch widersprüchlich erscheinen. Dies kann zu erhöhtem CPU-Zeit-Bedarf und zu Zeitabweichungen führen.
Hinweise zum Einsatz unter VM2000
Ein VM2000-Gastsystem (auch das Monitorsystem) kann unabhängig von den restlichen virtuellen Maschinen des Servers an einem XCS-Verbund beteiligt sein. Ist das Monitorsystem Teilnehmer eines derartigen Verbundes, basiert die Emulation der an die Gastsysteme gelieferten SVP-Zeit (Store-Real-Clock) auf der tatsächlichen SVP-Zeit und nicht auf der XCS-synchronisierten Systemzeit des Monitorsystems.