Maison  >  Article  >  Opération et maintenance  >  Comment utiliser Linux pour l'équilibrage de charge réseau

Comment utiliser Linux pour l'équilibrage de charge réseau

PHPz
PHPzoriginal
2023-06-18 18:45:102874parcourir

L'équilibrage de charge réseau est une méthode permettant de répartir uniformément le trafic réseau entre différents serveurs, améliorant ainsi la disponibilité et les performances de l'ensemble du système. Le système Linux est livré avec certains outils qui peuvent nous aider à réaliser l'équilibrage de la charge réseau. Cet article explique comment utiliser Linux pour l'équilibrage de la charge réseau.

1. Le principe de base de l'équilibrage de charge réseau Linux

Le principe de base de l'équilibrage de charge réseau est de distribuer le trafic réseau sur plusieurs serveurs. Il existe de nombreuses méthodes de distribution, notamment la méthode d'interrogation, la méthode d'interrogation pondérée, la méthode de hachage IP, la méthode du nombre minimum de connexions, etc.

Sous Linux, nous pouvons utiliser la technologie LVS (Linux Virtual Server) pour l'équilibrage de la charge réseau. LVS est une technologie qui distribue le trafic réseau sur plusieurs serveurs. Il se compose d'un planificateur (également appelé équilibreur de charge) et de plusieurs serveurs backend.

2. Installez et configurez LVS

  1. Installez LVS

Avant de configurer LVS, nous devons installer les packages logiciels nécessaires, notamment ipvsadm et keepalived. Ces packages logiciels peuvent être installés via la commande yum.

① Installez ipvsadm

Utilisez la commande suivante pour installer le package ipvsadm :

sudo yum install ipvsadm -y

② Installez keepalived

Utilisez la commande suivante pour installer le package keepalived :

sudo yum install keepalived -y

  1. Configuration LVS

Avant de configurer LVS, nous devons comprendre quelques concepts de base :

  • Scheduler (équilibreur de charge) : utilisé pour recevoir les requêtes réseau des clients et transmettre les requêtes au serveur backend.
  • Adresse IP d'écoute : l'adresse IP consultée par le client.
  • Vrai serveur (serveur backend) : gère les requêtes réseau des clients.

Ce qui suit est un exemple de configuration de LVS, en supposant que l'adresse IP de notre planificateur est 192.168.1.1 et que les adresses IP du serveur principal sont 192.168.1.2 et 192.168.1.3.

① Configurez le planificateur

Tout d'abord, installez et configurez le service keepalived sur le planificateur. Modifiez le fichier /etc/keepalived/keepalived.conf et ajoutez la configuration suivante :

 ! Fichier de configuration pour keepalived

global_defs {
router_id LB_Test
}

vrrp_script chk_http_port {
script "/etc/keepalived/check.sh"
intervalle 2
}

vrrp_instance VI_1 {
état MASTER
interface eth0
virtual_router_id 50
priorité 101
authentification {

   auth_type PASS
   auth_pass 1111

}
virtual_ipaddress {

   192.168.1.100

}
track_script {

   chk_http_port

}
}

Parmi eux, vrrp_instance est utilisé pour définir les paramètres du routeur virtuel. virtual_router_id est utilisé pour définir l'ID du routeur virtuel, virtual_ipaddress est utilisé pour définir l'adresse IP virtuelle et la priorité est utilisée pour définir la relation actif-veille. plus la priorité est élevée.

Ensuite, créez un fichier de script nommé check.sh pour vérifier si le serveur backend est actif. Enregistrez le contenu du script suivant dans le fichier check.sh :

!/bin/bash

A=ipvsadm -ln | grep -c "Server"
if [ $A -eq 0 ]; then
echo "failed"
killall keepalived
fi

Description : Quand Lorsque le serveur backend est indisponible, le script met fin au service keepalived.

Exécutez la commande suivante pour que le fichier de configuration prenne effet :

sudo systemctl restart keepalived

À ce stade, la configuration du planificateur est terminée.

② Configurez le serveur backend

Configurez le serveur réel de LVS sur le serveur backend.

Utilisez la commande suivante pour ajouter la configuration du Real Server :

sudo ipvsadm -A -t 192.168.1.100:80 -s rr

Parmi eux, l'option -A est utilisée pour ajouter des règles, -t est utilisée pour définir le l'adresse IP et le port d'écoute, -s est utilisé pour définir les règles de planification et la méthode d'interrogation est utilisée ici.

Ajoutez Real Server aux règles à l'aide des commandes suivantes :

sudo ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.2 -g
sudo ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.3 -g

Parmi eux, l'option -a est utilisée pour ajouter Real Server à la règle, -r est utilisée pour définir l'adresse IP du serveur backend et -g est utilisée pour définir le mode passerelle du serveur backend.

À ce stade, la configuration de LVS est terminée.

3. Testez l'équilibrage de charge réseau

Après avoir terminé la configuration de LVS, nous pouvons tester la fonction d'équilibrage de charge réseau en suivant les étapes suivantes :

  1. Accédez à l'adresse IP virtuelle via la commande curl sur le client :

curl 192.168.1.100

  1. Après avoir été traitée par le planificateur, la requête est envoyée à l'un des serveurs backend.
  2. Démarrez un simple service HTTP sur l'un des serveurs backend :

python -m SimpleHTTPServer 80

  1. Accédez ensuite à l'adresse IP du serveur réel :

curl 192.168.1.2

  1. à nouveau à l'adresse IP virtuelle Envoyer la requête, qui doit être envoyée à un autre serveur réel.

Après le test ci-dessus, si lors de l'accès au serveur backend, les requêtes peuvent être réparties uniformément sur différents serveurs backend, alors l'équilibrage de la charge réseau peut être considéré comme réussi.

4.Résumé

Cet article explique comment utiliser Linux pour l'équilibrage de charge réseau. Nous installons les progiciels ipvsadm et keepalived, configurons l'adresse IP, le port et les règles de planification du planificateur et du serveur back-end, et enfin testons la fonction d'équilibrage de charge réseau. L'équilibrage de la charge réseau peut améliorer la disponibilité et les performances de l'ensemble du système et aider à gérer les requêtes réseau dans des environnements à haute concurrence, améliorant ainsi l'expérience utilisateur.

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