13.4 Nah gekoppelte Shared-Disk-Systeme

13.4.2 Realisierungsalternativen

Zur Ausgestaltung der nahen Kopplung bestehen mehrere Möglichkeiten, welche die prinzipiellen Nutzungsformen in unterschiedlichem Maße abdecken. Dies sind der Einsatz instruktions- und seitenadressierbarer Halbleiterspeicher sowie von Spezialprozessoren, die wir im folgenden diskutieren.

Instruktionsadressierbare Halbleiterspeicher

Beim Einsatz eines gemeinsamen Halbleiterspeichers ergeben sich die größten Freiheitsgrade, wenn dieser wie die Hauptspeicher instruktionsadressierbar ist. Damit steht jedem Rechner ein mächtiger Satz an Zugriffsmöglichkeiten zur Verfügung, die eine direkte Änderung der Speicherinhalte sowie die Realisierung beliebig komplexer Datenstrukturen ermöglichen. Diese Flexibilität erlaubt die Unterstützung aller angesprochenen Einsatzformen, sofern - wie für einige Aufgaben erforderlich - zusätzlich Nicht-Flüchtigkeit gewährleistet wird.

Allerdings ergeben sich mit einem solchen Ansatz weitgehend die gleichen Probleme wie mit dem gemeinsamen Hauptspeicher in eng gekoppelten Systemen (Kap. 3.1). Insbesondere besteht eine unzureichende Fehlerisolierung sowie die Gefahr von Engpässen, so daß der Ansatz als problematisch einzustufen ist.

Seitenadressierbare Halbleiterspeicher

Die Daten seitenadressierbarer Halbleiterspeicher sind wie für Magnetplatten nicht direkt manipulierbar. Der Datenzugriff verlangt vielmehr, die betroffenen Seiten in den Hauptspeicher zu bringen. Änderungen erfolgen zunächst in den Seitenkopien im Hauptspeicher und müssen explizit zurückgeschrieben werden. Damit ergibt sich für diese Speicher eine größere Isolierung gegenüber Hardware- und Software-Fehlern als bei Instruktionsadressierbarkeit, insbesondere gegenüber Rechnerausfällen.

Die seitenorientierte Zugriffsschnittstelle begrenzt jedoch auch die Nutzungsmöglichkeiten. Denn im wesentlichen wird nur eine Verbesserung des E/A-Verhaltens möglich, ähnlich wie es solche Speicher bereits in zentralisierten Systemen zulassen (Allokation ganzer Dateien, zusätzliche Pufferung von Seiten) [Ra92a]. Außerdem können diese Effekte auch ohne nahe Kopplung durch Nutzung von Platten-Caches und Solid-State-Disks (SSD) erreicht werden, auf die alle Rechner Zugriff haben. So können SSDs zur permanenten Allokation von Dateien genutzt werden, während Platten-Caches die Realisierung eines globalen Dateipuffers ermöglichen. Über die Platten-Caches können geänderte Seiten auch wesentlich schneller zwischen den Rechnern als über Magnetplatte ausgetauscht werden. Eine nahe Kopplung liegt dabei nicht vor, da die Zugriffszeiten auf diese Speicher im Bereich von 1-5 ms pro Seite liegen, so daß kein synchroner Zugriff möglich ist.

Synchrone Seitenzugriffe werden jedoch von sogenannten erweiterten Hauptspeichern unterstützt, die Zugriffszeiten von 10-50 Mikrosekunden pro Seite bieten [Ra93a]. Die Seitentransfers zwischen Hauptspeicher und erweiterten Hauptspeichern erfolgen durch eigene Maschinenbefehle. Die Verwaltung des erweiterten Hauptspeicher geschieht wie für den Hauptspeicher in erster Linie durch Betriebssystem-Software der Verarbeitungsrechner, also nicht durch eigene Controller, wie es für SSD und Platten-Cache der Fall ist. Bei nicht-flüchtiger Auslegung dieser Speicher und Kopplung mit allen Verarbeitungsrechnern können alle Einsatzformen von SSDs und Platten-Caches auch realisiert werden, jedoch mit verbessertem Leistungsverhalten. Weitergehende Nutzungsformen verlangen jedoch eine erweiterte Zugriffsschnittstelle. Wir werden in Kap. 13.4.3 eine Realisierungsmöglichkeit dafür betrachten; ein ähnlicher Ansatz wird im neuen IBM Parallel Sysplex verfolgt (Kap. 19.1.2).

