Sun Cluster Entwicklerhandbuch Datendienste für Solaris OS

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.