Guide du développeur de services de données Sun Cluster pour SE Solaris

Chapitre 4 Modification d'un type de ressources

Ce chapitre présente les aspects essentiels de la modification des types de ressources, ainsi que des informations sur la manière d'autoriser un administrateur de cluster à mettre à niveau une ressource.

Ce chapitre contient les rubriques suivantes :

Modification des types de ressources

Les administrateurs de clusters doivent être à même d'effectuer les tâches suivantes :

Les types de ressources que vous prévoyez de mettre à niveau sont appelés types de ressources prêts pour la mise à niveau. Dans un type de ressources, vous pouvez modifier les éléments suivants :


Remarque –

il n'est pas indispensable de modifier un type de ressources lorsque l'on modifie du code d'application.


Pour fournir aux administrateurs de clusters des outils qui leur permettront de mettre à niveau un type de ressources, vous devez tenir compte de certaines exigences. Ce chapitre vous apporte les informations nécessaires pour configurer ces outils.

Contenu du fichier d'enregistrement du type de ressources

Nom du type de ressources

Le nom d'un type de ressources se compose de trois propriétés, définies dans le fichier RTR comme vendor-id, resource-type et rt-version. La commande scrgadm insère les délimiteurs requis pour créer le nom du type de ressources (point et deux-points) :

vendor-id.resource-type:rt-version

Le préfixe vendor-id permet de distinguer deux fichiers d’enregistrement portant le même nom, mais fournis par des sociétés différentes. Pour éviter tout risque d'ambiguité de la propriété vendor-id, il est recommandé d'utiliser le symbole de la société lors de la création du type de ressources. La propriété rt-version permet de faire la distinction entre plusieurs versions enregistrées (mises à niveau) du même type de ressources.

La commande ci-dessous fournit le nom complet d'un type de ressources :


# scha_resource_get -O Type -R resource-name -G resource-group-name

Les noms de types de ressources enregistrés dans les versions antérieures à Sun Cluster 3.1 se présentent toujours sous la forme suivante :

vendor-id.resource-type

Le format des noms de types de ressources est décrit dans la rubrique Format des noms de types de ressources .

Définition des directives #$upgrade et #$upgrade_from

Pour garantir que le type de ressources modifié sera prêt pour la mise à niveau, incluez la directive #$upgrade dans son fichier RTR. Ajoutez ensuite éventuellement une ou plusieurs directives #$upgrade_from pour chacune des versions antérieures à prendre en charge.

Dans le fichier RTR, les directives #$upgrade et #$upgrade_from doivent être placées entre les déclarations des propriétés du type de ressources et les déclarations de ressources. Pour plus d'informations, reportez-vous à la page de manuel rt_reg(4).


Exemple 4–1 Directive #$upgrade_from dans un fichier RTR

#$upgrade_from   "1.1"   WHEN_OFFLINE
#$upgrade_from   "1.2"   WHEN_OFFLINE
#$upgrade_from   "1.3"   WHEN_OFFLINE
#$upgrade_from   "2.0"   WHEN_UNMONITORED
#$upgrade_from   "2.1"   ANYTIME
#$upgrade_from   ""      WHEN_UNMANAGED

La directive #$upgrade_from a le format suivant :

#$upgrade_from version tunability
version

RT_version. Si le type de ressources n'a pas de version ou que sa version est différente de celle que vous avez définie dans le fichier RTR, saisissez une chaîne vide (“”).

tunability

Cet argument définit les conditions selon lesquelles l'administrateur du cluster est autorisé à mettre à niveau la version RT_version indiquée.

Dans les directives #$upgrade_from, les valeurs de capacité de réglage sont les suivantes :

ANYTIME

Utilisez cette option lorsqu'il n'existe aucune restriction ou que l'administrateur peut mettre la ressource à niveau. La ressource peut rester connectée pendant la mise à niveau.

WHEN_UNMONITORED

Utilisez cette option lorsque les méthodes de la version du nouveau type de ressources remplissent les conditions suivantes :

  • Les méthodes Update, Stop, Monitor_check et Postnet_stop sont compatibles avec les méthodes de démarrage de l'ancienne version du type de ressources (Prenet_stop et Start).

  • La méthode Fini est compatible avec les méthodes Init des anciennes versions.

