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

Mise en œuvre d'une ressource évolutive

Une ressource évolutive peut être en ligne sur plusieurs nœuds simultanément. Les ressources évolutives comprennent les services de données comme Sun Cluster HA for Sun One Web Server (précédemment Sun Cluster HA for Sun ONE Web Server) et Sun Cluster HA for Apache.

Le RGM propose de nombreuses propriétés prenant en charge la mise en œuvre d'une ressource évolutive.

Définissez la propriété booléenne du type de ressources Failover sur FALSE pour autoriser la configuration d'une ressource dans un groupe pouvant être ligne sur plusieurs nœuds simultanément.

La propriété de ressource Scalable détermine si la ressource utilise la fonction d'adresse partagée du cluster. Définissez cette propriété sur TRUE car une ressource évolutive utilise une ressource d'adresse partagée pour que les multiples instances du service évolutif soient présentées comme un service unique au client.

La propriété RG_mode permet à l'administrateur du cluster d'identifier un groupe de ressources comme étant évolutif ou de basculement. Si la propriété RG_mode est définie sur SCALABLE, le RGM permet de configurer Maximum_primaries sur une valeur supérieure à 1, ce qui signifie que le groupe peut être géré par plusieurs nœuds simultanément. Le RGM permet d'instancier une ressource dont la propriété Failover est définie sur FALSE dans un groupe de ressources dont la propriété RG_mode est définie sur SCALABLE.

L'administrateur du cluster crée un groupe de ressources évolutives pour contenir les ressources de service évolutives et un groupe de ressources de basculement pour contenir les ressources d'adresse partagée dont la ressource évolutive dépend.

L'administrateur du cluster utilise la propriété de groupe de ressources RG_dependencies pour spécifier dans quel ordre les groupes de ressources sont connectés à un nœud et en sont déconnectés. Cet ordre est important dans le cadre d'un service évolutif car les ressources évolutives et les ressources d'adresse partagée dont elles dépendent se trouvent dans des groupes différents. Un service de données évolutif nécessite que son adresse réseau (adresse partagée) soit configurée en amont avant d'être démarré. Par conséquent, l'administrateur doit définir la propriété RG_dependencies (du groupe de ressources contenant le service évolutif) pour inclure le groupe de ressources contenant les ressources d'adresse partagée.

Lorsque vous déclarez la propriété Scalable d'une ressource dans le fichier RTR, le RGM crée automatiquement l'ensemble des propriétés évolutives suivantes pour cette ressource :

Network_resources_used

Identifie les ressources d'adresse partagée utilisées par cette ressource. Cette propriété est définie par défaut sur une chaîne de caractères vide. Par conséquent, l'administrateur du cluster doit fournir la liste réelle des adresses partagées que le service évolutif utilise lors de la création de la ressource. La commande scsetup et SunPlex Manager offrent des fonctions permettant de paramétrer automatiquement les ressources et les groupes requis pour les services évolutifs.

Load_balancing_policy

Spécifie la règle d'équilibrage de la charge de la ressource. Vous pouvez explicitement définir cette règle dans le fichier RTR (ou activer la valeur par défaut LB_WEIGHTED). Dans tous les cas, l'administrateur du cluster peut modifier la valeur lors de la création de la ressource (à moins que vous ne définissiez la valeur Tunable de la propriété Load_balancing_policy sur NONE ou FALSE dans le fichier RTR). Valeurs valides :

LB_WEIGHTED

La charge est répartie entre plusieurs nœuds en fonction des poids définis dans la propriété >Load_balancing_weights.

LB_STICKY

Un client donné (identifié par son adresse IP) du service évolutif est toujours envoyé au même nœud du cluster.

LB_STICKY_WILD

Un client donné (identifié par son adresse IP), connecté à l'adresse IP d'un service sticky à caractère joker est toujours envoyé sur le même nœud du cluster, indépendamment du port vers lequel il est dirigé.

Dans le cadre d’un service évolutif défini sur >Load_balancing_policy LB_STICKY ou LB_STICKY_WILD, la modification de la propriété Load_balancing_weights alors que le service est en ligne peut réinitialiser les affinités des clients existants. Le cas échéant, un autre nœud peut prendre en charge une requête ultérieure du client, même si ce dernier était précédemment géré par un autre nœud du cluster.

Le redémarrage d'une nouvelle instance du service sur un cluster peut également réinitialiser les affinités des clients existants.

Load_balancing_weights

Spécifie la charge à envoyer à chaque nœud. Format : poids@nœud, poids@nœud, poids correspondant à un nombre entier reflétant la part relative de la charge distribuée au nœud spécifié. La fraction de la charge distribuée à un nœud correspond au poids de ce nœud divisé par la somme de tous les poids des instances actives. Par exemple, 1@1,3@2 indique que le nœud 1 reçoit 1/4 de la charge et que le nœud 2 en reçoit les 3/4.

Port_list

Identifie les ports d'écoute du serveur. Cette propriété est définie par défaut sur une chaîne de caractères vide. Vous pouvez fournir une liste des ports dans le fichier RTR. Sinon, l'administrateur du cluster doit fournir la liste réelle des ports lors de la création de la ressource.

Vous pouvez créer un service de données que l'administrateur pourra configurer en tant que service de basculement ou évolutif. Pour ce faire, déclarez la propriété de type de ressources Failover et la propriété de ressource Scalable sur FALSE dans le fichier RTR du service de données. Spécifiez à la création que la propriété Scalable est réglable.

La valeur de la propriété Failover (FALSE) permet de configurer la ressource dans un groupe de ressources évolutives. L'administrateur peut activer les adresses partagées en définissant la valeur de la propriété Scalable sur TRUE lors de la création de la ressource, créant ainsi un service évolutif.

D'un autre côté, même si la propriété Failover est définie sur FALSE, l'administrateur peut configurer la ressource dans un groupe de ressources de basculement pour mettre en œuvre un service de basculement. L'administrateur ne modifie pas la valeur de la propriété Scalable (déjà définie sur FALSE). Pour prendre en charge cette éventualité, vous devez fournir un contrôle de la propriété Scalable dans la méthode Validate. Si la propriété Scalable est définie sur FALSE, vérifiez que la ressource est configurée dans un groupe de ressources de basculement.

Vous trouverez de plus amples informations sur les ressources évolutives dans le Guide des notions fondamentales de Sun Cluster pour SE Solaris.

Contrôles de validation des services évolutifs

Chaque fois qu'une ressource est créée et mise à jour alors que la propriété d'évolutivité (Scalable)est définie sur TRUE, le RGM valide diverses propriétés de ressources. Si les propriétés ne sont pas configurées correctement, le RGM rejette les tentatives de mise à jour ou de création. Le RGM effectue les contrôles suivants :