Maison  >  Article  >  Opération et maintenance  >  Il existe plusieurs types d'équilibrage de charge sous Linux

Il existe plusieurs types d'équilibrage de charge sous Linux

青灯夜游
青灯夜游original
2023-04-14 11:25:101793parcourir

Linux propose 4 types d'équilibrage de charge : 1. L'équilibrage de charge de couche 2 (mac), qui utilise l'adresse MAC virtuelle, est reçue par équilibrage de charge et alloue la réponse d'adresse MAC réelle du backend ; L'équilibrage de charge (ip) de couche 3 utilise des adresses IP virtuelles pour demander des adresses IP virtuelles externes. Une fois que l'équilibrage de charge a reçu la demande, il alloue la réponse d'adresse IP back-end réelle. 3. Équilibrage de charge à quatre couches (tcp), en commençant par le quatrième couche « couche de transport » « Démarrez, utilisez « ip+port » pour recevoir la demande ; 4. Équilibrage de charge à sept couches (http).

L'environnement d'exploitation de ce tutoriel : système linux7.3, ordinateur Dell G3.

Dans les travaux réguliers de développement et exploitation et maintenance, les services d'équilibrage de charge sont souvent utilisés, et la charge à quatre couches et la charge à sept couches sont souvent mentionnées. Qu'est-ce que la charge de couche 4 exactement ? Quelle est la charge de la couche 7 ? Quelle est la différence entre les deux ?

1. Qu'est-ce que l'équilibrage de charge

1) L'équilibrage de charge (Load Balance) est construit sur la structure réseau existante. Il fournit une méthode peu coûteuse, efficace et transparente pour étendre la bande passante des périphériques réseau et des serveurs. , augmentez le débit, renforcez les capacités de traitement des données du réseau et améliorez la flexibilité et la disponibilité du réseau. L'équilibrage de charge a deux significations : premièrement, un grand nombre d'accès simultanés ou de trafic de données est partagé sur plusieurs périphériques de nœuds pour un traitement séparé, réduisant ainsi le temps d'attente des utilisateurs pour les réponses. deuxièmement, une seule opération de charge lourde est partagée sur plusieurs périphériques de nœuds ; Un traitement parallèle est effectué. Une fois le traitement terminé par chaque périphérique nœud, les résultats sont résumés et renvoyés à l'utilisateur. La capacité de traitement du système est grandement améliorée.

2) Pour faire simple  : l'une consiste à transférer une grande quantité de traitements simultanés vers plusieurs nœuds back-end pour le traitement, réduisant ainsi le temps de réponse du travail ; l'autre consiste à transférer une seule charge de travail lourde vers plusieurs nœuds back-end ; nœuds finaux Traitez-le, puis renvoyez-le au centre d'équilibrage de charge, puis renvoyez-le à l'utilisateur. Actuellement, la technologie d'équilibrage de charge est principalement utilisée pour améliorer la disponibilité et l'évolutivité des programmes de serveur Internet tels que les serveurs Web, les serveurs FTP et autres serveurs critiques.

2. Classification d'équilibrage de charge

Les plus courants équilibrage de charge à quatre couches et équilibrage de charge à sept couches sont les plus courants en matière de développement, d'exploitation et de maintenance.

1) Équilibrage de charge de couche 2 (mac)

La charge de couche 2 est divisée selon le modèle OSI. Généralement, l'adresse MAC virtuelle est utilisée. La demande externe pour l'adresse MAC virtuelle est reçue par la charge. l'équilibreur et le MAC réel du backend est alloué.

2) L'équilibrage de charge (IP) à trois couches

utilise généralement une méthode d'adresse IP virtuelle. Les demandes externes d'adresses IP virtuelles sont reçues par l'équilibreur de charge et l'adresse IP réelle du backend est allouée en réponse. (c'est-à-dire le transfert d'une adresse IP à une adresse IP, tous les ports sont ouverts)

3) Équilibrage de charge à quatre couches (tcp)

Sur la base de trois équilibrages de charge, c'est-à-dire à partir de la quatrième couche "couche de transport ", utilisez "ip+port" pour recevoir la requête et la transmettre à la machine correspondante.

Il s'agit d'un équilibrage de charge basé sur IP+port : sur la base de l'équilibrage de charge à trois couches, en publiant l'adresse IP à trois couches (VIP), puis en ajoutant le numéro de port à quatre couches, il détermine quel trafic doit être chargé. équilibré et le trafic qui doit être traité. Le trafic est traité NAT, transmis au serveur principal, et le serveur qui gère le trafic TCP ou UDP est enregistré. Tout le trafic ultérieur de cette connexion sera transmis au même serveur pour traitement.
L'équilibreur de charge correspondant est appelé commutateur à quatre couches (commutateur L4), qui analyse principalement la couche IP et la couche TCP/UDP pour obtenir un équilibrage de charge à quatre couches. Ce type d'équilibreur de charge ne comprend pas les protocoles d'application (tels que HTTP/FTP/MySQL, etc.).

