Guide des développeurs pour les services de données Sun Cluster 3.1 10/03

Utilisation de liens symboliques pour déterminer l'emplacement des données multi-hôtes

Il arrive parfois que les noms de chemin d'accès aux fichiers de données d'une application soient câblés et qu'aucun mécanisme ne permette de contourner ces noms. Le cas échéant, il est parfois possible d'utiliser des liens symboliques pour ne pas avoir à modifier le code de l'application.

Par exemple, supposons que l'application nomme son fichier de données en utilisant le nom de chemin d'accès câblé /etc/mydatafile. Vous pouvez remplacer ce nom par un lien symbolique dont la valeur désigne un fichier dans lequel figure les systèmes de fichiers de l'hôte logique. Par exemple, vous pouvez définir le lien symbolique suivant : /global/phys-schost-2/mydatafile.

Un problème peut survenir avec l'utilisation des liens symboliques si l'application, ou l'une de ses procédures administratives, modifie le nom du fichier de données, ainsi que son contenu. Par exemple, supposons que l'application effectue une mise à jour en commençant par créer un nouveau fichier temporaire ( /etc/mydatafile.new), puis en le renommant pour obtenir le nom de fichier réel à l'aide de l'appel système rename(2) (ou du programme mv(1)). En créant le fichier temporaire, puis en le renommant en fichier réel, le service de données tente de garantir que le contenu de son fichier de données est toujours bien formé.

Malheureusement, l'action rename(2) supprime le lien symbolique. Le nom /etc/mydatafile devient un fichier standard et se trouve dans le même système de fichiers que le répertoire /etc et non dans le système de fichiers global du cluster. Comme le système de fichiers /etc est propre à chaque hôte, les données ne sont pas disponibles après un basculement ou une commutation.

Le problème sous-jacent dans cette situation est que l'application existante ne prend pas en charge le lien symbolique et n'a pas été écrite en tenant compte de liens symboliques. Pour rediriger un accès aux données au sein des systèmes de fichiers de l'hôte logique à l'aide de liens symboliques, la mise en oeuvre de l'application doit adopter un comportement qui ne supprime pas les liens symboliques. Par conséquent, les liens symboliques ne résolvent pas complètement le problème de l'emplacement des données sur les systèmes de fichiers globaux du cluster.