A, LVS Présentation
LVS (Linux Virtual Server), le serveur virtuel Linux, est dirigé par le Dr Zhang Wen projet chanson équilibrage de charge open source, actuellement LVS a été intégré dans le module de Linux. Le projet met en œuvre les données IP demandé d'ordonnancement d'équilibrage de charge, dont l'architecture représentée sur la figure 1, le terminal utilisateur de l'accès Internet externe d'équilibrage de charge du serveur externe de l'entreprise, les demandes de l'utilisateur final envoyé à un ordonnanceur du noyau Linux Web LVS , un planificateur décide d'envoyer la requête à un serveur Web conformément à leur extrémité arrière d'un algorithme prédéfini, par exemple, l'algorithme de vote peut demander au serveur externe à la moyenne de l'ensemble de l'extrémité arrière, alors que le planificateur de l'utilisateur final d'accès est LVS transmis aux serveurs réels dorsaux, mais si la connexion réelle du serveur est la même mémoire, le même service est également fourni des services aux utilisateurs finaux quelle que soit l'accès réel du serveur, les services obtenir sont les mêmes, l'ensemble du cluster à l'utilisateur pour tous transparents. Enfin, en fonction du mode de transmission des LVS, les serveurs réels choisiront une autre façon aux données de l'utilisateur final requis par l'utilisateur, le mode de fonctionnement est divisé en mode LVS NAT, mode TUN et le mode DR.
Deuxièmement, résoudre les trois modes de fonctionnement.
1, fonction de la charge d'équilibrage LVS mode NAT
NAT (Network Address Translation) à savoir, la traduction d'adresses réseau, dont le rôle est de modifier l'en-tête de paquet de données, l'adresse IP privée est telle que dans l'entreprise peut accéder à Internet, ainsi qu'avec les utilisateurs externes peuvent accéder aux hôtes IP privées situées dans la société. topologie VS / mode de fonctionnement NAT représenté sur la figure 2, LVS planificateur de charge peut utiliser deux configurations NIC différentes adresses IP, le réseau de consigne IP privée eth0 sont reliés entre eux par l'intermédiaire du dispositif de commutation interne, l'équipement eth1 et l'adresse IP du réseau externe la connectivité réseau externe.
La première étape, l'utilisateur via le serveur DNS Internet pour résoudre dispositif d'équilibrage en dehors de la charge du réseau au-dessus de l'adresse de l'entreprise, par opposition à un vrai serveur, LVS réseau externe IP, également connu sous le nom VIP (Adresse IP virtuelle), par le biais VIP d'accès utilisateur, vous pouvez connecter le fin réel serveur (serveur réel), et tout cela est transparent pour l'utilisateur, l'utilisateur a pensé qu'il visite est un vrai serveur, mais il ne savait pas leur propre accès VIP est juste un planificateur, on ne sait pas le vrai arrière-plan où le serveur, le nombre de serveurs réels.
Une seconde étape, l'utilisateur envoie la requête au 124.126.147.168, l'extrémité arrière de ce temps LVS sélectionné conformément à un algorithme prédéfini pour un vrai serveur (192.168.0.1 ~ 192.168.0.3), un paquet de données avant la requête au serveur réel, et avant de transmettre le LVS va modifier l'adresse de destination du paquet et le port de destination, l'adresse de destination et le port de destination est modifié à l'adresse IP du serveur réel sélectionné et le port correspondant.
Après la troisième étape, le paquet de données de réponse réel serveur au planificateur de LVS, le planificateur est VIP et modifiez le port correspondant dans le planificateur en réponse au paquet de données pour obtenir l'adresse de la source et la modification de la volonté du port source est terminée, le planificateur le dos du paquet de réponse à l'utilisateur final, en outre, puisqu'il y a un programmateur de liaison LVS table de hachage, qui sera enregistré et transférer le message de demande de connexion, lorsque le prochain paquet de données avec une connexion à un répartiteur, du Hash table peut être connecté directement à l'enregistrement précédent, et a élu les mêmes informations de serveur réel et le port selon les informations d'enregistrement.
2, la charge LVS équilibrage basé TUN
Dans un environnement de cluster LVS (NAT) Mode, étant donné que toutes les demandes de données et les paquets de données en réponse à la nécessité de passer par LVS avant planificateur, si le nombre est supérieur au serveur principal 10, le programmateur deviendra le goulot d'étranglement de l'ensemble de l'environnement de cluster . Nous savons que le paquet de demande de données est toujours taille beaucoup plus petite du paquet de réponse. Du fait que le paquet de réponse contient des données besoins spécifiques du client, le LVS (TUN) L'idée est de demander séparées et des données de réponse, de sorte que seul le planificateur de processus de demande de données, et que le paquet de données de réponse serveur réel au client directement. Mode VS / TUN de la topologie conformément à la figure 3. Dans laquelle le tunnel IP (tunning IP) est une technique d'encapsulation de paquets de données, il peut être encapsulé paquet original et ajoute un nouvel en-tête (y compris la nouvelle adresse et le port source, adresse de destination et le port), de manière à atteindre un objectif encapsulation planificateur de paquets d'adresse VIP, transmis par le tunnel vers le back-end du réel serveur (serveur réel), par le client a envoyé au planificateur de l'encapsulation des paquets d'origine, et ajouter un nouvel en-tête sur sa base (cible modifiée l'adresse IP et l'adresse de port correspondant est sélectionné à partir du serveur réel répartiteur), le mode LVS (TUN) nécessite vrai serveur peut être connecté directement au réseau externe, le vrai serveur à l'hôte client en réponse à la réception des données de demande directement à un paquet de données.
3, équilibrage de charge basé sur le DR LVS
En mode LVS (TUN), en raison de la nécessité d'un tunnel entre le répartiteur et LVS serveur réel, ce qui permettra également d'augmenter la charge sur le serveur. Et LVS (TUN) De même, le mode DR est également appelé mode de routage direct, l'architecture représentée à la figure 4, le mode de données reste LVS responsables entrants demandes, et que l'algorithme choisi en fonction de serveurs réels raisonnables, et, finalement, par l'extrémité arrière vrai serveur est responsable du paquet de réponse est envoyée au client. Et le mode tunnel est différent, le mode de routage direct (mode DR) et le serveur back-end nécessite le répartiteur doit être dans le même réseau local, les besoins d'adresse VIP à partager entre tous les serveurs et planificateur back-end, car à la fin du vrai serveur au client nous devons définir la source lorsque le paquet répondant IP pour l'adresse VIP, le client IP de destination IP, de sorte que les clients peuvent accéder au planificateur d'adresse VIP, en réponse à l'adresse de source reste aussi l'adresse VIP (VIP sur le serveur réel), le client est existe serveur principal imperceptible. Étant donné que de nombreux ordinateurs sont fournis avec la même adresse VIP, de sorte que les exigences du planificateur en mode de routage direct, l'adresse VIP est visible à l'extérieur, les besoins des clients à paquet de requête à l'hôte de planificateur, adresses VIP de tous le vrai serveur doit être configuré sur les périphériques réseau non-ARP, qui est, le dispositif de réseau ne diffuse pas en dehors de son propre MAC et l'adresse IP correspondante, serveur réel VIP n'est pas visible au monde extérieur, mais le serveur réel a accepté l'adresse cible demandes de réseau VIP, et en réponse aux données par paquets, l'adresse source que l'adresse VIP. Après que le serveur réel planificateur sélectionné, sans modifier les paquets de données, des trames de données vont changer l'adresse MAC de l'adresse MAC du serveur réel selon l'algorithme sélectionné, la trame de données au commutateur par le serveur réel. Tout au long du processus, serveur réel VIP n'a pas besoin d'être visible au monde extérieur.
Trois, algorithme d'ordonnancement d'équilibrage de charge LVS
Selon les rapports précédents, nous avons appris au sujet des LVS de trois modes de fonctionnement, mais quel que soit l'environnement réel dans lequel le mode utilisé, algorithme de programmation stratégie et algorithme d'ordonnancement est la technologie de base de LVS, LVS principale réalisation dans le noyau un peu dix types d'algorithmes d'ordonnancement.
1. planification de tournoi à la ronde
Round robin ordonnancement (Round Robin dénommé « RR ») algorithme est la manière des cycles de la demande de programmer un autre serveur, l'algorithme est la plus grande caractéristique est simple. algorithme d'interrogation suppose que toutes les capacités des processus serveur la demande sont les mêmes, le planificateur sera en moyenne toutes les demandes assignées à chaque serveur réel.
2. planification de tournoi à la ronde pondérée
round robin pondéré (poids Round Robin appelé «WRR) est principalement un algorithme d'optimisation et supplément algorithme interrogation, les LVS considéreront les performances de chaque serveur, et d'ajouter un poids à chaque serveur, au serveur si l'A la valeur 1, la valeur 2 au serveur B, puis le programmateur programme la demande au serveur B, un serveur serait deux fois. Plus le poids du serveur, plus le traitement de la demande.
3. Le calendrier de connexion minimum
La programmation de connexion minimale (moins connexions dénommées « LC ») algorithme consiste à attribuer une nouvelle demande de connexion au serveur avec le plus petit nombre d'actuellement connecté. La programmation de connexion minimum est un algorithme de programmation dynamique qui permet d'estimer le nombre de serveur en se connectant au serveur est actuellement actif. Planificateur doit enregistrer le nombre de connexions à chaque serveur a été mis en place, lorsqu'une demande est envoyée à un serveur, qui est de 1, plus le nombre de connexions, lorsque la connexion est perdue ou un délai d'attente, qui est de 1 moins le nombre de connexions.
(Systèmes de cluster réel de serveur ont des performances similaires, avec un algorithme d'ordonnancement de connexion minimale peut mieux équilibrer la charge.)
4. moins connexions pondérées ordonnancement
Pondérés moins connexions (poids d'au moins connexions dénommées « WLC ») connectée à l'algorithme d'ordonnancement est le poids correspondant plus petit représente surensemble les performances de traitement de chaque serveur. La valeur par défaut de 1 au serveur, l'administrateur du système peut régler dynamiquement le poids du serveur. Pondérée ordonnancement moins connexion dans la planification d'une nouvelle connexion de telle sorte que le serveur a été établie en tant que valeur proportionnelle au nombre de connexions et de leurs poids. planificateur de requêtes peut charger automatiquement le serveur réel, et ajuste dynamiquement le poids.
Le minimum basé connexion locale
Sur la base de la planification de connexion minimum local (Localité-base moins Connexions appelées « LBLC ») algorithme de demande de planification d'équilibrage de charge adresse IP de destination de paquets, la clé pour le système de cluster Cache, parce que dans les clients Cache Clusters demande destination de paquets l'adresse IP est modifiée. On suppose que tout serveur principal peut gérer une demande de tout, l'algorithme est conçu dans une charge sensiblement équilibrée le serveur demande la même adresse IP de destination sont expédiés au même serveur, chaque serveur pour améliorer localité et taux de succès cache, afin d'améliorer la capacité de traitement de l'ensemble du système de cluster. algorithme d'ordonnancement LBLC d'abord trouver l'adresse IP du serveur cible selon le plus récemment utilisé demande d'adresse IP de destination, si le serveur est disponible et n'est pas surchargé, envoyer une demande au serveur, si le serveur n'existe pas, ou si le serveur dispose d'un serveur est surchargé et la charge de travail de moitié, selon le principe de « moins connexions pour sélectionner un serveur disponible, envoie une requête au serveur.
6. minimum basé connexion de réplication de bande Localité
Avec une copie de la localité à base les moins Connexion (Localité axée sur les moins connexions avec réplication appelés « LBLCR ») algorithme est l'adresse IP cible d'équilibrage de charge, la clé pour le système de cluster Cache, il algorithme LBLC est qu'il est différent de en maintenant la correspondance entre une adresse IP cible pour un groupe de serveurs, et un algorithme LBLC maintient une correspondance entre une adresse IP cible à un serveur. de connexion minimum 'principe presse choisis parmi onze serveurs du groupe de serveurs, si le serveur est surchargé, envoyer une demande au serveur, si le serveur est surchargé, appuyez sur « connexion minimum » un principe choisi dans l'ensemble du cluster de serveurs le serveur est ensuite ajouté au groupe de serveur, envoie une requête au serveur. Pendant ce temps, lorsque le groupe de serveurs pendant un certain temps pas été modifié, est retiré le plus achalandé au serveur du groupe de serveurs, afin de réduire le degré de réplication.
7. l'adresse de destination planification de hachage
adresse cible Scheduling hachage (Destination abréviation Hashage « DH ») algorithme selon l'adresse IP de destination de la demande comme la clé de hachage (Hash Key) pour trouver le serveur correspondant dans la liste de l'allocation de statique de hachage, si le serveur est disponible et et pas surchargé, la demande est envoyée au serveur, sinon vide.
8. L'adresse de source de programmation de hachage U
Planification du hachage d'adresse source (abréviation Source Hashage « SH ») algorithme selon l'adresse IP source de la demande, comme la clé de hachage (Hash Key) pour trouver le serveur correspondant dans la liste de l'allocation de statique de hachage, si le serveur est disponible et et pas surchargé, la demande est envoyée au serveur, sinon vide. Fonction de hachage avec la valeur de hachage de l'adresse de destination utilise le même algorithme de planification, qui est sensiblement similaire à l'adresse cible algorithme de planification de traitement d'algorithme de hachage.
9. le plus court délai souhaité
Le calendrier de retard le plus court prévu (Shortest retard prévu dénommé « ETD ») algorithme WLC algorithme. Pour donner un exemple, le droit d'ABC trois serveurs poids 1,2,3, respectivement. Donc, si vous utilisez l'algorithme WLC, une nouvelle demande est en elle peut donner à l'un des ABC. Nous effectuerons un algorithme de calcul après avoir utilisé ETD
A: (1 + 1) / 2 = 1 B: (1 + 2) / 2 = 3/2 C: (1 + 3) / 3 = 03.04 met la requête au serveur qui fournit un résultat de calcul du minimum.
10. La programmation file d'attente minimum
ordonnancement des files d'attente minimum (jamais de file d'attente appelée « NQ ») algorithme, sans file d'attente. Si le nombre de connexions est égal à 0 passé realserver directement affecté, aucune opération est effectuée SED.