Le logiciel qui implémente l'équilibrage de charge à quatre couches est :
F5 : équilibreur de charge matériel, qui a de bonnes fonctions mais un coût élevé.
lvs : logiciel de chargement lourd à quatre couches
nginx : logiciel de chargement léger à quatre couches, avec fonction de mise en cache, expressions régulières plus flexibles
haproxy : simule le transfert à quatre couches, plus flexible

4) Balance de charge à sept couches ( http)

Comme à partir de la septième couche "couche application", reçoit la requête en fonction de l'URL virtuelle ou de l'IP, du nom d'hôte, puis la transmet au serveur de traitement correspondant.

Il s'agit d'un équilibrage de charge basé sur une URL virtuelle ou une IP hôte : sur la base d'un équilibrage de charge à quatre couches (il est absolument impossible d'avoir sept couches sans quatre couches), puis de considérer les caractéristiques de la couche application, comme la charge du même serveur Web Pour l'équilibrage, en plus d'identifier si le trafic doit être traité en fonction du VIP plus le port 80, il peut également déterminer s'il faut effectuer un équilibrage de charge en fonction de l'URL à sept couches, de la catégorie du navigateur et de la langue. . Par exemple, si votre serveur Web est divisé en deux groupes, un pour la langue chinoise et un pour la langue anglaise, l'équilibrage de charge à sept couches peut identifier automatiquement la langue de l'utilisateur lorsque celui-ci accède à votre nom de domaine, puis sélectionner le serveur de langue correspondant. Le groupe effectue un traitement d’équilibrage de charge.

L'équilibreur de charge correspondant est appelé commutateur à sept couches (commutateur L7). En plus de prendre en charge l'équilibrage de charge à quatre couches, il analyse également les informations de la couche d'application, telles que l'URI du protocole HTTP ou les informations sur les cookies, pour obtenir un équilibrage de charge à sept couches. . Ce type d'équilibreur de charge comprend les protocoles d'application.

Le logiciel qui implémente l'équilibrage de charge à sept couches comprend :
haproxy : compétences innées en matière d'équilibrage de charge, prend entièrement en charge le proxy à sept couches, la conservation de session, le marquage, le transfert de chemin ; protocole de messagerie. Les performances sont similaires à haproxy ;
apache : fonction médiocre
Proxy Mysql : fonction acceptable.

En général, lvs est généralement utilisé pour le chargement de la couche 4 ; nginx est utilisé pour le chargement de la couche 7 (il peut également être utilisé pour le chargement de la couche 4, via le module stream est plus flexible et peut faire à la fois la couche 4 et) ; Équilibrage de charge de couche 7.

3. La différence entre l'équilibrage de charge à quatre et sept couches

1) Analyser à partir du principe technique

Le soi-disant équilibrage de charge à quatre couches, c'est-à-dire principalement via la cible dans le message L'adresse et le port, combinés à la méthode de sélection du serveur définie par le périphérique d'équilibrage de charge, déterminent la sélection finale du serveur interne.

En prenant le TCP commun comme exemple, lorsque le périphérique d'équilibrage de charge reçoit la première requête SYN du client, il sélectionne un serveur optimal via la méthode ci-dessus et modifie l'adresse IP cible dans le message (changée en IP du serveur final), transmise directement au serveur. L'établissement de la connexion TCP, c'est-à-dire que la négociation à trois voies est établie directement entre le client et le serveur, et le périphérique d'équilibrage de charge n'agit que comme une action de transfert de type routeur. Dans certaines situations de déploiement, afin de garantir que le paquet de retour du serveur peut être correctement renvoyé au périphérique d'équilibrage de charge, l'adresse source d'origine du paquet peut être modifiée lors du transfert du paquet.

Ce qu'on appelle l'équilibrage de charge à sept couches, également connu sous le nom d'"échange de contenu", s'effectue principalement via le contenu de la couche d'application vraiment significatif dans le message, ainsi que la méthode de sélection du serveur définie par l'équilibrage de charge. périphérique , détermine le choix final du serveur interne.

Prenons l'exemple du TCP commun. Si le périphérique d'équilibrage de charge souhaite sélectionner un serveur en fonction du contenu réel de la couche d'application, il ne peut accepter la demande envoyée par le client qu'après avoir d'abord établi une connexion (prise de contact à trois) entre le serveur final et le client. Le contenu réel de la couche application du message est ensuite déterminé en fonction des champs spécifiques du message et de la méthode de sélection de serveur définie par le dispositif d'équilibrage de charge pour déterminer la sélection finale du serveur interne. Le dispositif d’équilibrage de charge dans ce cas ressemble davantage à un serveur proxy. L'équilibrage de charge, les clients frontaux et les serveurs back-end établiront respectivement des connexions TCP. Par conséquent, du point de vue de ce principe technique, l'équilibrage de charge à sept couches a évidemment des exigences plus élevées en matière d'équipement d'équilibrage de charge, et la capacité à gérer sept couches sera inévitablement inférieure à celle de la méthode de déploiement en mode quatre couches.

