Le principe de l'équilibrage de charge LVS, le déploiement proprement dit de l'équilibrage de charge LVS en mode NAT (image et texte détaillés!)

Le principe de l'équilibrage de charge LVS, le déploiement proprement dit de l'équilibrage de charge LVS en mode NAT (image et texte détaillés!)

Un, la technologie de cluster

1. La signification des clusters

Le soi-disant cluster est également appelé cluster (cluster). Il est composé de plusieurs hôtes, mais n'apparaît que dans son ensemble en externe et ne fournit qu'une seule entrée d'accès (nom de domaine ou IP), ce qui équivaut à un gros ordinateur.

Dans les applications pratiques, il y aura toujours un serveur d'équilibrage de charge avant le cluster de serveurs Web. La tâche du dispositif d'équilibrage de charge est de servir d'entrée au trafic du serveur Web, de sélectionner le serveur Web le plus approprié et de transmettre la demande du client à pour le traitement Transfert transparent du client vers le serveur réel.
LVS, Nginx et HAProxy sont actuellement les trois logiciels d'équilibrage de charge les plus utilisés.

2. Scénarios applicables

L'utilisation de l'équilibrage de charge est généralement basée sur l'utilisation de différentes technologies à différentes étapes à mesure que l'échelle du site Web augmente.
S'il s'agit d'une application Web de petite et moyenne taille, par exemple, le PV quotidien est inférieur à 10 millions, l'utilisation de Nginx est tout à fait acceptable.
S'il y a beaucoup de machines, l'interrogation DNS peut être utilisée, LVS consomme beaucoup de machines.
Pour les grands sites Web ou les services importants, et il y a plus de serveurs, vous pouvez envisager d'utiliser LVS.
À l'heure actuelle, il existe des schémas d'architecture généralement raisonnables et populaires pour l'architecture de sites Web: Nginx / HAProxy + Keepalived est utilisé comme équilibreur de charge à l'avant du Web; le backend utilise la base de données MySQ L avec un maître et plusieurs esclaves et en lecture-écriture séparation, et l'architecture LVS + Keepalived est adoptée.

3. L'importance de l'existence de grappes

3.1 L'émergence du problème

Dans les applications Internet, les sites ayant des exigences de plus en plus élevées en termes de performances matérielles, de vitesse de réponse, de stabilité du service et de fiabilité des données, un seul serveur ne peut plus répondre aux exigences d'équilibrage de charge et de haute disponibilité.

3.2 Solution

Méthode 1: utilisez des mini-ordinateurs et des mainframes coûteux. (Coût élevé)
Méthode 2: Utilisez plusieurs serveurs ordinaires relativement peu coûteux pour créer un cluster de services. (À bas prix)

La plupart des entreprises choisissent la deuxième méthode pour intégrer plusieurs serveurs, utilisent LVS pour obtenir une disponibilité élevée des serveurs et un équilibrage de charge, et fournissent les mêmes services en externe à partir de la même adresse IP. Et c'est une technologie de cluster couramment utilisée dans les entreprises-LVS (Linux Virtual Server, Linux Virtual Server).

Remarque: Le premier type est l'expansion verticale et le second type est l'expansion horizontale.

2. Types de grappes

1. Selon la différence de cible du cluster, il peut être divisé en trois types

Cluster d'équilibrage de charge Cluster
haute disponibilité Cluster de
calcul hautes performances

2. Aperçu des trois groupes

Cluster d'équilibrage de charge

  • Dans le but d'améliorer la réactivité du système d'application, de traiter autant de demandes d'accès que possible et de réduire la latence, les performances globales de la concurrence et de la charge élevées (LB) sont obtenues.
  • La répartition de la charge de LB repose sur l'algorithme de déchargement du nœud maître, qui distribue les demandes d'accès du client à plusieurs nœuds de serveur, allégeant ainsi la charge de l'ensemble du système.

Cluster haute disponibilité

  • Améliorer la fiabilité du système applicatif et réduire au maximum le temps d'interruption, assurer la continuité du service et obtenir l'effet de tolérance aux pannes de la haute disponibilité (HA)
  • Le mode de fonctionnement de la haute disponibilité comprend les modes duplex et maître-esclave. Duplex signifie que tous les nœuds sont en ligne en même temps; maître-esclave signifie que seul le nœud maître est en ligne, mais en cas de panne, le nœud esclave peut basculer automatiquement vers le nœud maître.
    Par exemple: "Failover", "Dual-system hot backup" et ainsi de suite.