L'administrateur du cluster doit seulement arrêter le détecteur de la ressource avant de procéder à la mise à niveau.

WHEN_OFFLINE

Utilisez cette option lorsque la méthode Update, Stop, Monitor_check ou Postnet_stop du nouveau type de ressources est :

  • compatible avec la méthode Init d'une version antérieure,

  • incompatible avec les méthodes de démarrage (Prenet_stop et Start) d'une version antérieure du type de ressources.

L'administrateur du cluster doit déconnecter la ressource avant de procéder à la mise à niveau.

WHEN_DISABLED

Cette option est similaire à WHEN_OFFLINE. Cependant, l'administrateur du cluster doit désactiver la ressource avant d'effectuer la mise à niveau.

WHEN_UNMANAGED

Utilisez cette option si la méthode Fini de la nouvelle version du type de ressources est incompatible avec la méthode Init d'une version antérieure. L'administrateur du cluster doit mettre le groupe de ressources existant à l'état non géré avant de procéder à la mise à niveau.

Si une version du type de ressources n'apparaît pas dans la liste des directives #$upgrade_from, le RGM lui impose l'option de capacité de réglage WHEN_UNMANAGED, par défaut.

AT_CREATION

Cette option empêche la mise à niveau des ressources vers la nouvelle version du type de ressources. Si elle est utilisée, l'administrateur du cluster doit supprimer et recréer la ressource.

Modification de la propriété RT_version d'un fichier RTR

Ne modifiez la propriété RT_version d'un fichier RTR que lorsque le contenu du fichier RTR change. Attribuez-lui une valeur qui indique clairement qu'il s'agit de la dernière version du type de ressources.

N'incluez pas les caractères ci-dessous dans la chaîne RT_version du fichier RTR, sinon l'enregistrement du type de ressources échouera :

La propriété RT_version, facultative dans Sun Cluster 3.0, est obligatoire depuis Sun Cluster 3.1.

Noms des types de ressources dans les versions précédentes de Sun Cluster

Dans Sun Cluster 3.0, les noms des types de ressources ne contiennent pas de suffixe de version :

vendor-id.resource-type

Les noms de types de ressources enregistrés initialement dans Sun Cluster 3.0 conservent cette syntaxe même si le logiciel de cluster a été mis à niveau vers Sun Cluster 3.1 ou une version ultérieure. De même, un type de ressources dont le fichier RTR ne contient pas la directive #$upgrade aura un nom au format Sun Cluster 3.0 (sans suffixe de version) même s'il est enregistré sur un cluster fonctionnant sous Sun Cluster 3.1 ou une version ultérieure.

L'administrateur du cluster peut enregistrer des fichiers RTR à l'aide de la directive #$upgrade ou de la directive #$upgrade_from dans Sun Cluster 3.0. Cependant, la mise à niveau des ressources existantes vers un nouveau type de ressources dans Sun Cluster 3.0 n'est pas prise en charge.

Étapes et effets d'une mise à niveau effectuée par un administrateur de clusters

Lorsqu'un administrateur de clusters met à niveau un type de ressources :


Remarque –

les ressources créées dans Sun Cluster 3.0 n'héritent pas des attributs par défaut des propriétés de ressource lorsqu'elles sont mises à niveau vers une nouvelle version de Sun Cluster. Cette restriction s'applique uniquement aux clusters Sun Cluster 3.0 mis à niveau vers Sun Cluster 3.1 ; en outre, les administrateurs de clusters peuvent la surmonter en attribuant des valeurs aux propriétés (les valeurs définies remplaçant alors les valeurs par défaut).


Utilisation du code de contrôle du type de ressources

Il est toujours possible à l'administrateur du cluster d'enregistrer un type de ressources prêt à la mise à niveau dans Sun Cluster 3.0. Cependant, Sun Cluster enregistrera le nom du type de ressources sans le suffixe de version. Pour fonctionner correctement dans Sun Cluster 3.0 et Sun Cluster 3.1, les codes de contrôle de ces types de ressources doivent pouvoir gérer les deux conventions d'attribution de noms :

vendor-id.resource-type:rt-version
vendor-id.resource-type

