HAProxy & Heartbeat

Cheatsheet · ne jamais tomber Semaine 8 · Module 2
évolutif

Le frontend : la porte

frontend site_http mode http bind ADRESSE_DE_HAPROXY:80 default_backend site_http_varnish

HAProxy tient la porte d'entrée et envoie tout vers son backend par défaut.

Le backend : répartir et surveiller

backend site_http_varnish balance roundrobin server site1 ADRESSE_VARNISH30:80 check inter 10s server site2 ADRESSE_VARNISH31:80 check inter 10s

roundrobin : chacun son tour. check inter 10s : un serveur qui ne répond plus sort de la rotation tout seul.

L'aiguillage de l'admin

acl has_admin path_beg /wp-admin acl has_login path_beg /wp-login.php use_backend admin_servers if has_admin or has_login

Les acl reconnaissent un chemin; l'admin WordPress a sa route réservée.

backend admin_servers balance source server ssh1 ADRESSE_DE_HTTP20:80 check inter 10s

balance source : même visiteur, même serveur.

Heartbeat : le coeur qui bat

ha.cf authkeys haresources

Trois fichiers, identiques sur les deux machines : les noeuds et les délais, le secret partagé (chmod 600), qui est maître et quelle IP porter.

Keepalive 1 s; au bout de 10 secondes de silence, l'esclave déclare le maître mort et prend l'IP virtuelle. auto_failback yes : le maître guéri reprend sa place tout seul.

L'adresse IP virtuelle

La grappe Heartbeat détient une IP virtuelle (référence : 192.168.56.49) : c'est elle que les visiteurs utilisent, et c'est le serveur vivant qui la porte. Doubler la passerelle exige une adresse qui bascule. La haute disponibilité ne supprime pas les pannes : elle les rend invisibles.

Anatomie de haproxy.cfg

frontend site_http mode http bind ADRESSE_DE_HAPROXY:80 default_backend site_http_varnish backend site_http_varnish balance roundrobin server site1 ADRESSE_VARNISH30:80 check inter 10s server site2 ADRESSE_VARNISH31:80 check inter 10s
frontend : la porte d'entrée des visiteurs bind :80 : l'adresse et le port écoutés backend : l'équipe de serveurs derrière balance roundrobin : la répartition : chacun son tour check inter 10s : la surveillance : les morts sortent de la rotation

HAProxy répartit (roundrobin), surveille (check) et aiguille (acl). L'architecture complète : visiteur, haproxy40, puis varnish30 ou varnish31, puis http20, puis mysql10. L'épreuve de vérité : éteindre le maître sous charge.

Balancement : répartir la charge entre plusieurs serveurs. Frontend : la porte d'entrée tenue par HAProxy. Backend : l'équipe de serveurs qui répond derrière. acl : la règle qui reconnaît une requête à aiguiller. IP virtuelle : l'adresse que porte le serveur vivant. Grappe : les deux HAProxy que Heartbeat unit. Basculement : l'esclave prend l'IP du maître mort.

420-5A4-MT · Serveurs évolutifs · cliquer une commande la copie