URL: https://linuxfr.org/forums/linux-redhat/posts/r%C3%A9partition-de-charge-avec-lvs Title: Répartition de charge avec LVS Authors: HAVOC Date: 2010年02月21日T14:51:18+01:00 Tags: Score: 0 Bonjour, Je suis étudiant en informatique et dans le cadre d'un projet tutoré sur la haute disponibilité et la répartition de charge j'ai été amené à déployer un load balanceur sous LVS (CentOS 5). Mon répartiteur de charge principal ainsi que celui de backup fonctionnent mais il me reste quelques soucis à régler : 1/ Lorsque j'arrête un serveur réel celui-ci est naturellement retiré de la liste des serveurs disponibles mais lorsqu'il est à nouveau en marche, il ne retrouve pas sa place dans la liste des serveurs disponibles, une idée du problème ?!?! 2/ Mon infrastructure doit gérer le protocole HTTPS, j'ai donc utilisé le système de firewall marks couplé à la persistance et ça marche bien. Cela dit, je me demande s'il existe une solution n'utilisant pas la persistance ? J'ai pensé à centraliser Apache et les certificats sur un NFS et de n'activer que les firewall marks mais ça ne fonctionne pas, j'ai une erreur avec la fonction HELLO lors de la négociation. Quelqu'un peut-t-il m'expliquer le fonctionnement exacte du mod_ssl ? Ca exploite des données de la machine en plus des certificats pour générer le chiffrement ? Le seul avantage de centraliser le tout sur NFS est de gérer les sessions PHP sans avoir recours à la persistance. 3/ Dans piranha, il est possible d'activer le contrôle de la charge des serveurs réels (load avrage), quelles sont les répercutions de cela sur les algorithmes de répartition ? Le load balanceur choisira le serveur le moins chargé ou il retirera de la liste le serveur débordé ? J'aimerais comprendre le mécanisme. Voici mon fichier lvs.cf : serial_no = 279 primary = 192.168.0.1 service = lvs backup_active = 1 backup = 192.168.0.2 heartbeat = 1 heartbeat_port = 539 keepalive = 6 deadtime = 18 network = nat nat_router = 192.168.1.200 eth1:1 nat_nmask = 255.255.255.0 debug_level = NONE monitor_links = 0 syncdaemon = 0 virtual HTTP { £spaces£ £/spaces£active = 1 £spaces£ £/spaces£address = 192.168.0.100 eth0:1 £spaces£ £/spaces£vip_nmask = 255.255.255.0 £spaces£ £/spaces£fwmark = 80 £spaces£ £/spaces£port = 80 £spaces£ £/spaces£persistent = 10 £spaces£ £/spaces£send = "GET / HTTP/1.0\r\n\r\n" £spaces£ £/spaces£expect = "HTTP" £spaces£ £/spaces£use_regex = 0 £spaces£ £/spaces£load_monitor = none £spaces£ £/spaces£scheduler = rr £spaces£ £/spaces£protocol = tcp £spaces£ £/spaces£timeout = 6 £spaces£ £/spaces£reentry = 15 £spaces£ £/spaces£quiesce_server = 0 £spaces£ £/spaces£server web2 { £spaces£ £/spaces£address = 192.168.1.2 £spaces£ £/spaces£active = 1 £spaces£ £/spaces£port = 80 £spaces£ £/spaces£weight = 1 £spaces£ £/spaces£} £spaces£ £/spaces£server web1 { £spaces£ £/spaces£address = 192.168.1.1 £spaces£ £/spaces£active = 1 £spaces£ £/spaces£port = 80 £spaces£ £/spaces£weight = 1 £spaces£ £/spaces£} } virtual HTTPS { £spaces£ £/spaces£active = 1 £spaces£ £/spaces£address = 192.168.0.100 eth0:2 £spaces£ £/spaces£vip_nmask = 255.255.255.0 £spaces£ £/spaces£fwmark = 80 £spaces£ £/spaces£port = 443 £spaces£ £/spaces£send = "GET / HTTP/1.0\r\n\r\n" £spaces£ £/spaces£expect = "HTTP" £spaces£ £/spaces£use_regex = 0 £spaces£ £/spaces£load_monitor = none £spaces£ £/spaces£scheduler = rr £spaces£ £/spaces£protocol = tcp £spaces£ £/spaces£timeout = 6 £spaces£ £/spaces£reentry = 15 £spaces£ £/spaces£quiesce_server = 0 £spaces£ £/spaces£server web1 { £spaces£ £/spaces£address = 192.168.1.1 £spaces£ £/spaces£active = 1 £spaces£ £/spaces£port = 443 £spaces£ £/spaces£weight = 1 £spaces£ £/spaces£} £spaces£ £/spaces£server web2 { £spaces£ £/spaces£address = 192.168.1.2 £spaces£ £/spaces£active = 1 £spaces£ £/spaces£port = 443 £spaces£ £/spaces£weight = 1 £spaces£ £/spaces£} } Je vous remercie !