L'équilibrage de charge à quatre couches est effectué au niveau de la couche de transport intermédiaire, qui gère la livraison des messages mais ne prend pas en compte le contenu des messages. Par exemple, TCP est le protocole de couche 4 pour le trafic HTTP (Hypertext Transfer Protocol) sur le réseau. Au cours de ce processus, l'équilibrage de charge de couche 4 transmet les paquets réseau au serveur en amont, mais n'inspecte pas le contenu des paquets et ne peut prendre que des décisions de routage limitées en examinant les premiers paquets du flux TCP.

Équilibrage de charge à sept couchesDifférent de l'équilibrage de charge à quatre couches, il est exécuté sur la couche d'application de haut niveau et gère le contenu réel de chaque message. HTTP est le principal protocole de couche 7 pour le trafic des sites Web sur le Web. L'équilibrage de charge de couche 7 achemine le trafic réseau de manière plus complexe que l'équilibrage de charge de couche 4 et est particulièrement adapté au trafic basé sur TCP (tel que HTTP). L'équilibrage de charge de couche 7 termine le trafic réseau et lit les messages sur le serveur. Il peut prendre des décisions d'équilibrage de charge en fonction du contenu du message (tel qu'une URL ou un cookie). Par la suite, l'équilibrage de charge à sept couches établit une nouvelle connexion TCP avec le serveur sélectionné et écrit la requête sur le serveur.

En termes simples, la différence entre les deux

- L'équilibrage de charge à sept couches est essentiellement basé sur le protocole http, adapté à l'équilibrage de charge des serveurs Web. (nginx)
- L'équilibrage de charge à quatre couches est principalement basé sur les messages du protocole TCP, et peut effectuer l'équilibrage de charge pour n'importe quel logiciel basé sur le protocole TCP/IP. (haproxy, LVS)
- La principale différence entre les deux est que les niveaux des messages utilisés sont différents, et chacun a ses propres avantages.
- L'avantage de la charge applicative à sept couches est de rendre l'ensemble du réseau plus « intelligent ». Par exemple, le trafic des utilisateurs visitant un site Web peut transmettre les demandes d'images à un serveur d'images spécifique et utiliser la technologie de mise en cache via l'approche à sept couches ; les demandes de texte peuvent être transmises à un serveur de texte spécifique et la technologie de compression peut être utilisée. Bien entendu, il ne s'agit que d'un petit cas d'application à sept couches. D'un point de vue technique, cette méthode peut modifier la demande du client et la réponse du serveur dans tous les sens, améliorant ainsi considérablement la flexibilité du système d'application au niveau de la couche réseau. De nombreuses fonctions déployées en arrière-plan, telles que Nginx ou Apache, peuvent être déplacées vers le périphérique d'équilibrage de charge, comme la réécriture d'en-tête dans les requêtes client, le filtrage de mots clés ou l'insertion de contenu dans les réponses du serveur, etc.
- L'équilibrage de charge à quatre couches est principalement plus flexible et peut être utilisé comme équilibreur de charge pour une variété de logiciels.

Prenons un exemple pour illustrer de manière vivante : l'équilibrage de charge à quatre niveaux est comme la machine de file d'attente en libre-service d'une banque. Chaque client qui arrive à la banque sélectionne la fenêtre correspondante pour recevoir les services en fonction de l'ordre de la machine de file d'attente pendant sept heures ; L'équilibrage de charge -layer est comme un gestionnaire de lobby bancaire, confirme d'abord l'activité que le client doit gérer, puis organise la numérotation. De cette manière, les clients qui gèrent la gestion financière, les dépôts et retraits, etc. seront coordonnés et traités en fonction des ressources internes de la banque, accélérant ainsi le processus commercial des clients.

Avantages de l'équilibrage de charge à sept couches
L'équilibrage de charge à sept couches consomme plus de CPU que l'équilibrage de charge à quatre couches basé sur des paquets, mais entraîne rarement une dégradation des performances du serveur. L'équilibrage de charge à sept couches permet à l'équilibreur de charge de prendre des décisions plus éclairées et d'apporter des optimisations et des modifications au contenu telles que la compression, le chiffrement, etc. L'équilibrage de charge de couche 7 peut également utiliser la mise en mémoire tampon pour décharger les connexions lentes des serveurs en amont, améliorant ainsi les performances.

Le composant qui effectue l'équilibrage de charge de couche 7 est souvent appelé serveur proxy inverse.

Exemple d'équilibrage de charge à sept couches
À titre d'exemple simple, disons qu'un utilisateur visite un site Web à fort trafic Au cours de la session, il peut demander du contenu statique (tel que des images ou des vidéos), du contenu dynamique (. telles que les flux d'actualités)) ou des informations sur les transactions (telles que le statut de la commande), etc. L'équilibrage de charge de couche 7 permet à l'équilibreur de charge d'acheminer les requêtes en fonction des messages contenus dans la requête elle-même, tels que le type de contenu. Autrement dit, les demandes d'image ou de vidéo peuvent être acheminées vers un serveur qui la stocke et qui est hautement optimisé pour servir du contenu multimédia ; les demandes d'informations transactionnelles, telles que des prix réduits, peuvent être acheminées vers un serveur d'applications chargé de gérer les prix. Grâce à l'équilibrage de charge de couche 7, les architectes de réseaux et d'applications peuvent créer une infrastructure de serveur ou des réseaux de distribution d'applications hautement optimisés qui évoluent efficacement tout en garantissant la fiabilité.

Résumé simple
D'après la comparaison ci-dessus, il semble que la plus grande différence entre une charge à quatre couches et une charge à sept couches est la différence d'efficacité et de fonctionnalité. La conception de l'architecture de charge à quatre couches est relativement simple, sans qu'il soit nécessaire d'analyser le contenu du message spécifique, et aura un débit réseau et des capacités de traitement relativement élevés. Les avantages de l'équilibrage de charge à sept couches se reflètent dans ses multiples fonctions et son contrôle flexible et puissant. . Lors de la conception d'une architecture métier spécifique, l'utilisation de charges à sept ou quatre couches doit être envisagée en fonction de circonstances spécifiques.

Le flux de données lors de l'équilibrage de charge passe tous par l'équilibreur de charge. Comment résoudre le problème de l'équilibrage de charge qui devient un goulot d'étranglement ?

En modifiant l'adresse source et l'adresse de destination du message TCP, les données renvoyées par le serveur Web sont directement renvoyées au client. C'est quelque chose que l'équilibrage de charge à sept couches ne peut pas faire car la négociation à trois voies TCP est établie. entre le client et la charge. Entre les serveurs d'équilibrage, le protocole http est basé sur le protocole TCP. Une fois le lien TCP établi, la réception du message HTTP indique que l'équilibreur de charge et le client ont établi un lien. Connexion TCP, mais le lien TCP entre le serveur Web et le client n'a pas été établi, comment renvoyer les données au client. La méthode ci-dessus posera des problèmes : tous les hôtes du cluster ont des adresses IP internes et ne peuvent pas communiquer avec le monde extérieur.

Solution 1 :
Si vous pouvez acheter autant d'adresses IP externes à utiliser, équilibrez la charge sur le serveur Web réel lorsque le lien TCP doit être établi, permettant au client et au serveur d'établir un lien TCP.

Solution 2 :
Citation : Tous les problèmes informatiques peuvent être résolus en établissant une couche virtuelle.
Vous pouvez virtualiser toutes les adresses IP des hôtes du serveur en adresses IP du serveur d'équilibrage de charge, afin que tous les hôtes du cluster de serveurs puissent accéder au réseau externe. Étant donné que les adresses IP (couche réseau, trois couches) sont les mêmes, elles ne sont accessibles que via le réseau externe. deuxième couche. Distinguez la direction du flux de données, modifiez l'adresse MAC de l'hôte de destination de la couche liaison de données (couche 2), afin que la demande soit envoyée au serveur Web, puis la connexion TCP est réellement établie. Le serveur peut se connecter à Internet, il peut renvoyer directement les données au client

2) Analyser à partir des besoins des scénarios d'application

L'avantage de la charge d'application à sept couches est de rendre l'ensemble du réseau plus « intelligent ». ". Par exemple, le trafic des utilisateurs visitant un site Web peut transmettre les demandes d'images à un serveur d'images spécifique et utiliser la technologie de mise en cache via l'approche à sept couches ; les demandes de texte peuvent être transmises à un serveur de texte spécifique et la technologie de compression peut être utilisée. Bien entendu, il ne s'agit que d'un petit cas d'application à sept couches. D'un point de vue technique, cette méthode peut modifier la demande du client et la réponse du serveur dans n'importe quel sens, améliorant considérablement la flexibilité du système d'application au niveau de la couche réseau. De nombreuses fonctions déployées en arrière-plan, telles que Nginx ou Apache, peuvent être déplacées vers le périphérique d'équilibrage de charge, comme la réécriture d'en-tête dans les requêtes client, le filtrage de mots clés ou l'insertion de contenu dans les réponses du serveur, etc.

Une autre fonctionnalité souvent mentionnée est la sécurité. L'attaque SYN Flood la plus courante sur le réseau est que les pirates contrôlent de nombreux clients sources et utilisent de fausses adresses IP pour envoyer des attaques SYN à la même cible. Habituellement, cette attaque enverra un grand nombre de messages SYN et épuisera les ressources associées sur le serveur. atteindre l’objectif de déni de service (DoS). Il ressort également des principes techniques qu'en mode quatre couches, ces attaques SYN seront transmises au serveur back-end ; en mode sept couches, ces attaques SYN se termineront naturellement sur le périphérique d'équilibrage de charge et se termineront naturellement sur le serveur principal. n'affecte pas le fonctionnement normal du serveur back-end. De plus, le dispositif d'équilibrage de charge peut définir plusieurs politiques au niveau de sept couches pour filtrer des messages spécifiques, tels que l'injection SQL et d'autres méthodes d'attaque au niveau de l'application, afin d'améliorer encore la sécurité globale du système au niveau de l'application.

L'équilibrage de charge actuel à sept couches se concentre principalement sur l'application du protocole HTTP, son champ d'application concerne donc principalement les systèmes basés sur B/S tels que de nombreux sites Web ou plateformes d'informations internes. L'équilibrage de charge de couche 4 correspond à d'autres applications TCP, telles que les ERP et d'autres systèmes développés sur la base de C/S.

3) Problèmes à considérer pour les applications à sept couches

