Sun Cluster Entwicklerhandbuch Datendienste für Solaris OS

Multihost-Daten

Die Geräte der hoch verfügbaren Cluster-Dateisysteme haben mehrere Hosts (Multihost). Wenn also ein realer Host abstürzt, kann einer der noch funktionsfähigen Hosts auf das Gerät zugreifen. Damit eine Anwendung hoch verfügbar ist, müssen auch ihre Daten hoch verfügbar sein. Deshalb müssen sich die Anwendungsdaten in Dateisystemen befinden, auf die von mehreren Cluster-Knoten aus zugegriffen werden kann. Beispiele für hoch verfügbare Dateisysteme, die von Sun Cluster unterstützt werden, sind u.a. globale HA-Dateisysteme, Failover File System (FFS) und - in einer Umgebung, die Oracle Real Application Cluster verwendet – das gemeinsam genutzte QFS-Dateisystem.

Das Cluster-Dateisystem wird in Gerätegruppen eingehängt, die als unabhängige Einheiten erstellt werden. Der Benutzer kann festlegen, dass einige Gerätegruppen als eingehängte Cluster-Dateisysteme verwendet werden und andere als im raw-Modus betriebene Geräte für die Verwendung mit einem Datendienst wie HA Oracle.

Eine Anwendung kann über Befehlszeilenschalter oder Konfigurationsdateien verfügen, die auf den Speicherort der Datendateien verweisen. Wenn die Anwendung Pfadnamen verwendet, können Sie die Pfadnamen in symbolische Verknüpfungen ändern, die auf eine Datei in einem Cluster-Dateisystem verweisen, ohne den Anwendungscode zu ändern. Weitere Informationen zur Verwendung von symbolischen Verknüpfungen finden Sie im Abschnitt Verwenden von symbolischen Verknüpfungen für Multihost-Datenablage .

Im schlimmsten Fall muss der Quellcode der Anwendung geändert werden, um einen Mechanismus zum Verweisen auf den tatsächlichen Datenspeicherort anzubieten. Sie könnten diesen Mechanismus implementieren, indem Sie zusätzliche Befehlszeilenargumente erstellen.

Die Sun Cluster-Software unterstützt die Verwendung der UNIX UFS-Dateisysteme und der im raw-Modus betriebenen HA-Geräte, die in einem Datenträger-Manager konfiguriert werden. Bei der Installation und Konfiguration der Sun Cluster-Software muss der Cluster-Administrator angeben, welche Plattenressourcen für die UFS-Dateisysteme und welche Plattenressourcen für im raw-Modus betriebene Geräte verwendet werden müssen. In der Regel werden im raw-Modus betriebene Geräte nur von Datenbank- und Multimedia-Servern verwendet.

Verwenden von symbolischen Verknüpfungen für Multihost-Datenablage

Gelegentlich sind die Pfadnamen von Anwendungsdatendateien so geschützt, dass sie nicht überschrieben werden können. Um Änderungen am Anwendungscode zu vermeiden, können manchmal symbolische Verknüpfungen verwendet werden.

Beispiel: Angenommen, die Anwendung benennt ihre Datendateien mit dem fest verdrahteten Pfadnamen /etc/mydatafile. Diesen Pfad können Sie in eine symbolische Verknüpfung ändern, deren Wert auf eine Datei in einem der Dateisysteme des logischen Hosts zeigt. Sie können den Pfad z.B. in die symbolische Verknüpfung /global/phys-schost-2/mydatafile ändern.

Bei der Verwendung von symbolischen Verknüpfungen kann jedoch ein Problem auftreten, wenn die Anwendung bzw. eines ihrer Verwaltungsverfahren neben dem Inhalt auch den Namen der Datendatei ändert. Beispiel: Angenommen, die Anwendung führt ein Update durch, indem zuerst die neue temporäre Datei /etc/mydatafile.new erstellt wird. Anschließend benennt die Anwendung die temporäre Datei in den echten Dateinamen um. Dazu wird der Systemaufruf rename() (bzw. der Befehl mv) verwendet. Durch Erstellen der temporären Datei und Umbenennen in den echten Dateinamen versucht der Datendienst sicherzustellen, dass sein Datendateiinhalt immer richtig strukturiert ist.

Unglücklicherweise zerstört die rename()-Aktion die symbolische Verknüpfung. Der Name /etc/mydatafile bezeichnet jetzt eine normale Datei, die sich im selben Dateisystem wie das Verzeichnis /etc befindet, nicht jedoch im Cluster-Dateisystem. Da das /etc-Dateisystem für jeden Host privat ist, stehen die Daten nach einem Failover bzw. Switchover nicht zur Verfügung.

Das zugrunde liegende Problem besteht darin, dass die bereits vorhandene Anwendung die symbolische Verknüpfung nicht wahrnimmt und nicht für symbolische Verknüpfungen geschrieben wurde. Wenn symbolische Verknüpfungen für die Umleitung des Datenzugriffs auf die Dateisysteme des logischen Hosts verwendet werden sollen, muss sich die Anwendungsimplementierung so verhalten, dass sie die symbolischen Verknüpfungen nicht löscht. Symbolische Verknüpfungen sind also kein Allheilmittel für das Problem der Datenablage in den Dateisystemen des Clusters.