Le format des noms de types de ressources est décrit dans la rubrique Format des noms de types de ressources .

Il est impossible d'enregistrer deux fois la même version du type de ressources sous deux noms différents. Pour que le code de contrôle puisse identifier le bon nom, l'administrateur du cluster doit appeler les commandes ci-dessous dans ce code :

scha_resourcetype_get -O RT_VERSION -T VEND.myrt
scha_resourcetype_get -O RT_VERSION -T VEND.myrt:vers

Il doit ensuite comparer les valeurs de sortie avec la valeur de vers. Pour chaque valeur de vers, une seule de ces commandes fonctionne.

Détermination des exigences relatives à l'installation et choix du type de package

Pour déterminer les exigences d'installation et le type de package à utiliser, tenez compte des points suivants :

Pour savoir quel type de package utiliser, posez-vous les questions suivantes :

Les réponses à ces questions vous aideront à identifier le type de package à utiliser pour le nouveau type de ressources.

Étapes préalables à la modification du fichier RTR

Il n'est pas nécessaire de créer du nouveau code de contrôle ou de méthode lorsque vous modifiez un type de ressources : par exemple, vous pouvez changer uniquement la valeur par défaut ou la capacité de réglage d'une propriété de ressource. Dans ce cas, vous aurez uniquement besoin d'un nouveau chemin valide vers un fichier RTR lisible.

Si vous n'avez pas besoin de ré-enregistrer le type de ressources, vous pouvez remplacer l'ancienne version du fichier RTR par la nouvelle ; si vous devez ré-enregistrer le type de ressources, placez le nouveau fichier RTR dans un nouveau chemin.

Si la mise à niveau change la valeur par défaut ou la capacité de réglage d'une propriété, utilisez la méthode Validate correspondant à la nouvelle version du type de ressources en vue de vérifier que les attributs de propriété existants sont valides pour le nouveau type de ressources. S'ils ne le sont pas, l'administrateur du cluster pourra modifier les propriétés d'une ressource existante et leur attribuer les valeurs appropriées. Si la mise à niveau modifie les attributs min, max ou type d'une propriété, la commande scrgadm valide automatiquement ces contraintes lorsque l'administrateur du cluster met à niveau le type de ressources.

Si elle ajoute ou supprime une propriété, vous devrez probablement modifier les méthodes de rappel ou le code de contrôle.

Modification du code de contrôle

Si vous modifiez uniquement le code de contrôle d'un type de ressources, l'installation du package peut remplacer les binaires de contrôle.

Modification du code de méthode

Lorsque vous modifiez uniquement le code de méthode d'un type de ressources, vous devez déterminer si le nouveau code est compatible avec l'ancien. La réponse à cette question vous aidera à déterminer si vous devez enregistrer le nouveau code de méthode dans un nouveau chemin ou si vous pouvez remplacer les anciennes méthodes par les nouvelles.

Si vous pouvez appliquer les nouvelles méthodes Stop, Postnet_stop et Fini (si elles sont déclarées) à des ressources initialisées ou démarrées à l'aide des anciennes versions de Start, Prenet_stop ou Init, vous pouvez remplacer les anciennes méthodes par les nouvelles.

Si l'application d'une nouvelle valeur par défaut à une propriété provoque l'échec d'une méthode telle que Stop, Postnet_stop ou Fini, l'administrateur du cluster devra restreindre l'état de la méthode en conséquence, lors de la mise à niveau du type de ressources.

Pour l'autoriser à le faire, limitez la capacité de réglage de la propriété Type_version.

Une bonne méthode consiste à inclure toutes les versions précédentes d'un type de ressources, si elles sont prises en charge, dans le package. Il est ainsi possible de remplacer l'ancienne version du package par la nouvelle, sans remplacer ni supprimer les anciens chemins des méthodes. Vous devez décider du nombre d'anciennes versions à prendre en charge.

Choix du type de package à utiliser

Le tableau ci-dessous vous permet de choisir le type de package à utiliser pour vos nouveaux types de ressources.

Tableau 4–1 Type de package à utiliser

Type de modification 

Valeur de la capacité de réglage 

Type de package 