3.1) Est-ce vraiment nécessaire ? Les applications à sept couches peuvent en effet améliorer l'intelligence du trafic, mais en même temps entraînent inévitablement des problèmes tels qu'une configuration complexe des appareils, une pression accrue sur l'équilibrage de charge et une complexité de dépannage. Lors de la conception du système, il est nécessaire de considérer la situation mixte d’application simultanée de quatre couches et de sept couches.

3.2) La sécurité peut-elle vraiment être améliorée. Par exemple, dans l'attaque SYN Flood, le mode à sept couches bloque ce trafic en provenance du serveur, mais le périphérique d'équilibrage de charge lui-même doit avoir de fortes capacités anti-DDoS, même si le serveur est normal et que le périphérique d'équilibrage de charge est utilisé comme tel. le répartiteur central tombe en panne, l'ensemble de l'application s'effondrera.

3.3) Y a-t-il suffisamment de flexibilité. L'avantage des applications à sept couches est qu'elles peuvent rendre intelligent le trafic de l'ensemble de l'application, mais le dispositif d'équilibrage de charge doit fournir des fonctions complètes à sept couches pour répondre à la planification basée sur les applications des clients en fonction de différentes situations. L'évaluation la plus simple est de savoir si elle peut remplacer la fonction de planification sur le serveur backend tel que Nginx ou Apache. Un dispositif d'équilibrage de charge pouvant fournir une interface de développement d'applications à sept couches permet aux clients de définir des fonctions en fonction de leurs besoins, ce qui permet véritablement de fournir une flexibilité et une intelligence puissantes.