Cluster d'ordinateurs hautes performances

  • Dans le but d'augmenter la vitesse de calcul du processeur du système d'application, d'étendre les ressources matérielles et les capacités d'analyse, il obtiendra l'équivalent de capacités de calcul haute performance (HPC) de supercalculateur à grande échelle.
  • Les hautes performances du cluster de calcul haute performance reposent sur le «calcul distribué» et le «calcul parallèle». Le processeur, la mémoire et les autres ressources de plusieurs serveurs sont intégrés via du matériel et des logiciels dédiés pour atteindre des capacités de calcul que seuls les grands et les supercalculateurs possèdent. .

Troisièmement, l'architecture de cluster d'équilibrage de charge

1. Structure d'équilibrage de charge

  • Au premier niveau, le planificateur de charge (Load Balancer ou Director)
    accède à l'entrée unique de l'ensemble du système de cluster et utilise l'adresse VIP partagée par tous les serveurs en externe, également appelée adresse IP du cluster. Habituellement, deux planificateurs, le principal et la sauvegarde, sont configurés pour réaliser une sauvegarde à chaud. Lorsque le planificateur principal échoue, il peut être remplacé en douceur par le planificateur de sauvegarde pour assurer une haute disponibilité.
  • La deuxième couche,
    les services d'application fournis par le cluster de pool de serveurs (pool de serveurs) sont supportés par le pool de serveurs, où chaque nœud a une adresse RIP indépendante (IP réelle), et ne traite que les demandes des clients distribuées par le planificateur. Lorsqu'un nœud tombe temporairement en panne, le mécanisme de tolérance aux pannes du planificateur de charge l'isole et attend que l'erreur soit éliminée avant de le réintégrer dans le pool de serveurs.
  • La troisième couche, Shared Storage,
    fournit des services d'accès aux fichiers stables et cohérents pour tous les nœuds du pool de serveurs, garantissant l'unité de l'ensemble du cluster. Le stockage partagé peut utiliser des périphériques NAS ou fournir des serveurs dédiés pour les services de partage NFS.

2. Mécanisme d'équilibrage de charge LVS

  • LVS est un équilibrage de charge à quatre couches, qui est construit sur la quatrième couche du modèle OSI - la couche de transport. La couche de transport a le familier TCP / UDP et LVS prend en
    charge l'équilibrage de charge TCP / UDP .
  • Étant donné que LVS est un équilibrage de charge à quatre couches, comparé à d'autres solutions d'équilibrage de charge de haut niveau, telles que la résolution de rotation des noms de domaine DNS, la planification de la charge de la couche application, la planification des clients, etc., son efficacité est très élevée.

3. Analyse du mode de fonctionnement du cluster d'équilibrage de charge

  • Les clusters d'équilibrage de charge sont actuellement le type de cluster le plus couramment utilisé dans les entreprises
  • La technologie de planification de charge de cluster dispose de 3 modes de fonctionnement, les modes sont les suivants

3.1 Mode NAT: traduction d'adresse

  • Traduction d'adresse réseau, appelée mode NAT
  • Semblable à la structure de réseau privé du pare-feu, le planificateur de charge agit comme la passerelle de tous les nœuds de serveur, c'est-à-dire comme l'entrée d'accès du client, ainsi que la sortie d'accès de chaque nœud en réponse au client
  • Le nœud de serveur utilise une adresse IP privée et se trouve sur le même réseau physique que le planificateur de chargement. La sécurité est meilleure que les deux autres méthodes.

3.2 Mode TUN: tunnel IP

  • Tunnel IP, appelé mode TUN
  • Adoptant une structure de réseau ouverte, le planificateur de charge ne sert que d'entrée d'accès du client, et chaque nœud répond directement au client via sa propre connexion Internet, au lieu de passer par le planificateur de charge
  • Les nœuds de serveur sont dispersés à différents endroits sur Internet, ont des adresses IP publiques indépendantes et communiquent avec le planificateur de charge via un tunnel IP dédié

Mode 3.3DR: routage direct

  • Routage direct, appelé mode DR
  • Il adopte une structure de réseau semi-ouverte, qui est similaire à la structure du modèle TUN, mais les nœuds ne sont pas dispersés partout, mais sont situés sur le même réseau physique que l'ordonnanceur
  • Le planificateur de charge est connecté à chaque serveur de nœuds via le réseau local, sans qu'il soit nécessaire d'établir un tunnel IP dédié

