Avec la fonction de haute disponibilité pour Load Balancer, une machine partenaire peut prendre le relais de l'équilibrage de charge en cas de défaillance ou d'arrêt du partenaire principal. Pour maintenir les connexions entre les deux partenaires, des enregistrements de connexion sont transmis entre les deux machines. Lorsque le partenaire de secours prend en charge la fonction d'équilibrage de charge, l'adresse IP de cluster est supprimée de la machine de secours et ajoutée dans la nouvelle machine principale. De nombreuses considérations temporelles et de configuration peuvent avoir un impact sur cette opération de reprise.
Les conseils suivants sont pratiques pour garantir le succès de la configuration de la haute disponibilité sur les machines Load Balancer.
dscontrol highavailability heartbeat add ... dscontrol highavailability backup add ... dscontrol highavailability reach add ...
La plupart du temps, vous devez positionner les définitions de haute disponibilité à la fin du fichier. Les instructions de cluster, port et serveur doivent être placées avant celles de haute disponibilité. En effet, lors de la synchronisation de la haute disponibilité, les définitions de cluster, port et serveur sont recherchées à la réception d'un enregistrement de connexion.
Si le cluster, port et serveur n'existent pas, l'enregistrement de connexion est annulé. En cas de reprise alors que l'enregistrement de connexion n'a pas été répliqué sur la machine partenaire, la connexion échoue.
L'exception à cette règle est l'utilisation de serveurs co-implantés, configurés avec la méthode d'acheminement MAC. Dans ce cas, les instructions de haute disponibilité doivent précéder les instructions du serveur co-implanté. Si ce n'est pas le cas, Load Balancer reçoit une demande sur le serveur co-implanté, mais celle-ci ressemble à une demande entrante adressée au cluster et fait l'objet d'un équilibrage de charge. Ceci risque de conduire à un bouclage des paquets sur le réseau et à un excès de trafic. Lorsque les instructions de haute disponibilité sont placées avant le serveur co-implanté, Load Balancer est informé qu'il ne doit pas acheminer le trafic entrant sauf s'il se trouve à l'état ACTIF.
Pour remédier à ce comportement, ajoutez un délai de veille dans le script goActive. Le délai de veille nécessaire dépend du déploiement. Un délai de veille de 10 est recommandé pour commencer.
dscontrol executor set hatimeout <valeur>
Pour ce faire, les anciennes connexions ne doivent pas rester en mémoire pendant une période trop longue. Des incidents ont été notamment relevés au niveau des ports LDAP et de longues périodes de staletimeout (de plus d'une journée). La définition d'une valeur staletimeout élevée entraîne la mise en mémoire des anciennes connexions, ce qui pousse un plus grand nombre d'enregistrements de connexion d'être transmis en synchronisation, et également une consommation accrue de mémoire sur les deux machines.
e xm 33 5 new_timeoutCette commande n'est pas stockée dans le fichier de configuration lorsqu'elle est sauvegardée ; vous devez donc l'ajouter manuellement au fichier de configuration si vous souhaitez que ce paramètre soit conservé entre les arrêts.
Le délai est stocké en demi secondes ; la valeur par défaut du paramètre nouveau_délai est donc 100 (50 secondes).