4) Comparaison globale

4.1) Intelligence
L'équilibrage de charge à sept couches a toutes les fonctions de l'OIS à sept couches, il peut donc être plus flexible dans la gestion des besoins des utilisateurs. Théoriquement, le modèle à sept couches peut. Toutes les requêtes des utilisateurs au serveur sont modifiées. Par exemple, ajoutez des informations à l'en-tête du fichier, puis classez et transférez selon différents types de fichiers. Le modèle à quatre couches prend uniquement en charge le transfert de demande basé sur la couche réseau et ne peut pas modifier le contenu des demandes des utilisateurs.

4.2) Sécurité
Étant donné que l'équilibrage de charge à sept couches possède toutes les fonctions du modèle OSI, il peut plus facilement résister aux attaques du réseau. En principe, le modèle à quatre couches transmettra directement la demande de l'utilisateur au serveur ; nœud back-end. Il n’existe aucune protection directe contre les cyberattaques.

4.3) Complexité
Le modèle à quatre couches est généralement une architecture relativement simple, facile à gérer et les problèmes faciles à localiser ; l'architecture du modèle à sept couches est plus complexe et il est généralement nécessaire de considérer l'utilisation mixte ; du modèle à quatre couches, ce qui rend la localisation des problèmes plus compliquée.

4.4) Taux d'efficacité
Le modèle à quatre couches est basé sur un paramètre de niveau inférieur et est généralement plus efficace, mais son champ d'application est limité ; le modèle à sept couches nécessite plus de consommation de ressources et a théoriquement des fonctions plus puissantes que le modèle à sept couches ; modèle à quatre couches, l'implémentation actuelle est davantage basée sur les applications http.