Changer les propriétés dans le fichier RTR uniquement. 

ANYTIME

Fournissez uniquement le nouveau fichier RTR. 

Mettre à jour les méthodes. 

ANYTIME

Placez les méthodes à jour dans un chemin différent de celui des anciennes méthodes. 

Installer le nouveau programme de contrôle. 

WHEN_UNMONITORED

Remplacez uniquement l'ancienne version du programme de contrôle. 

Mettre à jour les méthodes. 

Les nouvelles méthodes Update et Stop sont incompatibles avec les anciennes méthodes Start.

WHEN_OFFLINE

Placez les méthodes à jour dans un chemin différent de celui des anciennes méthodes. 

Mettre à jour les méthodes et ajouter des propriétés au fichier RTR. Les nouvelles méthodes requièrent de nouvelles propriétés. 

Cette modification vise à empêcher la ressource de se connecter si son groupe passe du mode hors ligne au mode en ligne sur un nœud, sans obliger le groupe de ressources à se déconnecter. 

WHEN_DISABLED

Écrasez les versions précédentes des méthodes. 

Mettre à jour les méthodes et ajouter des propriétés au fichier RTR. Les nouvelles méthodes ne requièrent pas de nouvelles propriétés. 

ANYTIME

Écrasez les versions précédentes des méthodes. 

Mettre à jour les méthodes. La nouvelle méthode Fini est incompatible avec la méthode Init antérieure.

WHEN_UNMANAGED

Placez les méthodes à jour dans un chemin différent de celui des anciennes méthodes. 

Mettre à jour les méthodes. Le fichier RTR n'est pas modifié. 

Sans objet. Le fichier RTR n'est pas modifié. 

Écrasez les versions précédentes des méthodes. Puisque vous n'avez pas modifié le fichier RTR, il est inutile d'enregistrer ou de mettre à niveau la ressource. 

Documentation requise pour un type de ressources modifié

Les administrateurs de clusters trouveront des instructions de mise à niveau des ressources dans la rubrique Upgrading a Resource Type du Sun Cluster Data Services Planning and Administration Guide for Solaris OS. Afin de les aider à mettre à niveau un type de ressources modifié par vos soins, vous devez en outre leur communiquer les informations répertoriées dans cette section.

En règle générale, lorsque vous créez un nouveau type de ressources, vous devez fournir des documents qui remplissent les fonctions suivantes :

Informations sur la préparation de l'installation de la mise à niveau

Expliquez aux administrateurs de clusters les procédures à suivre avant d'installer le package de mise à niveau sur un nœud :

Moment opportun pour effectuer la mise à niveau

Expliquez aux administrateurs de clusters à quel moment ils peuvent mettre à niveau les ressources. Le moment opportun pour mettre la ressource à niveau dépend de l'option #$upgrade_from du fichier RTR - plus précisément, de l'option de capacité de réglage associée à chaque version de la ressource :


Exemple 4–2 Moment où la mise à niveau est possible en fonction de la propriété #$upgrade_from

Cet exemple montre la relation entre la capacité de réglage de la directive #$upgrade_from et les circonstances dans lesquelles un administrateur de clusters peut faire passer une ressource à une version ultérieure de son type de ressources.

#$upgrade_from   "1.1"   WHEN_OFFLINE
#$upgrade_from   "1.2"   WHEN_OFFLINE
#$upgrade_from   "1.3"   WHEN_OFFLINE
#$upgrade_from   "2.0"   WHEN_UNMONITORED
#$upgrade_from   "2.1"   ANYTIME
#$upgrade_from   ""      WHEN_UNMANAGED

Version 

Moments où la mise à niveau est possible 

1.1, 1.2 ou 1.3 

Uniquement lorsque la ressource est déconnectée 

2.0 

Uniquement lorsque le contrôle de la ressource est désactivé 

2.1 

À tout moment 

Autres versions 

Uniquement lorsque le groupe de ressources est à l'état non géré  


Informations sur les modifications apportées aux propriétés de ressources

Décrivez toutes les modifications que vous avez apportées au type de ressources et qui obligent les administrateurs de clusters à modifier les propriétés des ressources existantes lors de la mise à niveau. Ces modifications peuvent être des types suivants :