Le cluster logiciel fermeMontée en charge et haute disponibilité avec partage de charge réseau et reprise applicative sur panne
Le cluster ferme est adaptée aux applications frontales telles que les services web. Apache_farm.Safe, Microsoft IIS_farm.Safe sont des exemples de modules applicatifs de type ferme. Vous pouvez écrire votre propre module 'ferme' pour votre application à partir du module générique Farm.Safe. Principe d'une adresse IP virtuelle avec partage de charge réseauL'adresse IP virtuelle est configurée localement sur chaque serveur de la ferme. Le trafic du réseau à destination de l'adresse IP virtuelle est reçu par l'ensemble des serveurs. Puis ce trafic est distribué entre les serveurs grâce à un filtre chargé dans le système d'exploitation de chaque serveur.
L'algorithme de partage de charge dans le filtre est basé sur l'identité des paquets client (adresse IP client, port TCP client). Suivant l'identité du paquet client en entrée, seul un filtre dans un serveur accepte le paquet ; les autres filtres dans les autres serveurs le rejettent. Une fois un paquet accepté par le filtre sur un serveur, seuls le CPU et la mémoire de ce serveur sont utilisés par l'application qui répond à la requête du client. Les messages de retour de l'application sont envoyés directement du serveur vers le client. Lorsqu'un serveur est défaillant, le protocole de gestion du groupe des serveurs en vie reconfigure les filtres pour redistribuer le trafic vers les serveurs disponibles. Critères de partage de charge pour les services web à état et sans étatAvec un service à état, il y a affinité de session. Le même client doit être connecté sur le même serveur sur plusieurs sessions HTTP/TCP pour retrouver son contexte sur le serveur. Dans ce cas, la règle de load balancing SafeKit est configurée sur l'adresse IP des clients. Ainsi, le même client est toujours connecté sur le même serveur sur plusieurs sessions TCP. Et différents clients sont répartis sur les différents serveurs de la ferme. Cette configuration est à choisir pour les services web à état lorsqu’il y a affinité de sessions. Avec un service web sans état, il n'y a pas d'affinité de session. Le même client peut être connecté sur des serveurs différents dans la ferme lors de sessions HTTP/TCP successives. Dans ce cas, la règle de load balancing SafeKit est configurée sur l'identité de la session TCP du client. Cette configuration est celle qui répartit le mieux les sessions entre les serveurs mais elle requiert un service TCP sans affinité de session. D'autres algorithmes de partage de charge sont proposés pour des services UDP, pour des firewalls... |
|||