IV. Description de la solution technique d'équilibrage de charge

1) Équilibrage de charge logiciel/matériel

La solution d'équilibrage de charge logicielle fait référence à l'installation d'un ou plusieurs serveurs sur les systèmes d'exploitation correspondants d'un ou plusieurs serveurs Logiciel supplémentaire est utilisé pour réaliser l'équilibrage de charge, tel que DNS Load Balance, CheckPoint Firewall-1 ConnectControl, Keepalive+ipvs, etc. Ses avantages sont basés sur un environnement spécifique, une configuration simple, une utilisation flexible, un faible coût et peuvent répondre aux besoins généraux d'équilibrage de charge. . Les solutions logicielles présentent également de nombreux inconvénients, car l'installation de logiciels supplémentaires sur chaque serveur consommera une quantité illimitée de ressources système. Plus le module est puissant, plus il consomme. Par conséquent, lorsque la demande de connexion est particulièrement importante, le logiciel lui-même le fera. devenir une clé du succès ou de l'échec du serveur ; l'évolutivité du logiciel n'est pas très bonne et est limitée par le système d'exploitation en raison de bugs dans le système d'exploitation lui-même, des problèmes de sécurité surviennent souvent ; La

La solution d'équilibrage de charge matérielle consiste à installer un périphérique d'équilibrage de charge directement entre le serveur et le réseau externe. Ce périphérique est généralement un élément matériel indépendant du système, appelé équilibreur de charge. Étant donné que l'équipement spécialisé effectue des tâches spécialisées et est indépendant du système d'exploitation, les performances globales sont considérablement améliorées. Associées à des stratégies d'équilibrage de charge diversifiées et à une gestion intelligente du trafic, des exigences optimales d'équilibrage de charge peuvent être atteintes. Les équilibreurs de charge se présentent sous diverses formes. En plus d'être des équilibreurs de charge indépendants, certains équilibreurs de charge sont intégrés dans des appareils de commutation et placés entre le serveur et la liaison Internet. Certains utilisent deux adaptateurs réseau pour connecter cet équilibreur de charge. PC, l’un est connecté à Internet et l’autre est connecté au réseau interne de la batterie de serveurs back-end.

Comparaison entre l'équilibrage de charge logicielle et l'équilibrage de charge matérielle :

Les avantages de l'équilibrage de charge logicielle sont un environnement de demande clair, une configuration simple, un fonctionnement flexible, un faible coût, une faible efficacité et peut répondre aux besoins des entreprises ordinaires ; les inconvénients sont les suivants : la dépendance à l'égard du système augmente la surcharge des ressources ; la qualité du logiciel détermine les performances de l'environnement et la stabilité du logiciel affectera la sécurité de l'ensemble de l'environnement ;

L'avantage de l'équilibrage de charge matériel est qu'il est indépendant du système, que les performances globales sont grandement améliorées et qu'il est supérieur aux méthodes logicielles en termes de fonctions et de performances ; le meilleur effet d'équilibrage de charge ; l'inconvénient est qu'il est coûteux .

2) Équilibrage de charge local/global

L'équilibrage de charge est divisé en Local Load Balance et Global Load Balance (Global Load Balance, également appelé équilibrage de charge régional) à partir de la structure géographique de son application , Charge locale l'équilibrage fait référence à l'équilibrage de charge des groupes de serveurs locaux, et l'équilibrage de charge global fait référence à l'équilibrage de charge entre des groupes de serveurs placés dans différents emplacements géographiques et avec des structures de réseau différentes.

L'équilibrage de charge local peut résoudre efficacement les problèmes de trafic de données excessif et de réseau surchargé, et il n'est pas nécessaire de dépenser des dépenses coûteuses pour acheter des serveurs offrant d'excellentes performances. Il peut utiliser pleinement l'équipement existant et éviter les pannes ponctuelles. serveurs provoquant des pertes de trafic de données. Il dispose de stratégies d'équilibrage flexibles et diverses pour allouer raisonnablement le trafic de données aux serveurs du groupe de serveurs pour une charge partagée. Même si vous développez et mettez à niveau des serveurs existants, vous pouvez simplement ajouter un nouveau serveur au groupe de services sans modifier la structure du réseau existante ni arrêter les services existants.

L'équilibrage de charge global est principalement utilisé pour les sites qui disposent de leurs propres serveurs dans une multi-région afin de permettre aux utilisateurs mondiaux d'accéder au serveur le plus proche d'eux avec une seule adresse IP ou un seul nom de domaine, obtenant ainsi l'accès le plus rapide. vitesse, il est également Il peut être utilisé par les grandes entreprises avec des filiales dispersées et des sites largement distribués pour parvenir à une allocation unifiée et raisonnable des ressources via l'Intranet (Intranet).

