Guide des développeurs pour les services de données Sun Cluster pour SE Solaris

Données multihôte

Les périphériques de systèmes de fichiers globaux à haut niveau de disponibilité sont des composants multihôte si bien qu'en cas de panne d'un hôte physique, l'un des hôtes toujours opérationnels peut accéder au périphérique. Pour qu'une application atteigne un haut niveau de disponibilité, ses données doivent être hautement disponibles. Par conséquent, elles doivent résider dans les systèmes de fichiers globaux à haut niveau de disponibilité.

Le système de fichiers global est monté sur des groupes de périphériques créés comme entités indépendantes. L'utilisateur peut choisir d'utiliser certains groupes de périphériques comme systèmes de fichiers globaux montés et d'autres comme périphériques bruts à utiliser avec un service de données comme HA Oracle.

Une application peut contenir des commutateurs de ligne de commande ou des fichiers de configuration indiquant l'emplacement des fichiers de données. Si l'application utilise des noms de chemin d'accès câblés, vous pouvez les modifier par des liens symboliques désignant un système de fichiers global, sans modifier le code de l'application. Reportez-vous à la rubrique Utilisation de liens symboliques pour déterminer l'emplacement des données multi-hôtes pour plus de détails sur l'utilisation de ces liens symboliques.

Dans le pire des cas, vous devez modifier le code source de l'application pour disposer de quelques mécanismes permettant de spécifier l'emplacement réel des données. Pour ce faire, vous pouvez mettre en œuvre des commutateurs de ligne de commande supplémentaires.

Sun Cluster prend en charge l'utilisation des systèmes de fichiers UFS d'UNIX® et de périphériques bruts à haut niveau de disponibilité configurés dans un gestionnaire de volumes. Lors de l'installation et de la configuration, l'administrateur système doit spécifier les ressources disques à utiliser avec les systèmes de fichiers UFS et les périphériques en mode caractères. En règle générale, les périphériques en mode caractères ne sont utilisés que par les serveurs de base de données et les serveurs multimédia.

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 œuvre 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.