In [DIRY89, DDY91] wurde die Verwendung eines gemeinsamen, seitenadressierbaren Halbleiterspeichers für Shared-Disk-Systeme untersucht; die Architektur wurde als Shared Intermediate Memory (SIM) bezeichnet. Der Zwischenspeicher diente lediglich zur globalen Pufferung von DB-Seiten. In [DDY91] stand die Untersuchung verschiedener Pufferstrategien im Mittelpunkt, wobei vor allem die Aufnahme geänderter Seiten im Zwischenspeicher als empfehlenswert angesehen wird. In [YD94] wurde ein Leistungsvergleich zwischen SIM, lose gekoppelten SD-Systemen und SN vorgenommen, wobei der nah gekoppelte SD-Ansatz eindeutig am besten abschnitt. Gegenüber lose gekoppelten SD-Systemen war hierfür das bessere E/A-Verhalten sowie der schnelle Austausch geänderter Seiten ausschlaggebend. Gegenüber SN schlug die stärkere Unempfindlichkeit gegenüber ungünstiger Partitionierbarkeit der Last bzw. Daten sowie gegenüber Lastschwankungen positiv zu Buche.

Spezialprozessoren

Eine nahe Kopplung über Spezialprozessoren liegt vor, wenn bestimmte globale Systemfunktionen in Hardware oder Mikrocode realisiert werden, um ihre schnellere Bearbeitung zu erreichen. Die Grenzen zur nahen Kopplung über gemeinsame Halbleiterspeicher sind dabei fließend, da der Spezialprozessor natürlich auch einen Speicher verwaltet. Umgekehrt kann ein gemeinsamer Halbleiterspeicher von einem "intelligenten" Controller verwaltet werden, der spezielle Funktionen an seiner Schnittstelle anbietet, die in Hardware bzw. Mikrocode realisiert werden.

Für Shared-Disk kommen Spezialprozessoren vor allem zur Realisierung eines globalen Sperrverfahrens in Betracht ("lock engine"). Hier werden an der Schnittstelle Funktionen zum Setzen und Freigeben einer Sperre (Lock, Unlock) angeboten, die durch den Spezialprozessor mit einer globalen Sperrtabelle bearbeitet werden. Durch die Verwendung solcher Operationen wird auch eine hohe Isolierung zwischen den Rechnern gewahrt, da sie die Speicherinhalte (Sperrtabelle) nicht direkt modifizieren können.

Eine hardware-gestützten Synchronisation für Shared-Disk-Systeme wird bereits seit langem durch die sogenannte "Limited Lock Facility" unterstützt, welche eine Mikrocode-Option für IBM-Platten-Controller ist [BDS79]. Sperranforderungen und -freigaben erfolgen über spezielle Kanalbefehle und können häufig mit E/A-Operationen kombiniert werden; die Gewährung einer Sperre wird über einen Interrupt mitgeteilt. Dieser Ansatz wird im Spezial-Betriebssystem TPF genutzt, das in vielen großen Reservierungssystemen eingesetzt wird [Sc87]. Der Overhead zur Synchronisation ist durch die Verwendung der E/A-Schnittstelle immer noch relativ hoch (keine synchronen Aufrufe). Zudem weist der Ansatz nur eine geringe Funktionalität auf (nur exklusive Sperren auf Rechnerebene), so daß ein Großteil des Sperrprotokolls zusätzlich durch Software in den Verarbeitungsrechnern zu realisieren ist. Überlegungen zur Realisierung leistungsfähigerer Lock-Engines finden sich in [Ro85]. In [Se84] wird die Realisierung einer fehlertoleranten Lock-Engine, welche aus mehreren Prozessoren besteht, betrachtet.

Spezialprozessoren verursachen hohe Entwicklungskosten für sehr spezielle Aufgaben, die nur wenigen Anwendungen zugute kommen. Weiterhin können nur relativ einfache Synchronisationsprotokolle hardwaremäßig realisiert werden, so daß nicht immer eine ausreichend hohe Funktionalität gewahrt wird. Dennoch sind die Operationen umfangreicher als einfache Lese- und Schreibzugriffe auf Halbleiterspeicher, so daß sich erhöhte Bearbeitungszeiten sowie eine stärkere Engpaßgefahr ergeben.