3) Équilibrage de charge au niveau du réseau

Visant différents goulots d'étranglement où le réseau est surchargé, en partant de différents niveaux du réseau, les technologies d'équilibrage de charge correspondantes peuvent être utilisées pour résoudre les problèmes existants.

À mesure que la bande passante augmente et que le trafic de données continue d'augmenter, l'interface de données dans la partie centrale du réseau sera confrontée à des problèmes de goulot d'étranglement. La ligne unique d'origine sera difficile à répondre à la demande, et les mises à niveau de ligne sont trop coûteuses, voire difficiles à réaliser. À l'heure actuelle, vous pouvez envisager d'utiliser la technologie d'agrégation de liens (Trunking).

La technologie d'agrégation de liens (équilibrage de charge de couche 2) utilise plusieurs liens physiques comme un seul lien logique agrégé. Le trafic de données réseau est partagé par tous les liens physiques dans le lien logique agrégé, donc logiquement la capacité du lien est augmentée de sorte qu'il soit augmenté. peut répondre à la demande croissante de bande passante.

La technologie moderne d'équilibrage de charge fonctionne généralement sur la quatrième ou la septième couche du réseau. L'équilibrage de charge de couche 4 mappe une adresse IP légalement enregistrée sur Internet aux adresses IP de plusieurs serveurs internes et utilise dynamiquement l'une des adresses IP internes pour chaque demande de connexion TCP afin d'obtenir un équilibrage de charge. Dans les commutateurs de couche 4, cette technologie d'équilibrage est largement utilisée. Une adresse de destination est un paquet de données de demande de connexion VIP (adresse IP virtuelle) qui traverse le commutateur. Le commutateur détermine les adresses IP source et de destination, le numéro de port TCP ou UDP et. certaine stratégie d'équilibrage de charge, mappage entre l'IP du serveur et VIP et sélection du meilleur serveur du groupe de serveurs pour gérer la demande de connexion.

L'équilibrage de charge à sept couches contrôle le contenu des services de la couche d'application, fournit une méthode de contrôle de haut niveau pour le trafic d'accès et convient aux applications des groupes de serveurs HTTP. La technologie d'équilibrage de charge de couche 7 vérifie les en-têtes HTTP transmis et effectue des tâches d'équilibrage de charge en fonction des informations contenues dans les en-têtes.

Les avantages de l'équilibrage de charge à sept couches sont présentés dans les aspects suivants :

1) En vérifiant l'en-tête HTTP, les messages d'erreur des séries HTTP400, 500 et 600 peuvent être détectés, de sorte que la demande de connexion peut être redirigée de manière transparente vers Un autre serveur pour éviter les pannes de la couche application.
2) Selon le type de données qui transitent (par exemple déterminer si le paquet de données est un fichier image, un fichier compressé ou un format de fichier multimédia, etc.), le trafic de données peut être dirigé vers le serveur du contenu correspondant pour traitement. , augmentant ainsi les performances du système.
3) Selon le type de demande de connexion, qu'il s'agisse d'une demande de document statique comme un texte ou une image ordinaire, ou d'une demande de document dynamique comme asp, cgi, etc., la requête correspondante peut être dirigée vers le serveur correspondant pour traitement, améliorant les performances et la sécurité du système.

Les inconvénients de l'équilibrage de charge à sept couches se reflètent dans les aspects suivants :

1) L'équilibrage de charge à sept couches est limité par les protocoles qu'il prend en charge (généralement uniquement HTTP), ce qui limite l'étendue de son application.
2) La vérification de l'équilibrage de charge à sept couches des en-têtes HTTP occupera une grande quantité de ressources système, ce qui affectera inévitablement les performances du système. Dans le cas d'un grand nombre de demandes de connexion, le dispositif d'équilibrage de charge lui-même peut facilement. devenir un goulot d’étranglement pour les performances globales du réseau.

5. Stratégie d'équilibrage de charge

Dans les applications réelles, vous ne souhaiterez peut-être pas simplement distribuer les demandes de service client de manière égale aux serveurs internes, que le serveur soit en panne ou non. Au lieu de cela, nous voulons que le serveur Pentium III accepte plus de demandes de service que le Pentium II. Un serveur qui gère moins de demandes de service peut se voir attribuer plus de demandes de service. Un serveur défaillant n'acceptera plus de demandes de service jusqu'à ce que la panne soit restaurée, etc. Choisissez une stratégie d'équilibrage de charge appropriée afin que plusieurs appareils puissent effectuer des tâches ensemble et éliminer ou éviter les goulots d'étranglement existants causés par une répartition inégale de la charge réseau, la congestion du trafic de données et les longs temps de réponse. À chaque méthode d'équilibrage de charge, il existe des stratégies d'équilibrage de charge correspondantes pour l'équilibrage de charge aux couches 2, 3, 4 et 7 du modèle de référence OSI en fonction des différentes exigences des applications.