Dans les trois modes de fonctionnement ci-dessus

  • La méthode NAT n'a besoin que d'une seule adresse IP publique, ce qui en fait le mode d'équilibrage de charge le plus facile à utiliser avec une meilleure sécurité. De nombreux périphériques d'équilibrage de charge matérielle utilisent cette méthode;
  • Le mode DR et le mode TUN ont une capacité de charge plus élevée et une plage d'applications plus large, mais la sécurité du nœud est légèrement pire.

Quatre, à propos du serveur virtuel LVS

1. serveur virtuel Linux

● Solution d'équilibrage de charge développée pour le noyau Linux
● Fondée par Dr. Zhang Wensong de Chine en mai 1998
● Site Web officiel: http: //www.linuxvirtualserver.orgl
● LVS est en fait équivalent aux applications virtualisées basées sur les adresses IP. Équilibrage de charge basé sur La distribution des adresses IP et des demandes de contenu propose une solution efficace

2. L'importance du LVS

LVS fait maintenant partie du noyau Linux, compilé comme module ip_ vs par défaut, et peut être appelé automatiquement si nécessaire. Dans le système CentOS 7, les opérations suivantes peuvent charger manuellement le module ip_ vs et afficher les informations de version du module ip_ vs dans le système actuel.

#加载ip_va模块
modprobe ip_vs
#确认内核对LVS的支持
cat /proc/net/ip_vs

Insérez la description de l'image ici

3. Outil de gestion LVS: ipvsadm

Fonction ipvsadm et description des options

Options fonction
-UNE Ajouter un serveur virtuel
-RÉ Supprimer tout le serveur virtuel
-s Spécifiez l'algorithme de planification de la charge (interrogation: rr, round-robin pondéré: wrr, connexion minimale: lc, connexion la moins pondérée: wlc)
-une Moyens d'ajouter un vrai serveur (serveur de nœuds)
-ré Supprimer un nœud
-t Spécifiez l'adresse VIP et le port TCP
-r Spécifiez l'adresse RIP et le port TCP
-m Indique l'utilisation du mode de cluster NAT
-g Indique l'utilisation du mode DR
-je Moyens d'utiliser le mode TUN
-w Définir le poids (lorsque le poids est égal à 0, le nœud est suspendu)
-p 60 Moyens de garder une longue connexion pendant 60 secondes
-l Afficher les serveurs virtuels LVS dans une liste (la valeur par défaut est de tout afficher)
-n Afficher l'adresse, le port et d'autres informations sous forme numérique, souvent utilisé en combinaison avec l'option "-l". ipvsadm -ln

4. Algorithme de planification de charge LVS

1) Tournoi à la ronde

● Les demandes d'accès reçues sont allouées à chaque nœud (serveur réel) du cluster à tour de rôle, et chaque serveur est traité de la même manière, quel que soit le nombre réel de connexions et la charge système du serveur

2) Round Robin pondéré

● Répartissez les demandes en fonction de la valeur de pondération définie par le planificateur. Les nœuds avec une valeur de pondération plus élevée obtiendront la tâche en premier, et plus il y aura de demandes allouées.
● Assurez-vous que le serveur aux performances élevées supporte plus de trafic d'accès

3) Les moindres connexions

● En fonction du nombre de connexions établies par le serveur réel, la demande d'accès reçue est affectée au nœud avec le moins de connexions en premier

4) Connexions les moins pondérées (connexions L est pondérées)

● Lorsque la différence de performance des nœuds de serveur est importante, le poids peut être automatiquement ajusté pour le serveur réel
● Les nœuds avec des performances plus élevées supporteront une plus grande proportion de la charge de connexion active

Cinq, déploiement de cluster en mode NAT avec équilibrage de charge LVS

L'ordonnanceur LVS est utilisé comme passerelle du pool de serveurs Web, LVS dispose de deux cartes réseau, respectivement connectées aux réseaux internes et externes, en utilisant l'algorithme d'ordonnancement round-robin (rr)

Déploiement d'environnement

Héberger système opérateur adresse IP Outils / services requis
Charger le planificateur CentOS7
7-2
Passerelle interne: 192.168.2.4
Passerelle externe: 12.0.0.1
ipvsadm
Serveur NFS CentOS7
7-3
192.168.2.5 rpcbind 、 nfs-utils
Serveur de nœud Web 1 CentOS7
7-4
192.168.2.6 rpcbind 、 nfs-utils 、 httpd
Serveur de nœud Web 2 CentOS7
7-5
192.168.2.7 rpcbind 、 nfs-utils 、 httpd
Client Windows10 12.0.0.10

Insérez la description de l'image ici

Remarque: La passerelle du répartiteur de charge peut être définie sur sa propre adresse IP ou non. Les passerelles du serveur et du client doivent être définies et l'adresse correspond aux adresses de passerelle interne et externe du répartiteur de charge. (Une passerelle est requise pour l'accès inter-réseau)

Insérez la description de l'image ici

1. Déployer le stockage partagé NFS

CentOS7-3 192.168.2.5

systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0

yum -y install nfs-utils rpcbind

systemctl start rpcbind.service
systemctl start nfs.service

systemctl enable nfs.service
systemctl enable rpcbind.service

mkdir /opt/test1
mkdir /opt/test2

chmod 777 /opt/test1
chmod 777 /opt/test2

vim /etc/exports
/opt/test1 192.168.2.0/24(rw,sync)
/opt/test2 192.168.2.0/24(rw,sync)

exportfs -rv

Insérez la description de l'image ici

2. Configurez le serveur de nœuds

Serveur Web1: CentOS7-4 192.168.2.6

Serveur Web2: CentOS7-5 192.168.2.7

systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0

yum install httpd -y
systemctl start httpd.service
systemctl enable httpd.service

yum -y install nfs-utils rpcbind

systemctl start rpcbind
systemctl enable rpcbind

showmount -e 192.168.2.5

Insérez la description de l'image ici

Serveur Web1: CentOS7-4 192.168.2.6

mount.nfs 192.168.2.5:/opt/test1 /var/www/html
df -h
echo 'this is test1 web!' > /var/www/html/index.html

Insérez la description de l'image ici

Serveur Web2: CentOS7-5 192.168.2.7

mount.nfs 192.168.2.5:/opt/test2 /var/www/html
df -h
echo 'this is test2 web!' > /var/www/html/index.html

Insérez la description de l'image ici

3. Configurer le planificateur de chargement

Planificateur de charge: passerelle interne ens33: 192.168.2.4, passerelle externe ens36: 12.0.0.1

systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0

Insérez la description de l'image ici

1) Configurer les règles de transfert SNAT

vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
或
echo '1' > /proc/sys/net/ipv4/ip_forward
sysctl -p

iptables -t nat -F
iptables -F
iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -o ens36 -j SNAT --to-source 12.0.0.1

Insérez la description de l'image ici

2) Chargez le module du noyau LVS

#加载 ip_vs模块
modprobe ip_vs
#查看 ip_vs版本信息
cat /proc/net/ip_vs

Insérez la description de l'image ici

3) Installez l'outil de gestion ipvsadm

yum -y install ipvsadm

#启动服务前须保存负载分配策略
ipvsadm-save > /etc/sysconfig/ipvsadm
或
ipvsadm --save > /etc/sysconfig/ipvsadm

systemctl start ipvsadm.service

Insérez la description de l'image ici

4) Configurer la stratégie de répartition de charge (le mode NAT ne doit être configuré que sur le serveur, aucune configuration spéciale n'est requise pour le serveur de nœuds)

#清除原有策略
ipvsadm -C

ipvsadm -A -t 12.0.0.1:80 -s rr
ipvsadm -a -t 12.0.0.1:80 -r 192.168.2.6:80 -m
ipvsadm -a -t 12.0.0.1:80 -r 192.168.2.7:80 -m
#启用策略
ipvsadm

#查看节点状态,Masq代表 NAT模式
ipvsadm -ln
#保存策略
ipvsadm-save > /etc/sysconfig/ipvsadm

Insérez la description de l'image ici

4. Résultats des tests

Utilisez un navigateur pour visiter http://12.0.0.1/ sur un client avec une IP de 12.0.0.10, actualisez et testez l'effet d'équilibrage de charge à intervalles

Insérez la description de l'image ici

Je suppose que tu aimes

Origine blog.csdn.net/qq_35456705/article/details/113628547
conseillé
Classement