Les avantages et les inconvénients des stratégies d'équilibrage de charge et la facilité de mise en œuvre dépendent de deux facteurs clés : l'algorithme d'équilibrage de charge et la méthode et la capacité de détecter les conditions du système réseau ;
Algorithme d'équilibrage de charge
1) Round Robin : Chaque requête du réseau est affectée tour à tour au serveur interne, de 1 à N puis recommence. Cet algorithme d'équilibrage convient aux situations dans lesquelles tous les serveurs du groupe de serveurs ont la même configuration matérielle et logicielle et où les demandes de service moyennes sont relativement équilibrées.
2) Weighted Round Robin : Selon les différentes capacités de traitement du serveur, différents poids sont attribués à chaque serveur afin qu'il puisse accepter les demandes de service avec des poids correspondants. Par exemple : le poids du serveur A est conçu pour être de 1, le poids de B est de 3 et le poids de C est de 6, alors les serveurs A, B et C recevront 10 %, 30 % et 60 % du service. demandes respectivement. Cet algorithme d'équilibrage garantit que les serveurs hautes performances sont davantage utilisés et empêche la surcharge des serveurs peu performants.
3) Equilibre aléatoire (Random) : Distribuez de manière aléatoire les requêtes du réseau vers plusieurs serveurs internes.
4) Équilibrage aléatoire pondéré (Weighted Random) : Cet algorithme d'équilibrage est similaire à l'algorithme de round-robin pondéré, mais il s'agit d'un processus de sélection aléatoire lors du traitement des demandes de partage.
5) Équilibrage du temps de réponse (temps de réponse) : le dispositif d'équilibrage de charge envoie une demande de détection (telle que Ping) à chaque serveur interne, puis décide quel serveur utiliser en fonction du temps de réponse le plus rapide de chaque serveur interne au demande de détection. Répondre aux demandes du service client. Cet algorithme d'équilibrage peut mieux refléter l'état de fonctionnement actuel du serveur, mais le temps de réponse le plus rapide fait uniquement référence au temps de réponse le plus rapide entre le périphérique d'équilibrage de charge et le serveur, et non au temps de réponse le plus rapide entre le client et le serveur.
6) Moins de connexion  : La durée pendant laquelle chaque service de demande client reste sur le serveur peut avoir une grande différence à mesure que le temps de travail augmente, si un simple algorithme de tournoi à tour de rôle ou d'équilibrage aléatoire est utilisé, le processus de connexion sur chaque serveur peut varier. grandement, et un véritable équilibrage de charge n’est pas atteint. L'algorithme d'équilibrage du nombre minimum de connexions comporte un enregistrement de données pour chaque serveur qui doit être chargé en interne, enregistrant le nombre de connexions en cours de traitement par le serveur. Lorsqu'il y a une nouvelle demande de connexion au service, la demande en cours sera attribuée au serveur. serveur avec le moins de connexions. Le serveur rend l'équilibre plus cohérent avec la situation réelle et la charge est plus équilibrée. Cet algorithme d'équilibrage convient aux services de traitement de requêtes à long terme, tels que FTP.
7) Équilibrage de la capacité de traitement : Cet algorithme d'équilibrage allouera les demandes de service au serveur avec la charge de traitement interne la plus légère (convertie en fonction du modèle de processeur du serveur, du nombre de processeurs, de la taille de la mémoire, du nombre actuel de connexions, etc.), en raison à considérer En fonction de la puissance de traitement du serveur interne et des conditions de fonctionnement actuelles du réseau, cet algorithme d'équilibrage est relativement plus précis, particulièrement adapté à l'équilibrage de charge de couche 7 (couche application).
8) Équilibrage des réponses DNS (Flash DNS) : Sur Internet, qu'il s'agisse de requêtes HTTP, FTP ou autres, le client trouve généralement l'adresse IP exacte du serveur grâce à la résolution de nom de domaine. Sous cet algorithme d'équilibrage, les périphériques d'équilibrage de charge situés dans différents emplacements géographiques reçoivent une demande de résolution de nom de domaine du même client et résolvent le nom de domaine en adresse IP de leur serveur correspondant (c'est-à-dire le périphérique d'équilibrage de charge) en même temps. . L'adresse IP du serveur dans le même emplacement géographique) et la renvoie au client, le client continuera à demander des services avec la première adresse IP de résolution de nom de domaine reçue et ignorera les autres réponses d'adresse IP. Lorsque cette stratégie d’équilibrage convient à l’équilibrage de charge global, elle n’a aucun sens pour l’équilibrage de charge local.

Recommandations associées : "Tutoriel vidéo Linux"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn